数字滤波器的设计
工程技术学院学生实验报告
一、 实验目的
1、 采用不同方法实现数字滤波器IIR/FIR的设计。
2、 掌握matlab 的基本操作,实现信号波形的仿真。
二、 实验内容
1、IIR 滤波器设计
clc
fs=2000;
wp=2*pi*200; ws=2*pi*300; rp=1; rs=40;
[N,wn]=buttord(wp,ws,rp,rs,'s'); [b,a]=butter(N,wn,'s'); [bz,az]=impinvar(b,a,fs); [h,w]=freqz(bz,az);
plot(w/pi,20*log10(abs(h))); wp=2*fs*tan(wp/fs/2); ws=2*fs*tan(ws/fs/2);
[N1,w1]=buttord(wp,ws,rp,rs,'s'); [b1,a1]=butter(N1,w1,'s'); [bz1,az1]=bilinear(b1,a1,fs); [h1,w1]=freqz(bz1,az1); hold on
plot(w1/pi,20*log10(abs(h1)),'r','linewidth',2); title('低通巴特沃斯滤波器') hold off grid on
分析:由图可知,在wp 处,冲激响应不变法的误差大于双线性变换法。冲激响应不变法是s 域到z 域的多值映射关系,从而导致频率响应的混叠失真。双线性变换法是DF 和AF 的频域响应单值映射关系,无混叠失真。由于DF 到AF 的频率变换非线性,从而产生了临界频率点的非线性畸变,预畸之后误差减小。
分析:由图可知,在ws 处,冲激响应不变法和双线性变换法都较为准确。
2、 FIR 滤波器设计 1) 窗函数法 a) Hamming 窗
wp=0.3*pi;ws=0.5*pi;N=33; wc=(wp+ws)/2; n=0:N-1;a=(N-1)/2; wn=hanning(N)
hd=sin(wc*(n-a))/pi./(n-a); hd(a+1)=wc/pi;hn=hd.*wn'; freqz(hn,1);
title('窗函数法分析低通滤波器')
b) Blackman 窗 wp=0.3*pi; ws=0.5*pi; N=33; wc=(wp+ws)/2; n=0:N-1; a=(N-1)/2; wn=blackman(N) hd=sin(wc*(n-a))/pi./(n-a); hd(a+1)=wc/pi; hn=hd.*wn'; freqz(hn,1);
title('窗函数法分析低通滤波器')
c) Hamming 窗和Blackman 窗时域频域波形 N=51;
w1=hamming(N); w2=blackman(N); W1=fft(w1,1024); W2=fft(w2,1024); subplot(221),plot(w1);
subplot(222),plot([-512:511],abs(fftshift(W1))); subplot(223),plot(w2);
subplot(224),plot([-512:511],abs(fftshift(W2)))
分析:由以上不同窗函数可看出,时域波形叫我平滑的窗其幅度函数的主瓣所包括的能量也较多,旁边能量少。因而在窗函数的设计中,通带、阻带波纹的改善要以加宽过渡带为代价。
2) 频率抽样法
a) N=21,过渡带加1个点 clear all; close all; clc N=21; wc=0.2*pi; k=0:N-1;
theta=-pi*k*(1-1/N); N1=floor(wc*N/2/pi);
hk=[ones(1,N1+1),zeros(1,N-2*N1-1),ones(1,N1)]; hk(N1+1)=0.388; hk(N-N1)=0.388; Hk=hk.*exp(1j*theta); hn=real(ifft(Hk)); freqz(hn,1);
b) N=31,过渡带加2个点 clear all; close all;
clc N=31; wc=0.2*pi; k=0:N-1;
v1=0.588;v2=0.106; theta=-pi*k*(1-1/N); N1=floor(wc*N/2/pi);
hk=[ones(1,N1+1),zeros(1,N-2*N1-1),ones(1,N1)]; hk(N1+3)=v1; hk(N-N1-1)=v2; Hk=hk.*exp(1j*theta); hn=real(ifft(Hk)); freqz(hn,1);
title('频域抽样法分析低通滤波器')
分析:在通带阻带中产生起伏波纹,在理想频率响应的跳变点两边(即通带、阻带中)最靠近跳变点处,产生起伏的最大值,通带中最大值对应通带最大衰减Rp ,阻带中最大值对应阻带最小衰减Rs 。随着增加频域抽样点数,通带、阻带波纹变化加快,通带区域产生的误差越小,且产生的过渡带越窄,但是通带阻带的最大值没有显著改变,即产生吉布斯效应。
3) 最优化设计法 a) rp=3,f=[500,600] rp=3;rs=40;fs=2000; f=[500,600];a=[1,0];
dev=[(10^(rp/20)-1)/(10^(rp/20)+1),10^(-rs/20)];
[N,f0,a0,w]=firpmord(f,a,dev,fs); b=firpm(N+2,f0,a0,w);
[H,f]=freqz(b,1,1024,fs); plot(f/fs,20*log10(abs(H))); grid
title('最优化设计低通滤波器') b) rp=1, f=[400,500] rp=1;rs=40;fs=2000; f=[400,500];a=[1,0];
dev=[(10^(rp/20)-1)/(10^(rp/20)+1),10^(-rs/20)];
[N,f0,a0,w]=firpmord(f,a,dev,fs); b=firpm(N+2,f0,a0,w); [H,f]=freqz(b,1,1024,fs); plot(f/fs,20*log10(abs(H))); grid;title('最优化设计低通滤波器')
分析:通带误差容限位(1-rp )~(1+rp)。 在0|w|wp 的通带中逼近1,且最大绝对误差为rp
分析:阻带误差容限位(1-rs )~(1+rs)。 在wst |w|
的通带中逼近0,且最大
绝对误差为rs 。
三、 实验小结与心得体会
1、IIR 无限长单位冲激响应。由于冲激响应不变法是要求模拟器严格带限于fs/2的,故不能涉及高通及带阻滤波器。当f>fs/2时,它们的幅度响应仍不衰减,一定会产生混叠失真。若f>fs/2时衰减越大,则频率响应的混叠失真越小。非线性相位。
2、FIR 有限长单位冲激响应,全零点系统,系统稳定。有严格的线性相位,必须满足
。窗函数的设计中,通带、阻带波纹的改善要以加宽过渡带
为代价。频域抽样法,增加抽样点数N ,通带、阻带波纹变化越快,由于抽样点更密,则频域响应的平坦区域逼近误差越小,且所产生的过渡带越窄,所要求的幅度响应越平缓,则逼近误差越小,幅度响应越陡峭,则逼近误差越大。最优化设计法可以根据所设数据灵活的设计出任意频率的滤波器,根据h(n)的表达式可知,矩形窗设计结果一定满足最小均方误差准则,上述最优化设计中采用了最大误差最小化准则,通带阻带中出现了等波纹,即等波纹逼近。