利用FilterDesigner设计滤波器

本文演示如何使用Matlab的FilterBuilder工具设计低通滤波器,并演示其滤波功能。

1.在Matlab中输入 filterbuilder

利用FilterDesigner设计滤波器_第1张图片

2.设置如下图所示,其中FS为信号采样率,本实验中,信号采样率为10Hz

利用FilterDesigner设计滤波器_第2张图片

3.点击View Filter Response可以查看信号频率响应

利用FilterDesigner设计滤波器_第3张图片

4.回到matlab工作界面,此时matlab中有个Hlp的变量,滤波器的参数保存在该变量中。。

5.由前面的设置可知道,当前滤波器的带宽为2Hz,截止频率为3Hz。故我们生成包含2Hz和3Hz频率的测试数据。

代码如下:

>> t=0:1/10:100;
>> y=sin(2*pi*2*t)+sin(2*pi*3*t);
>> Y=fft(y);
>> Y=abs(Y);
>> Y=Y/length(Y);
>> F=linspace(0,10,length(t));
>> plot(F(1:501),Y(1:501))

利用FilterDesigner设计滤波器_第4张图片

6.用生成的滤波器对数据y进行滤波。

>> d=filter(Hlp,y);

7.观察滤波后数据的频谱。

>> D=fft(d);
>> D=abs(D);
>> D=D/length(D);
>> plot(F(1:501),D(1:501))

利用FilterDesigner设计滤波器_第5张图片

附录:完整的源程序

>> filterbuilder
The variable 'Hlp' has been exported to the workspace.
>> t=0:1/10:100;
>> y=sin(2*pi*2*t)+sin(2*pi*3*t);
>> Y=fft(y);
>> Y=abs(Y);
>> Y=Y/length(Y);
>> F=linspace(0,10,length(t));
>> plot(F(1:501),Y(1:501))
>> d=filter(Hlp,y);
>> D=fft(d);
>> D=abs(D);
>> D=D/length(D);
>> plot(F(1:501),D(1:501))





你可能感兴趣的:(filter,测试,matlab,工具,fft,plot)