实验四-用窗函数法设计FIR滤波器-实验报告(共5页).docx
精选优质文档-倾情为你奉上实验四 用窗函数法设计FIR滤波器(一)实验目的1. 掌握窗函数法设计FIR滤波器的原理和方法,观察用几种常用窗函数设计的FIR数字滤波器技术指标;2. 掌握FIR滤波器的线性相位特性;3. 了解各种窗函数对滤波特性的影响。(二)实验原理如果所希望的滤波器的理想频率响应函数为Hd(ej),则其对应的单位脉冲响应为,用窗函数wN(n)将hd(n)截断,并进行加权处理,得到实际滤波器的单位脉冲响应h(n)=hd(n)wN(n),其频率响应函数为。如果要求线性相位特性,则h(n)还必须满足。可根据具体情况选择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 onn=0:N-1;x=zeros(N);plot(n,x,'-')hold offxlabel('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 onsubplot(2,2,3)plot(m,pha)hold onn=0:7; x=zeros(8);plot(n,x,'-')hold offaxis(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处理信号这方面有了很大的了解,对自身的帮助非常大。专心-专注-专业