利用FilterDesigner设计滤波器

来源:互联网 发布:java局部变量初始化 编辑:程序博客网 时间:2024/05/21 06:46

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

1.在Matlab中输入 filterbuilder


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


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


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

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

>> d=filter(Hlp,y);

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

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

附录:完整的源程序

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





原创粉丝点击