西南科技大学课程设计报告课程名称:数字信号处理与通信原理课程设计设计名称: FIR数字滤波器分析与应用姓名:学号:班级:指导教师:起止日期: 6.26 – 7.6课程设计任务书学生班级:通信学生姓名:学号:设计名称:窗函数设计FIR低通滤波器起止日期: 6.26~7.6 指导教师:课程设计学生日志课程设计考勤表课程设计评语表窗函数设计FIR 低通滤波器一、设计目的和意义:1、目的(1) 掌握用窗函数法设计FIR 数字滤波器的原理和方法。
(2) 熟悉线性相位FIR 数字滤波器特性。
(3) 了解各个窗函数对滤波器特性的影响。
2、意义:有限长单位冲激响应数字滤波器可以做成具有严格的线性相位,同时又可以具有任意的幅度特性。
滤波器的性能只由窗函数的形状决定。
二、设计原理:假如题目所要求设计的滤波器的频率响应为H d (e ωj ),则要设计一个FIR 滤波器频应为H(eωj )=∑=-1-N 0n j )(nen h ω()1来逼近。
但是设计却是在时域进行的,所以用傅氏反变换导出h d (n):h d (n) =ωπππωωd e e H nj j d ⎰-)(21()2但是要求设计的FIR 滤波器,它的h(n)是有限长的,但是h d (n)却是无限长的,所以要用一个有限长度的窗函数)(n ω来截取h d (n),即h(n)= )(n ωh d (n)()3h(n)就是实际设计的FIR 数字滤波器的单位脉冲响应序列,其频率响应函数即为()1式,其中N 就是所选择的窗函数)(n ω的长度。
本课程设计的要求是利用矩形窗,海宁窗,汉明窗各设计一个FIR 低通滤波器。
因此首先对这三个窗函数进行简要说明。
1.矩形窗:)(n ω=R N (n )()42.汉宁窗:ω(n)=[sin 2(1-N n π)]R N (n) ()5 3.海明窗:ω(n)=[0.54-(1-0.54)cos(12-N nπ)]R N (n) ()6 用窗函数设计的滤波器的性能由窗函数)(n ω的性能和窗口长度N 的取值决定。
设计的时候,窗函数类型和长度N ,应由对阻带最小衰减和过渡带宽度的要求而选择。
设计所要求的三种窗函数可达到的阻带最小衰减和过渡带宽度见表1。
如何根据滤波器长度N 的奇偶性,选择h(n)的奇偶对称性则是另外一个需要考虑的问题。
先行相位实系数FIR 滤波器按其N 值奇偶和h(n)的奇偶对称性,可以分位四种,它们具有不同的幅频和相位特性: 1.h(n)为偶对称,N 为奇数:H(eωj )=[h(21-N )+∑-=+-2/)1(1cos )21(2N n n n N h ω]e 21--N j ω ()7它的幅度是关于ω=0,π,2π点成偶对称。
2.h(n)为偶对称,N 为偶数:H(eωj )={∑-=-+-2/)1(1)]21(cos[)12(2n n n n N h ω} e21--N j ω ()8它的幅度是关于ω=π点成奇对称,ω=π处有零点,所以它不适合于做高通滤波器。
3.h(n)为奇对称,N 为奇数:H(eωj )=[∑-=+-2/)1(1sin )21(2N n n n n h ω]e]221[πω+--N j ()9它的幅度是关于ω=0,π,2π点成奇对称。
H(e ωj )在ω=0,π,2π处都有零点。
所以,它不适用于低通和高通。
4.h(n)为奇对称,N为偶数:H(eωj)=[∑-=-+-2/)1(1)21(sin)21(2Nnnnnhω]e]221[πω+--Nj()10它的幅度是关于ω=0,π,2π点成奇对称。
H(eωj)在ω=0,2π处都有零点。
因此,它不适合用于低通。
在滤波器设计过程中,只有根据上述四种线性相位滤波器传递函数的性质,合理地选择应采用的种类,构造出Hd(eωj)的幅频特性和相位特性,才能求得所需要的,具有单位脉冲响应的线性相位FIR滤波器传递函数。
三、详细设计步骤1、窗函数法设计线性相位FIR滤波器可以按如下步骤进行:(1)确定数字滤波器的性能要求。
确定各临界频率kω和滤波器单位脉冲响应长度N。
(2)根据性能要求和N值,合理的选择单位脉冲响应h(n)的奇偶对称性,从而确定理想频率响应Hd(eωj)的幅频特性和相位特性。
(3)利用()2式,求得理想脉冲响应h d(n)。
(4)选择适当的窗函数ω(n),根据()3式,求得所设计的FIR滤波器单位脉冲响应。
(5)用傅立叶变换公式求得其频率响应H(eωj),分析它的幅频特性,若不满足要求,可适当改变窗函数形式或者长度N,重复上述过程,直到得到满意的结果。
注意:在步骤(3)中,利用()2式求h d(n),这里的积分运算,在计算机中可以取其数值解:hd (n)≈M1∑-=1MkdH(e k M jπ2)e knMjπ2()11其中0≤n≤N-1,而M≥8N,这样,数值解才能较好地逼近解析解。
2、设Hd(eωj)为理想线性滤波器Hd (eωj)={,0,ωτje-其他cωω≤||()12★给定三组滤波器的性能指标,根据这些指标选择适宜的窗函数设计低通滤波器。
见表2。
◆ 分析设计如下:⑴ 分析第一组数据:① 由所给的指标,可以求得对应的数字频率:通带截止频率 p ω=sp f Ω=2πsp ΩΩ=0.4π阻带起始频率 st ω=s st f Ω=2πsst ΩΩ=0.6π 阻 带 衰 减 2δ=20dB② 因为H d (eωj )={,0,ωτj e - 其他cωω≤||首先由所需低通滤波器的过渡带求截止频率c Ωc Ω=21(ρΩ+st Ω)=2π⨯3.75⨯103(rad/sec ) 其对应的数字频率为c ω=sc f Ω=2s c ΩΩπ=0.5π因此,由()2式可得h d (n)=ωπππωωτd e e nj j ⎰--21= ωπωωπωd e cn j ⎰--)(21={,)],(sin[)(1πωτωτπc c n n --ττ=≠n n()13其中τ=21-N ③ 由阻带衰减2δ来确定窗函数,由过渡带宽确定N :因为2δ=20dB,由表1知道,可选用矩形窗,因为它的最小衰减-21dB 符合题目设计要求。
要求的过渡带宽 spst ΩΩ-Ω=∆πω2=43105.12105.122⨯⨯⨯⨯⨯πππ=0.2πN=21,τ=10。
④ 由矩形窗表达式)(n ω=R N (n )()4以及()13式来确定FIR 滤波器的h(n)⑤ 由()1式H(eωj )=∑=-1-N 0n j )(nen h ω得出频率范围图象。
⑵ 分析第二组数据:按照分析第一组数据的方法,可得出:① 通带截止频率 p ω=sp f Ω=2πsp ΩΩ=0.2π阻带起始频率 st ω=s st f Ω=2πsst ΩΩ=0.4π 阻 带 衰 减 2δ=50dB② 通带截止频率 c ω=sc f Ω=2s c ΩΩπ=0.3πh d (n)和()13式一样。
⑤ 因为2δ=50dB ,所以由表1可知,选用海明窗。
过渡带宽 πω2.0=∆,又因为N πω6.6=∆,所以N=33,1621=-=N τ ⑥ 由海明窗表达式ω(n)=[0.54-(1-0.54)cos(12-N nπ)]R N (n) ()6 以及()13式来确定FIR 滤波器的h(n)h(n)= h d (n)• ω(n)=)]16(46.054.0[)16()]16(3.0sin[nn n πππ-•-- R N (n)⑤ 由()1式H(e ωj )=∑=-1-N 0n j )(nen h ω得出频率范围图象。
★ 验证型:设c ω=0.5π,N=51。
选用汉宁窗进行验证。
3、编制窗函数设计FIR 滤波器的主程序及相应的子程序。
(1) 傅立叶反变换数值计算子程序,用于计算设计步骤(3)中的傅立叶反变换,给定H d (ek Mj π2),k=0,1,…,M-1,按照公式()11求得理想单位脉冲响应h d (n),n=0,…,N-1。
(2) 窗函数产生子程序,用于产生几种常见的窗函数序列。
本课程设计要求产生的窗函数序列有:矩形窗,升余玄窗,改进的升余玄窗。
根据给定的长度,按照()4到()6式生成响应的窗函数序列。
(3) 主程序,在上述子程序的基础上,设计主程序完成FIR 滤波器的窗函数法设计。
程序如下:N=input('Input the length of the windows N=:\n'); w=input('Input the Wc:\n'); b=1; close all; i=0;while(b);n=[0:(N-1)];hd=ideal(w,N);k=input('请选择窗口类型:1(boxcar);2(hamming);3(hanning):\n'); if k==1B=boxcar(N);string=['Boxcar','N=',num2str(N)];else if k==2B=hamming(N);string=['Hamming','N=',num2str(N)];else if k==3B=hanning(N);string=['Hanning','N=',num2str(N)];endendendh=hd.*(B)';[H,m]=freqz(h,[1],1024,'whole');mag=abs(H);db=20*log10((mag+eps)/max(mag));pha=angle(H);i=i+1;figure(i);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,'-');xlabel('n');ylabel('h(n)');title('实际低通滤波器的h(n)');text(1,1,string);text((0.3*N),0.27,string);hold onsubplot(2,2,2);plot(m/pi,db);axis([0 1 -100 0]);xlabel('w/pi');ylabel('衰减特性dB');grid onsubplot(2,2,3);plot(m,pha);hold onn=0:7x=zeros(8);plot(n,x,'-');title('相频特性');xlabel('频率(rad)');ylabel('相位(rad)');axis([0 3.15 -4 4])subplot(2,2,4);plot(m,mag);title('幅频特性');xlabel('频率W(rad)');ylabel('幅值');axis([0 3.15 0 1.5]);text(0.9,1.2,string);b=input('Do you want to continue? 1(Continue),0(exit):\n');if b==1N=input('Input the length of the windows:\n');w=input('Input the Wc:\n');endend子程序:产生理想低通滤波器单位脉冲响应hd(n)function hd=ideal(w,N);alpha=(N-1)/2;n=[0:(N-1)];m=n-alpha+eps;hd=sin(w*m)./(pi*m);对上面设计的计算结果用本程序进行验证,比较,看结果是否符合要求。