资源描述:
《实验二-2011秋数字信号处理实验报告-iir滤波器设计》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、〔字信号处理实验报告实验名称:IIR滤波器设计实验日期:2011.11.25姓名:耿学文学号:090250107哈尔滨工业大学(威海)—、实验目的1、掌握冲激响应法和双线性变换法设计IIR滤波器的原理及具体设计方法,熟悉用双线性设计法设计低通、带通和高通UR数字滤波器的计算机程序;2、熟悉模拟Butterworth滤波器的设计,掌握冲激响应法和双线性变换法设计数字TTR滤波器的方法。二、实验原理IIR数字滤波器的设计方法可以概括为图8-1,本实验主要掌握IIR滤波器的第一种方法,即利用模拟滤波器设计IIR数字
2、滤波器,这是IIR数字滤波器设计最常用的方法。利用模拟滤波器设计,需要将模拟域的转换为数字域最常用的转换方法为脉冲响应不变法和双线性变换法。图8-1TTR数字滤波器的设计方法图(1)脉冲响应不变法用数字滤波器的单位脉冲响应序列模仿模拟滤波器的冲激响应么⑺,让々(《)正好等于么⑺的采样值,即*⑷其中T为采样间隔。如果以及分别表示的拉氏变换及力⑻的Z变换,贝IJ卯)=(…V州)在MATLAB中,可用函数impinvar实现从模拟滤波器到数字滤波器的脉冲响应21-z-171+z-1不变映射。(2)双线性变换法s平面
3、与z平面之间满足下列映射关系:T—+S2_S平面的虚轴单值地映射于Z平面的单位圆上,S平面的左半平面完全映射到Z平面的单位内。双线性变换不存在频率混叠问题在MATLAB中,可用函数bilinear实现从模拟滤波器到数字滤波器的双线性变换映射。ClTtan—=双线性变换是一种非线性变换,即22,这种非线性引起的幅频特性畸变可通过预畸得到校正。H人仰=I®图2.1脉冲响应不变法设illlR的过程示意图三、实验内容和步骤1、不同阶次模拟巴特沃兹滤波器的频率响应程序:利用Matlab系统函数计算不同阶次的巴特沃兹滤波
4、器频率响应选取阶数N为3,5,10,12时clc,clearall,closeall;freq_axis=[0:0.01:2];N_array=[351012];figure⑴;for1=1:4%归一化的频率%滤波器的阶次N=N_array(l);[zpk]=buttap(N);%获得5阶巴特沃兹滤波器的参数[ba]=zp2tf(i,p,k);%得到传递函数tf:trans-functiondispU'NJnurr^sti^N)•极点:•]);Pdisp([*N='num2str(N)J零点:•】);z[H]
5、=freqs(b,a,freq_axis);magh=abs(H);subplot(2,2,1);plot(freq_axis,magh);axis([0201]);%限制坐标轴xlabel('w/wc-归一化频率');%标注ylabel(1幅度谱1);title([•巴特沃兹滤波器幅度谱N=',num2str(N)]);end图形:5O.巴特沃兹滤波器幅度谱N=300.511.52w/wc--归一化频率巴特沃兹滤波器幅度谱N=1000.511.52w/wc--归一化频率巴特沃兹滤波器幅度谱N=12巴特沃兹滤
6、波器幅度谱N=5500.511.52w/wc--归一化频率500.511.52w/wc--归一化频率结论:巾上阁对比可知巴特沃兹滤波器在通带和阻带p、j都很平坦,起伏不大。巴特沃兹滤波器的阶数越大,过渡带越窄。2、根据模拟滤波器指标,设计低通巴特沃兹滤波器要求通带截止频率fp=5kHz,通带最大衰减ap=2dB,阻带截止频率fs=12kHz,阻带最小衰减as=30dB,按照上述指标设计巴特沃兹低通滤波器。程序:J=sqrt(-l);截止频率%e科学计数法,代表10的几次方,5KHz:通带alfa_p=2;%最
7、大通带衰减2dBfs=12e3;%12Kz阻带截止频率alfa_s=30;%30dB阻带最小衰减k_sp=sqrt(10A(alfa_p/10)-l)/sqrt(10A(alfa_s/10)-1);■amda一sp=2*pi*fs/(2*pi*fp);N=ceil(-log(k_sp)/log(lamda_sp)};%ceil:加一个正小数取整p=zeros(l,N);forl=l:Np(l)=exp(J*pi/2+J*pi*(2*k+l)/yN);%e指数endZ=[];%表示无零点tf:trans-fun
8、ction[blal]=zp2tf{z,p,1);%得到传递函fc_freq=fp*(10A(alfa_p/10)-l)a(-1/VN);%3dB截至频率figure(2);freq_axisl=[0:50:15e3];[Hl]=什eqs(bl,al,freq_axisV^c_freq);%对Wc作频率归一化plot(freq_axisl,20*logl0(abs(Hl)));Hl=freqs(bl