数字信号处理 低通滤波器设计实验

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验报告

课程名称:数字信号处理

实验名称:低通滤波器设计实验

院(系):

专业班级:

姓名:

学号:

指导教师:

一、实验目的:

掌握IIR数字低通滤波器的设计方法。

二、实验原理:

2.1设计巴特沃斯IIR滤波器

在MATLAB下,设计巴特沃斯IIR滤波器可使用butter 函数。

Butter函数可设计低通、高通、带通和带阻的数字和模拟IIR滤波器,其特性为使通带内的幅度响应最大限度地平坦,但同时损失截止频率处的下降斜度。在期望通带平滑的情况下,可使用butter函数。butter函数的用法为:[b,a]=butter(n,Wn)其中n代表滤波器阶数,W n代表滤波器

的截止频率,这两个参数可使用buttord 函数来确定。buttord 函数可在给定滤波器性能的情况下,求出巴特沃斯滤波器的最小阶数n ,同时给出对应的截止频率Wn 。buttord 函数的用法为:[n,Wn]= buttord(Wp,Ws,Rp,Rs)其中Wp 和Ws 分别是通带和阻带的拐角频率(截止频率),其取值范围为0至1之间。当其值为1时代表采样频率的一半。Rp 和Rs 分别是通带和阻带区的波纹系数。

2.2契比雪夫I 型IIR 滤波器。

在MATLAB 下可使用cheby1函数设计出契比雪夫I 型IIR 滤波器。

cheby1函数可设计低通、高通、带通和带阻契比雪夫I 型滤IIR 波器,其通带内为等波纹,阻带内为单调。契比雪夫I 型的下降斜度比II 型大,但其代价是通带内波纹较大。

cheby1函数的用法为:[b,a]=cheby1(n,Rp,Wn,/ftype /)在使

用cheby1函数设计IIR 滤波器之前,可使用cheblord 函数求出滤波器阶数n 和截止频率Wn 。cheblord 函数可在给定滤波器性能的情况下,选择契比雪夫I 型滤波器的最小阶和截止频率Wn 。cheblord 函数的用法为:

[n,Wn]=cheblord(Wp,Ws,Rp,Rs)其中Wp 和Ws 分别是通带和阻带的拐角频率(截止频率),其取值范围为0至1之间。当其值为1时代表采样频率的一半。Rp 和Rs 分别是通带和阻带区的波纹系数。

三、实验要求:

利用Matlab 设计一个数字低通滤波器,指标要求如下:

1.要求频率低于0.2rad π时,容许幅度误差在1db 以内;在频率0.3ππ 之间的阻带衰减大于15db.增益()()()20l g m a x jw db jw H e mag H e =

2. 设计巴特沃思滤波器实现以上功能。

3.设计切比雪夫滤波器实现以上功能。

四、实验Matlab代码及结果:

4.1 巴特沃思滤波器:

wp=0.2*pi;

ws=0.3*pi;

Rp=1;

Rs=15;

[N,wc]=buttord(wp/pi,ws/pi,Rp,Rs);

[b,a]=butter(N,wc);

[H,w]=freqz(b,a);

figure(1)

subplot(211);

mag=abs(H);

plot(w/pi,mag);

xlabel('角频率w/pi');

ylabel('幅度');

grid on;

subplot(212);

phase=angle(H);

plot(w/pi,phase);

xlabel('角频率w/pi'); ylabel('相位');

grid on;

figure(2)

magdb=20*log10(mag); plot(w/pi,magdb); ylabel('增益/db'); xlabel('角频率w/pi'); grid on;

所的图像如下:

4.2切比雪夫滤波器:

wp=0.2;

ws=0.3;

Rp=1;

Rs=15;

[N,wn]=cheb1ord(wp,ws,Rp,Rs); [b,a]=cheby1(N,Rp,wn);

[H,w]=freqz(b,a,501);

mag=abs(H);

figure(1)

subplot(211);

plot(w/pi,mag);

xlabel('角频率w/pi'); ylabel('幅度');

grid on;

phase=angle(H); subplot(212);

plot(w/pi,phase); xlabel('角频率w/pi'); ylabel('相位');

grid on;

figure(2)

magdb=20*log10(mag); plot(w/pi,magdb); ylabel('增益db'); xlabel('角频率w/pi'); grid on;

所得图形如下所示:

五、实验心得:

1.采用MATLAB设计滤波器,使原来非常繁琐复杂的程序设计变成了简单的函数调用,为滤波器的设和实现开辟了广阔的天地,尤其是Matlab工具箱使各个领域的研究人员可以直观方便地进行科学研究与工程应用。

2.MATLAB 信号处理工具箱为滤波器设计及分析提供了非常优秀的辅助设计工具, 在设计数字滤波器时, 善于应用MATLAB进行辅助设计, 能够大大提高设计效率。

相关文档
最新文档