1、IIR数字滤波器设计及实现实验三 IIR数字滤波器设计及实现一、实验目的(1)熟悉用脉冲响应不变法和双线性变换法设计IIR数字滤波器的原理与方法;(2)学会调用MATLAB信号处理工具箱中滤波器设计函数设计IIR数字滤波器,学会根据滤波需求确定滤波器指标参数。二、实验原理设计IIR数字滤波器一般采用脉冲响应不变法和双线性变换法。脉冲响应不变法:根据设计指标求出滤波器确定最小阶数N和截止频率Wc;计算相应的模拟滤波器系统函数;将模拟滤波器系统函数转换成数字滤波器系统函数双线性变换法:根据数字低通技术指标得到滤波器的阶数N;取合适的T值,几遍校正计算相应模低通的技术指标;根据阶数N查表的到归一化低
2、通原型系统函数,将代入,去归一化得到实际的;用双线性变换法将转换成数字滤波器三、实验内容及步骤1、用脉冲响应不变法设计(1)根据设计指标求出滤波器确定最小阶数N和截止频率Wcclear;close all;clc; % 开始准备fp=3400;fs=5000;Fs=22050;Rp=2;Rs=20;T=1/Fs; % T=1s的模拟滤波器设计指标W1p=fp/Fs*2; W1s=fs/Fs*2; % 求归一化频率N, Wn = buttord(W1p, W1s, Rp, Rs, s; % 确定butterworth的最小阶数N和频率参数Wn 得到结果为:N =7Wn =0.3266即:该设计指
3、标下的模拟滤波器最小阶数为N=7,其截至频率为Wn =0.3266;(2)计算相应的模拟滤波器系统函数clear;close all;clc; % 开始准备fp=3400;fs=5000;Fs=22050;Rp=2;Rs=20;T=1/Fs; % T=1s的模拟滤波器设计指标W1p=fp/Fs*2; W1s=fs/Fs*2; % 求归一化频率N, Wn = buttord(W1p, W1s, Rp, Rs, s; % 确定butterworth的最小阶数N和频率参数Wn B,A=butter(N,1,s %计算相应的模拟滤波器系统函数得到结果为:B =1.0e-003 *0 0 0 0 0 0
4、 0 0.3966A =1.0000 1.4678 1.0773 0.5084 0.1661 0.0375 0.0055 0.0004 (3)将模拟滤波器系统函数转换成数字滤波器系统函数clear;close all;clc; % 开始准备fp=3400;fs=5000;Fs=22050;Rp=2;Rs=20;T=1/Fs; % T=1s的模拟滤波器设计指标W1p=fp/Fs*2; W1s=fs/Fs*2; % 求归一化频率N, Wn = buttord(W1p, W1s, Rp, Rs, s; % 确定butterworth的最小阶数N和频率参数Wn B,A=butter(N,1,s; %计
5、算相应的模拟滤波器系统函数Bz,Az=impinvar(B,A %用脉冲相应不变法将模拟滤波器转换成数字滤波器sys=tf(Bz,Az,T; %得到传输函数Bz =1.0e-004 *-0.0000 0.0045 0.2045 0.8747 0.7094 0.1090 0.0016 0Az =1.0000 -5.5415 13.2850 -17.8428 14.4878 -7.1069 1.9491 -0.2304 即:由Bz和Az可以写出数字滤波器系统函数为:Transfer function:-9.992e-015 z7 + 4.454e-007 z6 + 2.045e-005 z5 +
6、8.747e-005 z4 + 7.094e-005 z3 + 1.09e-005 z2 + 1.561e-007 z-z7 - 5.541 z6 + 13.28 z5 - 17.84 z4 + 14.49 z3 - 7.107 z2 + 1.949 z - 0.2304Sampling time: 4.5351e-005(4)绘图clear;close all;clc; % 开始准备fp=3400;fs=5000;Fs=22050;Rp=2;Rs=20;T=1/Fs; % T=1s的模拟滤波器设计指标W1p=fp/Fs*2; W1s=fs/Fs*2; % 求归一化频率N, Wn = butt
7、ord(W1p, W1s, Rp, Rs, s; % 确定butterworth的最小阶数N和频率参数Wn B,A=butter(N,Wn,s; %计算相应的模拟滤波器系统函数Bz,Az=impinvar(B,A; %用脉冲响应不变法将模拟滤波器转换成数字滤波器sys=tf(Bz,Az,T; %得到传输函数H,W=freqz(Bz,Az,512,Fs; % 生成频率响应参数plot(W,20*log10(abs(H; % 绘制幅频响应grid on; % 加坐标网格得到结果为:观察实验结果图可看到:在频率为3402Hz处频率为衰减2.015db,在频率为5017Hz处幅度衰减21.36db。且
8、相位不满足线性。2、用双线性变换法完成上述设计clear;close all;clc; % 开始准备fp=3400;fs=5000;Fs=22050;Rp=2;Rs=20;T=1/Fs; % 设计指标Wp=2*tan(2*pi*fp*T/2/pi;Ws=2*tan(2*pi*fs*T/2/pi; % 求归一化频率N, Wn = buttord(Wp, Ws, Rp, Rs, s %设计过渡模拟滤波器结果为:N =6Wn =0.3749clear;close all;clc; % 开始准备fp=3400;fs=5000;Fs=22050;Rp=2;Rs=20;T=1/Fs; % 设计指标Wp=2
9、*tan(2*pi*fp*T/2/pi;Ws=2*tan(2*pi*fs*T/2/pi; % 求归一化频率N, Wn = buttord(Wp, Ws, Rp, Rs, s;B,A=butter(N,Wn,s; %计算相应的模拟滤波器系统函数Bz,Az=bilinear(B,A,Fs %用双线性变换法转换成数字滤波器结果为Bz =1.0e-014 *0 0 -0.1776 0.7105 -0.7105 0.4441 -0.0777Az =1.0000 -5.9999 14.9997 -19.9993 14.9993 -5.9997 0.9999 clear;close all;clc; % 开
10、始准备fp=3400;fs=5000;Fs=22050;Rp=2;Rs=20;T=1/Fs; % 设计指标Wp=2*tan(2*pi*fp*T/2/pi;Ws=2*tan(2*pi*fs*T/2/pi; % 求归一化频率N, Wn = buttord(Wp, Ws, Rp, Rs, s;B,A=butter(N,Wn,s;Bz,Az=bilinear(B,A,Fs;sys=tf(Bz,Az,T结果为:Transfer function:-1.776e-015 z4 + 7.105e-015 z3 - 7.105e-015 z2 + 4.441e-015 z - 7.772e-016-z6 -
11、6 z5 + 15 z4 - 20 z3 + 15 z2 - 6 z + 0.9999Sampling time: 4.5351e-005N, Wn = buttord(Wp, Ws, Rp, Rs, sz,p,k = buttap(N; % 设计模拟低通原型的零极点增益参数Bp,Ap = zp2tf(z,p,k; % 将零极点增益转换成分子分母参数Bs,As = lp2lp(Bp,Ap,Wn*pi*Fs; % 将低通原型转换为模拟低通Bz,Az = bilinear (Bs,As,Fs;结果为:Bz =0.0047 0.0280 0.0700 0.0933 0.0700 0.0280 0.0
12、047Az =1.0000 -1.9161 2.1559 -1.3866 0.5585 -0.1257 0.0125sys=tf(bz,az,T % 给出传输函数H(z)结果为:Transfer function:0.004664 z6 + 0.02798 z5 + 0.06996 z4 + 0.09328 z3 + 0.06996 z2 + 0.02798 z + 0.004664-z6 - 1.916 z5 + 2.156 z4 - 1.387 z3 + 0.5585 z2 - 0.1257 z + 0.01252Sampling time: 4.5351e-005freqz(Bz,Az,
13、512,Fs; % 生成频率响应参数grid on; % 加坐标网格title(双线性变换法;结果为:由图可以看出,设计满足要求,在频率为3402Hz处衰减1.009db,在频率为5017Hz处幅度衰减20.26 db。且相位不满足线性。实验四 FIR数字滤波器设计及实现一、实验目的(1)掌握用窗函数法设计FIR数字滤波器的原理和方法。(2)学会调用MATLAB函数设计与实现FIR滤波器。二、设计原理有限脉冲响应(FIR)数字滤波器的传输函数为: ,其单位脉冲响应就是系统传输函数各次项的系数。设计FIR数字滤波器就是要根据给定的技术指标,确定系统单位脉冲响应h(n,使系统的相位特性线性、幅度特
14、性逼近给定的技术指标。如果h(n是实数序列,且满足偶对称或奇对称条件,则滤波器就具有严格的线性相位特性。本实验设计FIR滤波器的采用窗口设计法。窗口设计法是从时域出发,将理想滤波器的单位脉冲响应截取一段作为传输函数的系数。通常情况下,滤波器指标往往在频域给出,算出的理想单位脉冲响应一般是非因果、无限长、物理上不可实现的,需先截短再右移使之成为有限长因果序列,只要截取的长度和方法合理,总能满足频域指标要求。截短就是加窗,矩形窗最简单,在频域属最小平方逼近,但峰肩和波纹不太理想。一般希望窗函数的频谱主瓣尽可能地窄,以获得较陡的过渡带,同时能量又要尽量集中在主瓣,以减小峰肩和波纹,进而增加阻带衰减。
15、实际工程中常用窗的特性及MATLAB函数比较如表1所示。表1 常用窗函数性能比较窗类型最小阻带衰减主瓣宽度精确过渡带宽窗函数矩形窗21dB4/M1.8/Mboxcar三角窗25dB8/M6.1/Mbartlett汉宁窗44dB8/M6.2/Mhanning哈明窗53dB8/M6.6/Mhamming布莱克曼窗74dB12/M11/Mblackman取凯塞窗时用kaiserord函数来得到长度M和kaiser利用窗口设计法设计FIR数字滤波器的过程:具体操作步骤如下:1、对设计指标进行归一化处理。数字滤波器传输函数只与频域的相对值有关,故在设计时可先将滤波器设计指标对采样频率进行归一化处理,归一
16、化公式为:2、根据阻带衰减要求和过渡带宽,由表1选择窗函数的类型并估计窗口长度M,此时滤波器的阶数为M-1(注意窗口长度与滤波器类型的关系)。3、根据滤波器的理想频响求出理想单位脉冲响应。4、将理想单位脉冲响应与窗函数相乘,得系统单位脉冲响应。5、用freqz函数验算技术指标是否满足要求。三、实验内容及步骤设计一线性相位FIR数字低通滤波器,要求通带临界频率fp=2000Hz,通带允许波动Rp=1dB,阻带临界频率fs=4000Hz,阻带衰减Rs=50db,截止频率Fc=(fp+fs/2=3000Hz,采样频率Fs=22050Hz。clear;close all;clc; fp=2000;fs=4000;Fs=22050;Rp=1;Rs=50; %输入设计指标W1p=fp/(Fs/2;W1s=fs/(Fs/2;W1c=(W1p+W1s/2; %求归一化频率%选择窗函数的类型(Rs=50选哈明窗并估计窗口长度M dW=W1s-W1pM=ceil(6.6/dWN=M+mod(M+1,2 %选用第一类滤波器,保证N为奇数结果为dW =0.1814M =37N =37即:滤波器阶数取满足要求的最小整数为37,带宽为0.1814hn=fir1(N-1,W1c,hamming(N;%用哈明窗加窗freqz(hn,1,512,Fs;grid on; % 绘制结果并加网络结果为:
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1