您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 信息化管理 > 有限脉冲响应数字滤波器设计实验报告DOC
成绩:《数字信号处理》作业与上机实验(第二章)班级:学号:姓名:任课老师:完成时间:信息与通信工程学院2014—2015学年第1学期第7章有限脉冲响应数字滤波器设计1、教材p238:19.设信号x(t)=s(t)+v(t),其中v(t)是干扰,s(t)与v(t)的频谱不混叠,其幅度谱如题19图所示。要求设计数字滤波器,将干扰滤除,指标是允许|s(f)|在0≤f≤15kHz频率范围中幅度失真为±2%(δ1=0.02);f20kHz,衰减大于40dB(δ2=0.01);希望分别设计性价比最高的FIR和IIR两种滤波器进行滤除干扰。请选择合适的滤波器类型和设计方法进行设计,最后比较两种滤波器的幅频特性、相频特性和阶数。题19图(1)matlab代码:%基于双线性变换法直接设计IIR数字滤波器Fs=80000;fp=15000;fs=20000;rs=40;wp=2*pi*fp/Fs;ws=2*pi*fs/Fs;Rp=-20*log10(1-0.02);As=40;[N1,wp1]=ellipord(wp/pi,ws/pi,Rp,As);[B,A]=ellip(N1,Rp,As,wp1);[Hk,wk1]=freqz(B,A,1000);mag=abs(Hk);pah=angle(Hk);%窗函数法设计FIR数字滤波器Bt=ws-wp;alph=0.5842*(rs-21)^0.4+0.07886*(rs-21);N=ceil((rs-8)/2.285/Bt);wc=(wp+ws)/2/pi;hn=fir1(N,wc,kaiser(N+1,alph));M=1024;Hk=fft(hn,M);k=0:M/2-1;wk=(2*pi/M)*k;%画出各种比较结果图figure(2);plot(wk/pi,20*log10(abs(Hk(k+1))),':','linewidth',2.5);holdonplot(wk1/pi,20*log10(mag),'linewidth',2);holdofflegend('FIR滤波器','IIR滤波器');axis([0,1,-80,5]);xlabel('w/\pi');ylabel('幅度/dB');title('损耗函数');figure(3)plot(wk/pi,angle(Hk(k+1))/pi,':','linewidth',2.5);holdonplot(wk1/pi,pah/pi,'linewidth',2);holdofflegend('FIR滤波器','IIR滤波器');xlabel('w/\pi');ylabel('相位/\pi');title('相频特性曲线');(2)两种数字滤波器的损耗函数和相频特性的比较分别如图1、2所示:图1损耗函数比较图图2相频特性比较图00.10.20.30.40.50.60.70.80.91-80-70-60-50-40-30-20-100w/幅度/dB损耗函数FIR滤波器IIR滤波器00.10.20.30.40.50.60.70.80.91-1-0.8-0.6-0.4-0.200.20.40.60.81w/相位/相频特性曲线FIR滤波器IIR滤波器(3)IIR数字滤波器阶数:N=5FIR数字滤波器阶数:N=36(4)运行结果分析:由图2及阶数可见,IIR阶数低得多,但相位特性存在非线性失真,FIR具有线性相位特性。20.调用MATLAB工具箱函数fir1设计线性相位低通FIR滤波器,要求希望逼近的理想低通滤波器通带截止频率ωc=π/4rad,滤波器长度N=21。分别选用矩形窗、Hanning窗、Hamming窗和Blackman窗进行设计,绘制用每种窗函数设计的单位脉冲响应h(n)及其损耗函数曲线,并进行比较,观察各种窗函数的设计性能。(1)matlab代码:wc=pi/4;N=21;hn_boxcar=fir1(N-1,wc/pi,boxcar(N));hn_hanning=fir1(N-1,wc/pi,hanning(N));hn_hamming=fir1(N-1,wc/pi,hamming(N));hn_blackman=fir1(N-1,wc/pi,blackman(N));n=0:N-1;plot(n,hn_boxcar);holdonplot(n,hn_hanning,':','linewidth',2);plot(n,hn_hamming,'+','linewidth',2);plot(n,hn_blackman,'o');holdoffxlabel('n');ylabel('h(n)');legend('矩形窗','汉宁窗','哈明窗','布莱克曼窗');title('单位冲激响应');M=1024;Hk=fft(hn_boxcar,M);k=0:M/2-1;wk=(2*pi/M)*k;figure();plot(wk/pi,20*log10(abs(Hk(k+1))),'linewidth',2);Hk=fft(hn_hanning,M)holdonplot(wk/pi,20*log10(abs(Hk(k+1))),':','linewidth',3);Hk=fft(hn_hamming,M)plot(wk/pi,20*log10(abs(Hk(k+1))),'o');Hk=fft(hn_blackman,M)plot(wk/pi,20*log10(abs(Hk(k+1))),'*');holdofflegend('矩形窗','汉宁窗','哈明窗','布莱克曼窗');axis([0,1,-80,5]);xlabel('w/\pi');ylabel('幅度/dB');title('损耗函数');(2)四种窗函数设计的单位脉冲响应的比较如图3所示:图3单位脉冲响应比较图(3)四种窗函数设计的损耗函数的比较如图4所示:图4损耗函数比较图02468101214161820-0.1-0.0500.050.10.150.20.250.3nh(n)单位冲激响应矩形窗汉宁窗哈明窗布莱克曼窗00.10.20.30.40.50.60.70.80.91-80-70-60-50-40-30-20-100w/幅度/dB损耗函数矩形窗汉宁窗哈明窗布莱克曼窗(4)运行结果分析:由图4可见,当滤波器长度N不变时,矩形窗设计的滤波器的过渡带最窄,阻带最小衰减最小;布莱克曼窗设计的滤波器的过渡带最宽,同时阻带最小衰减最大。21.将要求改成设计线性相位高通FIR滤波器,重作题20。(1)matlab代码:wc=pi/4;N=21;hn_boxcar=fir1(N-1,wc/pi,'high',boxcar(N));hn_hanning=fir1(N-1,wc/pi,'high',hanning(N));hn_hamming=fir1(N-1,wc/pi,'high',hamming(N));hn_blackman=fir1(N-1,wc/pi,'high',blackman(N));n=0:N-1;plot(n,hn_boxcar);holdonplot(n,hn_hanning,':','linewidth',2);plot(n,hn_hamming,'+','linewidth',2);plot(n,hn_blackman,'o');holdoffxlabel('n');ylabel('h(n)');legend('矩形窗','汉宁窗','哈明窗','布莱克曼窗');title('单位冲激响应');M=1024;Hk=fft(hn_boxcar,M);k=0:M/2-1;wk=(2*pi/M)*k;figure();plot(wk/pi,20*log10(abs(Hk(k+1))),'linewidth',2);Hk=fft(hn_hanning,M)holdonplot(wk/pi,20*log10(abs(Hk(k+1))),':','linewidth',3);Hk=fft(hn_hamming,M)plot(wk/pi,20*log10(abs(Hk(k+1))),'o');Hk=fft(hn_blackman,M)plot(wk/pi,20*log10(abs(Hk(k+1))),'*');holdofflegend('矩形窗','汉宁窗','哈明窗','布莱克曼窗');axis([0,1,-80,5]);xlabel('w/\pi');ylabel('幅度/dB');title('损耗函数');(2)四种窗函数设计的单位脉冲响应的比较如图5所示:图5单位脉冲响应比较图(3)四种窗函数设计的损耗函数的比较如图6所示:图6损耗函数比较图(5)运行结果分析:由图6可见,当滤波器长度N不变时,矩形窗设计的滤波器的过渡带最窄,阻带最小衰减最小;布莱克曼窗设计的滤波器的过渡带最宽,同时阻带最小衰减最大。02468101214161820-0.4-0.200.20.40.60.81nh(n)单位冲激响应矩形窗汉宁窗哈明窗布莱克曼窗00.10.20.30.40.50.60.70.80.91-80-70-60-50-40-30-20-100w/幅度/dB损耗函数矩形窗汉宁窗哈明窗布莱克曼窗25.调用MATLAB工具箱函数fir1设计线性相位高通FIR滤波器。要求通带截止频率为0.6πrad,阻带截止频率为0.45π,通带最大衰减为0.2dB,阻带最小衰减为45dB。显示所设计的单位脉冲响应h(n)的数据,并画出损耗函数曲线。(1)matlab代码:wp=0.6*pi;ws=0.45*pi;Bt=wp-ws;N0=ceil(6.6*pi/Bt);N=N0+mod(N0+1,2);wc=(wp+ws)/2/pi;hn=fir1(N-1,wc,'high',hamming(N));M=1024;Hk=fft(hn,M);n=0:N-1;stem(n,hn);xlabel('n');ylabel('h(n)');title('单位冲激响应');k=0:M/2-1;wk=(2*pi/M)*k;figure(2);plot(wk/pi,20*log10(abs(Hk(k+1))));axis([0,1,-80,5]);xlabel('w/\pi');ylabel('幅度/dB');title('损耗函数');gridon(2)高通FIR滤波器的单位脉冲响应、损耗函数如图7、8所示:图7单位脉冲响应图8损耗函数051015202530354045-0.4-0.3-0.2-0.100.10.20.30.40.5nh(n)单位冲激响应00.10.20.30.40.50.60.70.80.91-80-70-60-50-40-30-20-100w/幅度/dB损耗函数26.调用MATLAB工具箱函数fir1设计线性相位带通FIR滤波器。要求通带截止频率为0.55πrad和0.7πrad,阻带截止频率为0.45πrad和0.8πrad,通带最大衰减为0.15dB,阻带最小衰减为40dB。显示所设计的单位脉冲响应h(n)的数据,并画出损耗函数曲线。(1)matlab代码:wp1=0.55*pi;wp2=0.7*pi;ws1=0.45*pi;ws2=0.8*pi;Bt=wp2-wp1;N=ceil(6.2*pi/Bt);wc=[(wp1+ws1)/2/pi,(ws2+wp2)/2/pi];hn=fir1(N-1,wc,hanning(N));M=1024;Hk=fft(hn,M);n=0:N-1;stem(n,hn);xlabel('n');ylabel('h(n)');title('单位冲激响应');k=0:M/2-1;wk=(2*pi/M)*k;figure(2);plot(wk/pi,20*log10(abs(Hk(k+1))));axis([0,1,-80,5]);xlabel('w/\pi');ylabel('幅度/dB');title('损耗函数')
本文标题:有限脉冲响应数字滤波器设计实验报告DOC
链接地址:https://www.777doc.com/doc-3382556 .html