实验四用窗函数法设计FIR滤波器实验报告643.pdf
.实验四 用窗函数法设计 FIR 滤波器(一)实验目的 1.掌握窗函数法设计 FIR 滤波器的原理和方法,观察用几种常用窗函数设计的FIR 数字滤波器技术指标;2.掌握 FIR 滤波器的线性相位特性;3.了解各种窗函数对滤波特性的影响。(二)实验原理 如果所希望的滤波器的理想频率响应函数为 Hd(ej),则其对应的单位脉冲响应为deeHnhnjjd)(21)(,用窗函数 wN(n)将 hd(n)截断,并进行加权处理,得到实际滤波器的单位脉冲响应 h(n)=hd(n)wN(n),其频率响应函数为njNnjenheH10)()(。如 果 要 求 线 性 相 位 特 性,则 h(n)还 必 须 满 足)1()(nNhnh。可根据具体情况选择 h(n)的长度及对称性。(三)实验内容 1、生成四种窗函数:矩形窗、三角窗、汉宁窗、海明窗,并观察其频率响应。实验代码以及运行结果%矩形窗及其频响 n=15;window1=rectwin(n);h1,w1=freqz(window1,1);subplot(2,1,1);stem(window1);title(矩形窗);subplot(2,1,2);plot(w1/pi,20*log(abs(h1)/abs(h1(1);title(矩形窗频响);%三角窗及其频响 n=15;window2=triang(n);h2,w2=freqz(window2,1);subplot(2,1,1);stem(window2);title(三角窗);subplot(2,1,2);plot(w2/pi,20*log(abs(h2)/abs(h2(1);title(三角窗频响);.%汉宁窗及其频响 n=15;window3=hann(n);window3=hann(n);h3,w3=freqz(window3,1);subplot(2,1,1);stem(window3);title(汉宁窗);subplot(2,1,2);plot(w3/pi,20*log(abs(h3)/abs(h3(1);title(汉宁窗频响);%海明窗频响 n=15;window4=hamming(n);h4,w4=freqz(window4,1);subplot(2,1,1);stem(window4);title(海明窗);subplot(2,1,2);plot(w4/pi,20*log(abs(h4)/abs(h4(1);title(海明窗频响);运行结果:.2、根据下列技术指标,设计一个 FIR 数字低通滤波器:wp=0.2,ws=0.4,ap=0.25dB,as=50dB,选择一个适当的窗函数,确定单位冲激响应,绘出所设计的滤波器的幅度响应。提示:根据窗函数最小阻带衰减的特性表,可采用海明窗可提供大于 50dB 的衰减,其过渡带为 6.6/N,因此具有较小的阶次。实验代码%用窗函数法设计FIR滤波器 clear all;N=33;Wc=0.3*pi;%理想低通滤波器设计(怎样设计理想高通、带通、带阻滤波器?)alpha=(N-1)/2;n=0:(N-1);m=n-alpha+eps;hd=sin(Wc*m)./(pi*m);B=hamming(N);%海明窗 string=Hamming,N=,num2str(N);h=hd.*(B);%加窗截取%以上过程可直接调用FIR1实现%wc=Wc/pi;%频率归一化%h=fir1(N-1,wc,hamming(N);H,m=freqz(h,1,1024,whole);%频率响应 mag=abs(H);db=20*log10(mag+eps)/max(mag);pha=angle(H);subplot(2,2,1).n=0:N-1;stem(n,h,.)axis(0 N-1-0.1 0.3)hold on n=0:N-1;x=zeros(N);plot(n,x,-)hold off xlabel(n)ylabel(h(n)title(实际低通滤波器的h(n)text(0.3*N,0.27,string)subplot(2,2,2)plot(m/pi,db)axis(0 1-100 0)xlabel(w/pi)ylabel(dB)title(副频衰减特性)grid on subplot(2,2,3)plot(m,pha)hold on n=0:7;x=zeros(8);plot(n,x,-)hold off axis(0 3.15-4 4)xlabel(频率(rad)ylabel(相位(rad)title(相频特性)subplot(2,2,4)plot(m,mag)axis(0 3.15 0 1.5)xlabel(频率W(rad)ylabel(幅值).title(幅频特性)text(0.9,1.2,string)运行结果 (四)实验心得 本次实验是使用窗函数来设计 FIR 滤波器,在 MATLAB 中只需要将给定的参数输入到函数中即可马上得到处结果。通过本次实验,我对使用 MATLAB 快速设计滤波器的流程更为熟练,同时,也由衷地感叹 MATLAB 的功能强大之处,它让我们在设计时能节约大量的时间,并且百分百正确地得出结果。根据输入的参数以及结果,使我对课本上的设计滤波器的知识更为了解。更加巩固了理论知识。虽然这是最后一次的实验课,还是非常感谢老师的教导,使我在利用MATLAB 处理信号这方面有了很大的了解,对自身的帮助非常大。