主要内容

MATLAB中嘈杂的正弦波信号的滤波器框架

此示例显示如何在Matlab®中滤波过滤噪声信号,并使用频谱分析仪可视化原始和过滤信号。对于此示例的金宝appSimulink®版本,请参阅Simulink中噪声的噪声帧框架金宝app

指定信号源

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

sine1 = dsp.sinewave('频率',1e3,'采样率',44.1e3);sine2 = dsp.sinewave('频率',10e3,'采样率',44.1e3);

创建低通滤波器

低通杉过滤器,dsp.lowpassfilter.,使用广义Remez FIR滤波器设计算法设计最小订购FIR低通滤波器。将通带频率设置为5000 Hz,停机频率为8000 Hz。通带纹波是0.1dB,停止衰减为80 dB。

firlowpass = dsp.lowpassfilter('Passband职业',5000,......'stopband职业',8000);

创建Spectrum Analyzer.

建立频谱分析仪,比较原始信号和滤波信号的功率谱。频谱单位是dBm。

specana = dsp.spectrumanalyzer(“PlotAsTwoSidedSpectrum”,错误的,......'采样率',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)

也可以看看

|||