实验7用双线性变化法设计IIR数字滤波器.doc
文本预览下载声明
数字信号处理实验
实验目的
?熟悉模拟巴特沃兹(Batterworth)滤波器设计和用双线性变换去设计IIR数字滤波器的方法。??
实验原理
利用双线性变换法设计IIR数字滤波器,首先要设计出满足指标要求的模拟滤波器的传递函数Ha(s),然后由Ha(s)通过双线性变换可得所要设计的IIR数字滤波器的系统函数Ha(z)。如果给定的指标为数字滤波器的指标,直接利用模拟滤波器的低通原型,通过频率变换关系可一步完成数字滤波器的设计。
低通数字滤波器的设计
数字域与模拟域关系:Ωc=(2/T)tan(ωc/2);H(z)=Ha(s)|s=(2/T)(1-Z-1)/(1+Z-1)?
式中:ωc是低通数字滤波器的截止频率,T为取样周期。??
三、实验内容?
编写用双性变换法设计巴特沃兹低通IIR数字滤波器的程序,要求通带内频率低于0.2pi rad时,容许幅度误差在1dB之内,频率在0.3rad到pi rad之间的阻带衰减大于10dB。
用双线性变换法设计Butterworth低通IIR数字滤波器,要求使用buttord, butter和bilinear函数。滤波器技术指标:取样频率1Hz,通带内临界频率0.2Hz,通带内衰减小于1dB;阻带临界频率0.3Hz,阻带内衰减大于25dB。 ?
以64?为取样间隔,在屏幕上打印出数字滤波器的频率区间[?,0]?上的幅 频响应特性曲线|)(|jweH或?|)(|log2010jweH???????。?
在屏幕上打印出H(z)的分子,分母多项式系数。
代码:
(1)
clear all ;
%数字域
wp = 0.2 * pi ;
ws = 0.3 * pi ;
Rp = 1 ;
Rs = 10 ;
Fs = 1 ;
wp2 = 2 * Fs * tan(wp / 2) ;
ws2 = 2 * Fs * tan(ws / 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)) ;
xlabel(f)
ylabel(p-p)
subplot(2 , 1 , 2)
plot(W / pi , 20 * log10(abs(H))) ;
xlabel(f)
ylabel(db)
(2)
clear all ;
%模拟域
wp = 0.2 * pi * 2 ;
ws = 0.3 * pi * 2;
Rp = 1 ;
Rs = 25 ;
Fs = 1 ;
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) ;
[b , a] = butter(N , Wn , s) ;
[bz , az] = bilinear(b , a , Fs) ;
[H , W] = freqz(bz , az) ;
subplot(2 , 1 , 1) ;
plot(W / pi , abs(H)) ;
xlabel(f)
ylabel(p-p)
subplot(2 , 1 , 2)
plot(W / pi , 20 * log10(abs(H))) ;
xlabel(f)
ylabel(db)
(3)
clear all ;
%模拟域
wp = 0.2 * pi * 2 ;
ws = 0.3 * pi * 2;
Rp = 1 ;
Rs = 25 ;
Fs = 1 ;
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
显示全部