数字信号处理实验报告 - 3
- 格式:doc
- 大小:188.50 KB
- 文档页数:4
实验六 IIR 数字滤波器的设计
一、实验目的
从理论上讲,任何的线性是不变(LTI )离散时间系统都可以看做一个数字滤波器,因此设计数字滤波器实际就是设计离散时间系统。数字滤波器你包括IIR (无限冲激响应)和FIR (有限冲激响应)型,在设计时通常采用不同的方法。
本实验通过使用MATLAB 函数对数字滤波器进行设计和和实现,要求掌握IIR 数字巴特沃斯滤波器、数字切比雪夫滤波器的设计原理、设计方法和设计步骤;能根据给定的滤波器指标进行滤波器设计;同时也加深学生对数字滤波器的常用指标和设计过程的理解。
二、实验原理
在IIR 滤波器的设计中,常用的方法是:先根据设计要求寻找一个合适的模拟原型滤波器,然后根据一定的准则将此模拟原型滤波器转换为数字滤波器。
IIR 滤波器的阶数就等于所选的模拟原型滤波器的阶数,所以其阶数确定主要是在模拟原型滤波器中进行的。
IIR 数字滤波器的设计方法如下:
(1)冲激响应不变法。
(2)双线性变化法。
一般来说,在要求时域冲激响应能模仿模拟滤波器的场合,一般使用冲激响应不变法。冲激响应不变法一个重要特点是频率坐标的变化是线性的,因此如果模拟滤波器的频率响应带限于折叠频率的话,则通过变换后滤波器的频率响应可不失真地反映原响应与频率的关系。
与冲激响应不变法比较,双线性变化的主要优点是靠频率的非线性关系得到s 平面与z 平面的单值一一对应关系,整个值对应于单位圆一周。所以从模拟传递函数可直接通过代数置换得到数字滤波器的传递函数。
MATLAB 提供了一组标准的数字滤波器设计函数,大大简化了滤波器的设计工程。
(1)butter 。
(2)cheby1、cheby2。
三、实验内容及分析
利用MATLAB 编程方法或利用MATLAB 中fdatool 工具设计不同功能的IIR 数字滤波器。
1、基于chebyshev I 型模拟滤波器原型使用冲激不变转换方法设计数字滤波器,要求参数为通带截止频率π4.0=Ωp ;通带最大衰减dB A p 1=;阻带截止频率π4.0=Ωs ;阻带最小衰减dB A s 35=。
程序:
wp=0.2*pi; %通带边界频率
ws=0.4*pi; %阻带截止频率
rp=1; %通带最大衰减
rs=35; %阻带最小衰减
Fs=1000; %¼ÙÉè³éÑùÂö³å1000hz [N,Wn]=cheb1ord(wp,ws,rp,rs,'s');
[Z,P,K]=cheby1(N,rp,Wn,'s');
[H,W]=zp2tf(Z,P,K);
figure(1); freqs(H,W); [P,Q]=freqs(H,W); figure(2); plot(Q*Fs/(2*pi),abs(P)); grid on;
xlabel('频率/Hz');
ylabel('幅度');
2、基于Butterworth 型模拟滤波器原型使用双线性变换方法设计数字滤波器的,要求参数为截止频率π4.0=Ωp ;通带最大衰减dB A p 1=;阻带截止频率π25.0=Ωs ;阻带最小衰减dB A S 40=。
程序:
wp=0.4*pi;
ws=0.25*pi;
rp=1;
rs=40;
fs=500;
ts=1/fs;
wp1=wp*ts;
ws1=ws*ts;
wp2=2*fs*tan(wp1/2);
ws2=2*fs*tan(ws1/2);
[N,Wn]=buttord(wp2,ws2,rp,rs,'s');
[Z,P,K]=buttap(N);
[Bap,Aap]=zp2tf(Z,P,K);
[b,a]=lp2lp(Bap,Aap,Wn);
[bz,az]=bilinear(b,a,fs);
[H,W]=freqz(bz,az);
subplot(2,1,1);
plot(W/pi,abs(H));
grid on ;
xlabel('频率')
ylabel('幅度')
subplot(2,1,2);
plot(W/pi,20*log10(abs(H))); grid on;
xlabel('频率');
ylabel('幅度(dB)');