MATLAB中流信号处理简介
此示例显示了如何使用系统对象在MATLAB®中进行流信号处理。在每个处理循环中,逐帧(或按块)读取和处理的信号。您可以控制每个帧的大小。
在此示例中,使用每个处理循环中的Notch-Peak滤波器过滤1024个样品的帧。输入是正弦波信号,是从一个DSP.SineWave
目的。该过滤器是使用一个凹口滤波器的过滤器dsp.notchpeakfilter
目的。To ensure smooth processing as each frame is filtered, the System objects maintain the state of the filter from one frame to the next automatically.
初始化流媒体组件
初始化正弦波源以生成正弦波,Notch-Peak滤波器以滤波正弦波,以及频谱分析仪以显示过滤的信号。输入正弦波具有两个频率:一个在100 Hz,另一个为1000 Hz。创建两个DSP.SineWave
对象,一个生成100 Hz正弦波,the other to generate the 1000 Hz sine wave.
FS = 2500;SineObject1 = DSP.SineWave(“ SampleSperFrame”,1024,...'采样率',fs,'Frequency',,,,100); Sineobject2 = dsp.SineWave(“ SampleSperFrame”,1024,...'采样率',fs,'Frequency',1000);sa =光谱分析仪('采样率',fs,...'方法',,,,'韦尔奇',,,,...“平均轨迹”,,,,“指数”,,,,...'ForgettingFactor',0.1,...'PlotAsTwoSidedSpectrum',,,,false,...'ChannelNames',,,,{'SinewaveInput',,,,“ notchoutput”},,“ Showlegend”,真的);
Create Notch-Peak Filter
创建一个二阶Intch-Peak滤波器来过滤正弦波信号。该滤波器在750 Hz处有一个缺口,Q因子为35。较高的Q因子会导致凹口更窄的3 dB带宽。如果在流中调整过滤器参数,则可以立即在Spectrum Analyzer输出中看到效果。
WO = 750;Q = 35;bw = wo/q;notchfilter = dsp.notchpeakfilter('带宽',BW,...“中心频率”,哇,'采样率',fs);fvtool(Notchfilter);
流入和过程信号
构建一个循环以进行3000次迭代。在每次迭代中,以正弦波的1024个样品(一帧)流中流,并在输入信号的每个框架上施加凹口滤波器。要生成输入信号,请添加两个正弦波。结果信号是一个具有两个频率的正弦波:一个在100 Hz时,另一个在1000 Hz处。过滤器的缺口根据值的值调谐到100、500、750或1000 Hz的频率vecindex
。The filter bandwidth changes accordingly. When the filter parameters change during streaming, the output in the spectrum analyzer gets updated accordingly.
freqvec = [100 500 750 1000];vecindex = 1;vecelem = freqvec(vecindex);为了iter = 1:3000 sineWave1 = sineObject1();SineWave2 = SineObject2();输入= SineWave1 + SineWave2;如果(mod(iter,350)== 0)如果vecindex< 4 VecIndex = VecIndex+1;别的vecindex = 1;结尾vecelem = freqvec(vecindex);结尾notchfilter.centerfquency = vecelem;notchfilter.bandwidth = notchfilter.centerfquency/q;输出= NotchFilter(输入);SA(输入,输出);结尾
fvtool(NotchFilter)
At the end of the processing loop, theCenterFrequency
为100 Hz。在滤波器输出中,100 Hz频率被Notch滤波器完全删除,而1000 Hz处的频率不受影响。
也可以看看
MATLAB中嘈杂的正弦波信号的滤镜框架|Simulink中嘈杂的正弦波信号的滤镜帧万博1manbetx|Simulink中的LowPass IIR过滤器设计万博1manbetx|MATLAB和SIMULINK中的多胎过滤万博1manbetx