主要内容

滤波器帧的噪声正弦波信号在MATLAB

这个例子展示了如何在MATLAB低通滤波器噪声信号和可视化原始和滤波信号使用频谱分析仪。有关此示例的金宝appSimulink版本,请参见在Simulink中滤波器帧的噪声正弦波信号金宝app

指定信号源

输入信号是两个频率为1 kHz和10 kHz的正弦波之和。采样频率为44.1 kHz。

Sine1 = dsp。SineWave (“频率”1 e3,“SampleRate”44.1 e3);Sine2 = dsp。SineWave (“频率”, 10 e3,“SampleRate”44.1 e3);

创建低通滤波器

低通FIR滤波器,dsp。LowpassFilter,利用广义Remez FIR滤波器设计算法设计了一个最小阶FIR低通滤波器。设置通带频率为5000hz,阻带频率为8000hz。通带纹波为0.1 dB,阻带衰减为80 dB。

FIRLowPass = dsp。LowpassFilter (“PassbandFrequency”, 5000,...“StopbandFrequency”, 8000);

创建频谱分析仪

设置频谱分析仪,比较原始和滤波信号的功率谱。光谱单位为dBm。

SpecAna = dsp。简介(“PlotAsTwoSidedSpectrum”假的,...“SampleRate”, Sine1。SampleRate,...“NumInputPorts”2,...“ShowLegend”,真的,...“YLimits”, -145年,45);SpecAna。ChannelNames = {“原始噪声信号”“低通滤波信号”};

指定每帧采样

这个例子使用基于帧的处理,数据一次处理一帧。每一帧数据包含来自独立通道的连续样本。基于帧的处理对于许多信号处理应用来说是有利的,因为你可以一次处理多个样本。通过将数据缓冲到帧中并处理多采样帧的数据,可以提高信号处理算法的计算时间。设置每帧的样本数量为4000。

Sine1。SamplesPerFrame = 4000;Sine2。SamplesPerFrame = 4000;

滤波带噪声的正弦波信号

将标准差为0.1的零均值高斯白噪声加到正弦波和中。使用FIR滤波器对结果进行滤波。在运行仿真时,频谱分析仪显示,源信号中8000hz以上的频率被衰减。结果信号的峰值保持在1 kHz,因为它落在低通滤波器的通带。

i = 1:1000 x = sine1()+ sine2()+ 0.1。* randn(sine1.samplesperframe,1);y = firlowpass(x);Specana(X,Y);结束发行版(SpecAna)

另请参阅

|||