Main Content

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);

图量响应(DB)包含一个轴对象。带有标题幅度响应(DB)的轴对象包含一个类型线的对象。

流入和过程信号

构建一个循环以进行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)

图量响应(DB)包含一个轴对象。带有标题幅度响应(DB)的轴对象包含一个类型线的对象。

At the end of the processing loop, theCenterFrequency为100 Hz。在滤波器输出中,100 Hz频率被Notch滤波器完全删除,而1000 Hz处的频率不受影响。

也可以看看

|||