郑州航空工业管理学院《电子信息系统仿真》课程设计14级专业班级题目基于矩形窗设计FIR数字滤波器姓名学号二О一六年十一月二十五日第一章 FIR 滤波器的设计原理及方法FIR 滤波器通常采用窗函数方法来设计。
窗设计的基本思想是,首先选择一个适当的理想选频滤波器(它总是具有一个非因果,无限持续时间脉冲响应),然后街区(加窗)它的脉冲响应得到线性相位和因果FIR 滤波器。
我们用Hd (e^jw )表示理想的选频滤波器,它在通带上具有单位增益和线性相位,在阻带上具有零响应。
一个带宽wc<pi 的低通滤波器由下式给定:⎩⎨⎧=<-⋅<==<=wc w jaw e w wc jw e Hd ||),(^1||,0)^(π为了从hd(n)得到一个FIR 滤波器,必须同时在两边截取hd (n )。
而要得到一个因果的线性相位滤波器,它的h(n)长度为N ,必须有:⎩⎨⎧-<=<==其他,010),()(N n n hd n h 2/)1(-=N α这种操作叫做加窗,h(n)可以看做是hd(n)与窗函数w (n )的乘积:h(n)=hd(n)w(n) 其中⎩⎨⎧-≤≤=,其他对称,关于01n 0)(N n w α根据w (n )的不同定义,可以得到不同的窗结构。
在频域中,因果FIR 滤波器响应H(e^jw)由Hd(e^jw)和窗响应W(e^jw)的周期卷积得到,即⎰--=⊗=ππλλωπd j e W jw e W jw e Hd jw e H )(^(2/1)^()^()^(常用的窗函数有矩形窗、巴特利特(BARTLETT )窗、汉宁(HANNING )窗、海明(HAMMING )窗、布莱克曼(BLACKMAN )窗、凯泽(KAISER )窗等。
FIR 滤波器的设计方法有许多种,如窗函数设计法、频率采样设计法和最优化设计法等。
窗函数设计法的基本原理是用一定宽度窗函数截取无限脉冲响应序列获得有限长的脉冲响应序列,主要设计步骤为:(1) 通过傅里叶逆变换获得理想滤波器的单位脉冲响应hd(n)。
(2) 由性能指标确定窗函数W(n)和窗口长度N 。
(3) 求得实际滤波器的单位脉冲响应h(n), h(n)即为所设计FIR 滤波器系数向量b(n)。
第二章窗函数:。
1矩形窗矩形窗属于时间变量的零次幂窗。
矩形窗使用最多,习惯上不加窗就是使信号通过了矩形窗。
这种窗的优点是主瓣比较集中,缺点是旁瓣较高,并有负旁瓣,导致变换中带进了高频干扰和泄漏,甚至出现负谱现象。
2 三角窗三角窗亦称费杰(Fejer)窗,是幂窗的一次方形式。
与矩形窗比较,主瓣宽约等于矩形窗的两倍,但旁瓣小,而且无负旁瓣。
3 汉宁(Hanning)窗汉宁窗又称升余弦窗,汉宁窗可以看作是3个矩形时间窗的频谱之和,或者说是 3个 sine(t)型函数之和,而括号中的两项相对于第一个谱窗向左、右各移动了π/T,从而使旁瓣互相抵消,消去高频干扰和漏能。
可以看出,汉宁窗主瓣加宽并降低,旁瓣则显著减小,从减小泄漏观点出发,汉宁窗优于矩形窗.但汉宁窗主瓣加宽,相当于分析带宽加宽,频率分辨力下降。
4 海明(Hamming)窗海明窗也是余弦窗的一种,又称改进的升余弦窗。
海明窗与汉宁窗都是余弦窗,只是加权系数不同。
海明窗加权的系数能使旁瓣达到更小。
分析表明,海明窗的第一旁瓣衰减为一42dB.海明窗的频谱也是由3个矩形时窗的频谱合成,但其旁瓣衰减速度为20dB/(10oct),这比汉宁窗衰减速度慢。
海明窗与汉宁窗都是很有用的窗函数。
5 高斯窗高斯窗是一种指数窗。
高斯窗谱无负的旁瓣,第一旁瓣衰减达一55dB。
高斯富谱的主瓣较宽,故而频率分辨力低.高斯窗函数常被用来截断一些非周期信号,如指数衰减信号等。
对于窗函数的选择,应考虑被分析信号的性质与处理要求。
如果仅要求精确读出主瓣频率,而不考虑幅值精度,则可选用主瓣宽度比较窄而便于分辨的矩形窗,例如测量物体的自振频率等;如果分析窄带信号,且有较强的干扰噪声,则应选用旁瓣幅度小的窗函数,如汉宁窗、三角窗等;对于随时间按指数衰减的函数,可采用指数窗来提高信噪比。
不同的窗函数对信号频谱的影响是不一样的,这主要是因为不同的窗函数,产生泄漏的大小不一样,频率分辨能力也不一样。
信号的截断产生了能量泄漏,而用FFT算法计算频谱又产生了栅栏效应,从原理上讲这两种误差都是不能消除的,但是我们可以通过选择不同的窗函数对它们的影响进行抑制。
(矩形窗主瓣窄,旁瓣大,频率识别精度最高,幅值识别精度最低;布莱克曼窗主瓣宽,旁瓣小,频率识别精度最低,但幅值识别精度最高)第三章课程程序1. %程序功能:产生一个包含低频、中频、高频的连续信号进行取样并画出其时域图。
Fs=200;t=(1:100)/Fss1=sin(2*pi*t*5)s2=sin(2*pi*t*15)s3=sin(2*pi*t*30);s=s1+s2+s3;plot(t,s); % 画出信号的时域波形xlabel('Time(seconds)')ylabel('Time waveform')title('原始信号的时域波形')2. %程序功能:画出信号的频谱图。
S=fft(s,1024) % 对s进行快速傅立叶变换w=(0:255)/256*(Fs/2)plot(w,abs(S(1:256))) % 画出信号的幅度图xlabel('Frequency (Hz)')ylabel('幅度')title('幅度谱')axis([0 35 0 60]);gridplot(w,angle(S(1:256))) % 画出信号的相位图xlabel('Frequency (Hz)')ylabel('相位')title('相位谱')3.% 程序功能:设计低通滤波器并画出其频谱图:fb=10; fc=13 % 设置滤波器截止频率fs=100; wb=2*pi*fb/fsws=2*pi*fc/fs; wc=0.5*(wb+ws)tr_width=ws-wb % 过渡带宽M=ceil(1.8*pi/tr_width)n=0:M;r=M/2;hn=fir1(M,wc/pi,boxcar(M+1)); % 矩形窗加窗法figure(1);freqz(hn,1,100) %矩形窗FIR的频响曲线figure(2);subplot(1,2,1);stem(n,hn,'k.') %显示矩形窗FIR的系数title('矩形窗FIR')4.% 程序功能:画出滤波后信号的时域波形和频谱sf=filter(hn,[1],s) % sf为滤滤波后的信号plot(t,sf) % 画出滤波后信号的时域波形xlabel('Time(seconds)')ylabel('Time waveform')axis([0 1 -1 1])title('滤波后信号的时域波形')SF=fft(sf,512) % 对sf进行快速傅里叶变换w=(0:255)/256*(Fs/2);plot(w,abs(SF(1:256))) % 画出滤波后信号的幅度图xlabel('Frequency (Hz)')ylabel('幅度谱')title('滤波后信号的幅度谱'); gridplot(w,angle(SF(1:256))) % 画出滤波后信号的相位图xlabel('Frequency (Hz)')ylabel('相位谱')title('滤波后信号的相位谱')4.% 程序功能:对滤波前后信号进行比较plot(w,abs([S(1:256)' SF(1:256)'])) % 将滤波前后信号的幅度谱画在一起xlabel('Frequency (Hz)')ylabel('Mag.of Fourier transform')grid;legend({'before','after'}) %对两个曲线进行区分命名title('滤波前后信号对比')第四章仿真结果分析4.1产生原始信号并分析频谱产生原始信号,用plot函数画出其时域波形如图4.1所示:图4.1原始信号时域波形图用fft函数进行傅里叶变换后,如图4.2所示:图4.24.2将不同特性的数字滤波器用矩形窗表现出来在低通滤波器中,低频,中频,高频是信号含有的三个频率分量。
步骤如下: (1)取通带截止频率为fb=40Hz ,阻带截止频率为fs=46Hz ; (2)取样频率为fs=200Hz ,由wb=2*pi*fb/fs 、ws=2*pi*fc/fs ; (3)过渡带宽:s w —p w =1.8M,得出M ; (4)取一理想低通脉冲响应hd=ideal_lp(wc,M),其中wc=0.5*(wb+ws);(5)由于矩形窗用函数w_box=(boxcar(M))',于是对hd 加矩形窗w_box ,得到一长度为M 的因果且线性相位FIR 滤波器h=hd.*w_box ;(6)用函数[db,mag,pha,grd,w]=freqz_m(h,[1])得出其频谱特性。
(7)画出理想脉冲响应hd 、矩形窗w_boxcar 、实际脉冲响应h 和滤波器的幅度响应(dB),如图4.3所示。
图4.3滤波器的相关图4.3滤波后的信号处理用函数sf=filter(h,[1],s)分别得出滤波后的信号,其中h对应不同滤波器而不同,通过带通滤波器后的的信号时域波形和频谱图如图4.4(a)、4.4(b)、4.4(c)所示。
图4.4(a)滤波后信号的时域波形图图4.4(b)滤波后信号的幅度谱共享知识分享快乐卑微如蝼蚁、坚强似大象图4.4(c)滤波后信号的相位谱4.4 结果分析函数plot(w,abs([S(1:256)' SF(1:256)']))和legend({'before','after'})后,可在一张图中清晰的看出滤波前后的不同:第5章课程总结通过本次实验我掌握了MATLAB工具软件在工程设计中的使用并掌握窗函数法设计线性相位型FIR滤波器的方法。
同时也知道了不同窗函数对所设计数字滤波器性能的影响,可以清楚的对滤波输出结果作出分析,此次试验也让我认识到了我自己在设计滤波器这方面存在的不足,我会努力学习,在设计实验这方面多努力,这次实验对我今后的学习有很大帮助,也让我找到了今后学习的方向及目标。