内容发布更新时间 : 2024/11/17 6:36:45星期一 下面是文章的全部内容请认真阅读。
实验四 用窗函数法设计FIR滤波器
一、实验目的
1、熟悉FIR滤波器设计的基本方法。
2、掌握用户窗函数设计FIR数字滤波器的原理及方法,熟悉相应的计算机高级语言编程。 3、熟悉线性相位FIR滤波器的幅频特性和相位特性。 4、了解各种不同窗函数对滤波器性能的响应。
二、实验原理和方法
(一)FIR滤波器的设计
FIR滤波器具有严格的相位特性,这对于语音信号处理和数据传输是很重要的。目前FIR滤波器的设计方法主要有三种:窗函数法、频率取样法和切比雪夫等波纹逼近的最优化设计方法。本实验中的窗函数法比较简单,可应用现成的窗函数公式,在技术指标要求不高的时候是比较灵活方便的。它是从时域出发,用一个窗函数截取一个理想的hd(n)得到h(n),以有限长序列h(n)近似理想的hd(n):如果从频域出发,用理想的hd(ejw)在单位圆上等角度取样得到H(k),根据h(k)得到H(z)将逼近理想的Hd(z)这就是频率取样法。
(二)窗函数设计法
同其它的的数字滤波器设计的方法一样,用窗函数设计滤波器也是首先要对滤波器提出性能指标。一般是给定一个理想的频率响应hd(ejw),使所设计的FIR滤波器的频率响应h(ejw)去逼近所要求的理想的滤波器的响应hd(ejw)窗函数设计的任务在于寻找一个可实现(有限长单位脉冲响应)的传递函数。
H(e)??h(n)e?jwn
jwn?0N?1去逼近hd(ejw)。我们知道,一个理想的频率响应hd(ejw)的傅里叶变换
1hd(n)?2?2?jwjwnH(e)edw ?d0所得到的理想的单位脉冲响应hd(n)往往是一个无限长序列,对hd(n)经过适当的加权、截取处理才得到一个所需要的有限长脉冲响应序列。对应不同的加权、截断,就有不同的窗函数。
所要寻找的滤波器脉冲响应就等于理想脉冲响应和窗函数的乘积。即h(n)?hd(n)w(n)由此可见,窗函数的性质就决定了滤波器的品质。例如:窗函数的主瓣宽度决定了滤波器的过渡带宽;窗函数的旁瓣代销决定了滤波器的阻带衰减。以下是几种常见的窗函数: 1、矩形窗 w(n)?RN(n)
2?n)]RN(n) N?12?n)]RN(n) 3、Hamming窗 w(n)?[0.54?0.46cos(N?12?n4?n)?0.08cos()]RN(n) 4、Blackman窗 w(n)?[0.42?0.5cos(N?1N?1I0(?1?[(2n)?1]2(N?1)w(n)?5、Kaiser窗
I0(?)2、Hanning窗 w(n)?0.5[1?cos(其中I0(?)是零阶贝塞尔函数。Kaiser窗可以通过改变?参数,改变其主瓣宽度和旁瓣大小。在
1
实际设计过程中,上述几种窗函数可以根据对滤波器的过渡带宽度和阻带衰减的要求i,适当选取窗函数的类型和长度N,以得到比较满意的设计效果。如何根据滤波器长度N的奇偶性,选择h(n)的奇偶对称性则是另外一个需要考虑的问题。线性相位实系数FIR滤波器按其N值奇偶和h(n)的奇偶对称性,可以分为四种,它们具有不同的幅频和相位特性: 1. h(n)为偶对称,N为奇数:
?j?N?1(N?1)/2N?1H(e)=[h()+?2h(?n)cos?n]e22n?1它的幅度是关于??0,?,2?点成偶对称。
j?N?12
2. h(n)偶对称,N为偶数:
H(e
j??j?N?1(N?1)/2N?1)=[h()+?2h(?n)cos?n]e22n?1N?12
它的幅度是关于???成奇对称,???处有零点,所以它不适合于作高通滤波器。 3. h(n)为奇对称,N为奇数
?j?Nj?2H(e)={ ?2h(?1?n)cos[?(n?1/2)]} e2n?1j?它的幅度是关于??0,?,2?点成奇对称, H(e)在??0,?,2?处都有零点。因此它不适合于
(N?1)/2N?1低通和高通。
4. h(n)为奇对称,N为偶对称
?j??N2H(e)={ ?2h(?1?n)cos[?(n?1/2)]}+ e22n?1j?它的幅度是关于??0,?,2?点成奇对称。h(e)在??0,?,2?处有零点。因此它不适于低通。
j?(N?1)/2N?1在滤波器设计过程中,只有根据上述四种线性相位滤波器传递函数的性质,合理地选择应采用的种类,构造出hd(e
j?)的幅频特性和相位特性,才能求得所需要的,具有单位脉冲响应
的线性相位FIR滤波器传递函数。
窗函数法设计线性相位FIR滤波器可以按如下步骤:
1. 确定数字滤波器的性质要求,确定各临界频率{?K}和滤波器单位脉冲响应长度N。 2. 根据性能要求和N值,合理地选择单位脉冲响应h(n)有奇偶对称性,从而确定理想频
率响应hd(e
j?)的幅频特性和相位特性。
3. 用傅里叶反变换公式,求得理想单位脉冲响应Hd(n)。
4. 选择适当的窗函数W(n)根据式(4—3),求得所设计的FIR滤波器单位脉冲响应。 5. 用傅里叶变换求得其频率响应H(e),分析他的频率特性,若不满足要求,可适当改
变窗函数形式或长度N,重复上述过程,直至得到满意的结果。 注意:上述步骤(3)中,从Hd(e算在计算机上可取数值解:
j?j?)到hd(n)的反变换要用的式(4--2)。这里积分运
1hd(n)?M?Hk?0M-1d(ej2?kM)ej2?knM
其中0?n?N?1,而M?8N,这样,数值解才能较好地逼近解析解。
三、实验内容及步骤
上机实验内容
在计算机上调试自己设计好的窗函数设计FIR线性相伴滤波器设计程序
2
1. 用Hanning窗设计线性带通滤波器(N=15,N=45)
>> Window=Hanning(16);
>> h=fir1(15,[0.3,0.5],Window) h =
Columns 1 through 11
-0.0028 -0.0048 0.0350 0.0701 -0.0436 -0.1972 -0.0753 0.2184 0.2184 -0.0753 -0.1972 Columns 12 through 16
-0.0436 0.0701 0.0350 -0.0048 -0.0028 >> freqz(h,1)
>> Window=Hanning(46);
>> h=fir1(45,[0.3,0.5],Window) h =
Columns 1 through 11
-0.0001 -0.0001 0.0002 -0.0003 0.0005 0.0039 0.0021 -0.0085 -0.0112 0.0050 0.0161 Columns 12 through 22
0.0040 -0.0044 0.0055 -0.0074 -0.0459 -0.0220 0.0800 0.1025 -0.0471 -0.1740 -0.0586 Columns 23 through 33
0.1599 0.1599 -0.0586 -0.1740 -0.0471 0.1025 0.0800 -0.0220 -0.0459 -0.0074 0.0055 Columns 34 through 44
-0.0044 0.0040 0.0161 0.0050 -0.0112 -0.0085 0.0021 0.0039 0.0005 -0.0003 0.0002 Columns 45 through 46 -0.0001 -0.0001 >> freqz(h,1)
3