资源描述:
《实验四用窗函数设计fir滤波器》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、实验四用窗函数设计FIR滤波器一、实验目的1、熟悉FIR滤波器设计的基本方法。2、掌握用窗函数设计FIR数字滤波器的原理及方法,熟悉相应的计算机高级语言编程。3、熟悉线性FIR滤波器的幅频特性和相位特性。4、了解各种不同函数对滤波器性能的适应。二、实验原理及方法(一)FIR滤波器的设计在前面的实验中,我们介绍了IIR滤波器的设计方法并实践了其中的双线性变换法。IIR具有许多诱人的特性:但与此同时,也具有一些特点。例如:若想用快速傅立叶变拘技术进行快速卷积实现滤波器,则要求单位脉冲响应是有限列长的。此外,IIR滤波器的优异幅度响应,一般是以相位的非线性为代价的,非线
2、性相位会引起频率色散。FIR滤波器具有严格的相位特性,这对于语音信号处理和数据传输是很重要的。目前FIR滤波器的设计方法主要有三种:窗函数法、频率取样法和切比雪夫等波纹逼近的最优化设计方法。常用的窗函数法和切比雪夫等波纹逼近的最优化设计方法。本实验中的窗函数法比较简单,可应用现成的窗函数公式,在技术要求不高的时候是比较灵活方便的。它是从时域出发,用一个窗函数截取理想的得到h(n),以有限长序列h(n)近似理想的:如果从频域出发,用理想的在单位圆上等角度取样得到H(k),根据h(k)得到H(z)将逼近理想的H(z),这就是频率取样法。(二)窗函数设计法同其他的数字滤
3、波器的设计方法一样,用窗函数设计滤波器也是首先要对滤波器提出性能指标。一般是给定一个理想的频率响应,使所设计的FIR滤波器的频率响应h去逼近所要求的理想滤波器的响应。窗函数的设计的任务在于寻找一个可实现(有限长单位脉冲响应)的传递函数。=(4—1)去逼近。我们知道,一个理想的频率响应的傅立叶变换=(4—2)所得到的理想单位脉冲响应往往是一个无限长序列。对经过适当的加权、截断处理才得到一个需要的有限长脉冲响应序列。对应不同的加权、截断,就有不同的13窗函数。所要寻找的滤波器脉冲响应就等理想脉冲响应窗函数的乘积。即h=w(4—3)由此可见,窗函数的性质就决定了滤波器的
4、品质。例如:窗函数的主瓣宽度决定了滤波器的过渡带宽:窗函数的旁瓣代销决定了滤波器的阻带衰减。1、矩形窗w=(4—4)2、Hamming窗w=[0.54-0.46cos()](4—5)3、Blackman窗w=[0.42-0.5cos()+cos()](4—6)4、Kaiser窗w=(4—7)窗函数法设计线性相位FIR滤波器可以按如下步骤进行:1、确定数字滤波器的性能要求。确定各临界频率{}和滤波器单位脉冲响应长度N。2、根据性能要求和N值,合理的选择单位脉冲响应h(n)有奇偶对称性,从而确定理想频率响应的幅频特性和相位特性。3、用傅立叶反变换公式求得理想单位脉冲响
5、应。4、选择适当的窗函数W(n),根据式h=w,求得所设计的FIR滤波器单位脉冲响应。5、用傅立叶变换求得其频率响应H,分析它的幅频特性,若不满足要求,可适当改变窗函数形式或长度N,重复上述过程,直至得到满意的结果。三实验内容及步骤(一)编制实验用主程序及相应子程序1、在实验编程之前,认真复习有关FIR滤波器设计的有关知识,尤其是窗函数的有关部分,阅读本实验原理及方法,熟悉窗函数及四种线性相位FIR滤波器的特性,掌握窗函数设计滤波器的具体步骤。2、编制窗函数设计FIR滤波器的主程序及相应子程序131、汉宁窗W=hanning(N);b=fir1(N-1,[w1w2
6、],W);freqz(b,1);title('hanning窗带通滤波器');2、矩形窗W=boxcar(N);b=fir1(N-1,[w1w2],W);freqz(b,1);title('boxcar窗带通滤波器');3、布拉克曼窗W=blackman(N);b=fir1(N-1,[w1w2],W);freqz(b,1);title('blackman窗带通滤波器');4、恺撒窗W=kaiser(N,B);b=fir1(N-1,[w1w2],W);freqz(b,1);title('kaiser窗专用滤波器');13(二)上机实验内容1、用hanning窗设计一
7、个线性相位带通滤波器。(1)其长度N=15,上下边带宽截止频率分别为w1=0.3pi,w2=0.5pi,求h(n),绘制绘制它的幅频及相位特性曲线,观察它的实际3dB和5dB带宽。Window=hanning(15);b=fir1(14,[0.30.5],Window);freqz(b,1);title('hanning窗带通滤波器,N=15');13(1)如果N=45,重复这一设计,观察幅频和相位特性变化,注意长度N变化对结果的影响。Window=hanning(45);b=fir1(44,[0.30.5],Window);freqz(b,1);title('h
8、annin