主要内容

MATLAB 中的流信号处理简介

使用 System object 在 MATLAB® 中处理流信号。在每个处理循环中,以逐帧(或逐模块)方式读取和处理信号。您可以控制每帧的大小。

在此示例中,在每个处理循环中使用陷波-峰值滤波器对包含 1024 个采样的帧进行滤波。输入是从 dsp.SineWave 对象逐帧流式传输的正弦波信号。滤波器是使用 dsp.NotchPeakFilter 对象创建的陷波-峰值滤波器。为了确保在对每帧进行滤波时平滑进行,System object 会自动保持滤波器从一帧到下一帧的状态。

初始化流分量

初始化正弦波源以生成正弦波,初始化陷波-峰值滤波器以对正弦波进行滤波,并初始化频谱分析仪以显示滤波后的信号。输入正弦波有两个频率:一个为 100 Hz,另一个为 1000 Hz。创建两个 dsp.SineWave 对象,一个用于生成 100 Hz 正弦波,另一个用于生成 1000 Hz 正弦波。

Fs = 2500;
Sineobject1 = dsp.SineWave(SamplesPerFrame=1024,...
                     SampleRate=Fs,Frequency=100);
Sineobject2 = dsp.SineWave(SamplesPerFrame=1024,...
                     SampleRate=Fs,Frequency=1000);

SA = spectrumAnalyzer(SampleRate=Fs,...
    Method="welch",...
    AveragingMethod="exponential",...
    ForgettingFactor=0.1,...
    PlotAsTwoSidedSpectrum=false,...
    ChannelNames=["SinewaveInput","NotchOutput"],ShowLegend=true);

创建陷波-峰值滤波器

创建一个二阶 IIR 陷波-峰值滤波器以对正弦波信号进行滤波。该滤波器在 750 Hz 处有一个陷波,Q 因子为 35。Q 因子越高,导致的陷波 3-dB 带宽越窄。如果您在流式传输期间调节滤波器参数,会立即在频谱分析仪输出中看到效果。

Wo = 750; 
Q  = 35;
BW = Wo/Q;
NotchFilter = dsp.NotchPeakFilter(Bandwidth=BW,...
    CenterFrequency=Wo,SampleRate=Fs);
filterAnalyzer(NotchFilter);

流式传入并处理信号

构造一个运行 3000 次迭代的 for 循环。在每次迭代中,流式传入正弦波的 1024 个采样(一帧),并对输入信号的每帧应用陷波滤波器。为了生成输入信号,将两个正弦波相加。得到的信号是一个具有两个频率的正弦波:一个频率为 100 Hz,另一个频率为 1000 Hz。根据 VecIndex 的值,滤波器的陷波调节到 100、500、750 或 1000 Hz 的频率。滤波器带宽会相应更改。当滤波器参数在流式传输期间发生变化时,频谱分析仪中的输出会相应更新。

FreqVec = [100 500 750 1000];
VecIndex = 1;
VecElem = FreqVec(VecIndex);
for Iter = 1:3000
    Sinewave1 = Sineobject1();
    Sinewave2 = Sineobject2();
    Input = Sinewave1 + Sinewave2;
    if (mod(Iter,350)==0)
        if VecIndex < 4 
            VecIndex = VecIndex+1;
        else
            VecIndex = 1;
        end
        VecElem = FreqVec(VecIndex); 
    end
    NotchFilter.CenterFrequency = VecElem;
    NotchFilter.Bandwidth = NotchFilter.CenterFrequency/Q;
    Output = NotchFilter(Input);
    SA(Input,Output);
end

filterAnalyzer(NotchFilter)

在处理循环结束时,CenterFrequency 为 100 Hz。在滤波器输出中,100 Hz 频率被陷波滤波器完全消除,而 1000 Hz 的频率不受影响。

另请参阅

| |