本文阐述了FIR、IIR数字滤波器的设计思路并设计了不同类型的FIR和IIR滤波器。随后通过对音乐信号进行滤波处理,观察滤波的效果,进行了各自特点以及滤波效果的比较。
一、研究背景
二、设计IIR数字滤波器
1.确定IIR数字滤波器的设计指标
2.CBI型IIR数字滤波器的设计
(1)问题分析
(2)MATLAB实现以及结果
(3)结果分析
3.其它类型IIR数字滤波器的设计
(1)BW型
(2)CBII型
(3)椭圆型
(4)结果分析
三、设计FIR数字滤波器
1.设计FIR数字滤波器
2.凯泽窗和Parks-McClellan算法设计FIR数字滤波器
(1)凯泽窗设计FIR数字滤波器
(2)Parks-McClellan算法设计FIR数字滤波器
四、比较IIR和FIR数字滤波器
1.比较相同指标IIR和FIR数字滤波器的阶数
2.比较相同指标IIR和FIR数字滤波器的滤波效果
Dhexian.wav是将D大调和弦以8000Hz抽样所得的数字音乐信号,下面设计数字滤波器从和弦中分离出乐音A,即440Hz的频率分量。
现列出分离乐音A的模拟滤波器的设计指标如下:
由DbGA的频率关系我们可以看出,要从和弦中分离A,我们需要设计一个高通滤波器。由于脉冲响应不变法会导致严重的频域混叠现象,因此我们采用双线性变换法。
在双线性变换法中
由此我们可以分别计算出题目中5个IIR滤波器的数字指标:
下面仅列出指标1的详细计算过程:已知数字音频信号抽取频率为8000HZ,则T=1/8000。模拟高通滤波器指标为ωp=2πfp=2701.76968,ωs=2πfs=2324.77856 进而得到ωp、ωs。最后根据公式Ω=2arctan(Tω/2)计算出相关数字滤波器的指标。
指标1:Ωp=0.33456,Ap=1dB,Ωs=0.28857,As=20dB;
指标2:Ωp=0.33456,Ap=1dB,Ωs=0.28857,As=50dB;
指标3:Ωp=0.34219,Ap=1dB,Ωs=0.28857,As=50dB;
指标4:Ωp=0.34219,Ap=1dB,Ωs=0.29626,As=50dB;
指标5:Ωp=0.34219,Ap=1dB,Ωs=0.28088,As=50dB;
由1.计算出了五个数字滤波器的设计指标(通带截频Ωp、通带最大衰减Ap、阻带截频Ωs、阻带最小衰减As)对于比较这几个数字滤波器,我们可以将给定音频分别通过这五个滤器,通过观察频谱情况,来分析滤波器效果。
1)给定和弦频谱
首先给出给定和弦未经滤波的频谱图可以观察到
2)滤波器的设计
由于用到的均为CBI型滤波器,所以在设计这五个滤波器时,只需要在开头更改相关设计指标即可。滤波器设计代码如下:
指标1滤波器
fp=430Hz,Ap≤1dB,fs=370Hz,As≥20dB
得到的滤波器Ap=1.0000、As= 22.3144、N=7。通过滤波后的频谱我们可以看出440Hz的乐音A可以通过,且乐音G的衰减超过20dB,符合要求。
指标2滤波器
fp=430Hz,Ap≤1dB,fs=370Hz,As≥50dB
得到的滤波器Ap=1.0000、As= 51.5778、N=13。通过滤波后的频谱我们可以看出440Hz的乐音A可以通过,且乐音G的衰减超过50dB,符合要求。
指标3滤波器
fp=440Hz,Ap≤1dB,fs=370Hz,As≥50dB
得到的滤波器Ap=1.0000、As= 51.2560、N=12。通过滤波后的频谱我们可以看出440Hz的乐音A可以通过,且乐音G的衰减超过50dB,符合要求。
指标4滤波器
fp=440Hz,Ap≤1dB,fs=380Hz,As≥50dB
得到的滤波器Ap=1.0000、As= 50.7582、N=13。通过滤波后的频谱我们可以看出440Hz的乐音A可以通过,且乐音G的衰减超过50dB,符合要求。
指标5滤波器
fp=440Hz,Ap≤1dB,fs=360Hz,As≥50dB
得到的滤波器Ap=1.0000、As= 50.6835、N=11。通过滤波后的频谱我们可以看出440Hz的乐音A可以通过,且乐音G的衰减超过50dB,符合要求。
对着五个滤波器进行比较可以发现:
指标1与指标2滤波器截频相同,相邻乐音G的衰减程度随阻带最小衰减的增大而增大,证明滤波效果更好。但对应的阶数N将增大,实现难度将提高。
指标3、指标4、指标5滤波器的衰减条件相同,相邻乐音G的衰减程度随阻带截频的提高而增大,证明滤波效果更好,但对应的阶数N将增大,实现难度将提高。
这五个滤波器都可以满足滤波设计指标,但指标一的效果明显差于其它指标的滤波器。由于考虑硬件设计的复杂程度,我们在滤波效果好的情况下选取阶数N较低的滤波器,因此选取指标5设计的滤波器,既可以很好的实现滤波效果,又能在一定程度上降低阶数,降低成本。
经过CBI型滤波器的比较,我们最终选用指标5来进行其它滤波器的设计,具体指标为:
fp=440Hz,Ap≤1dB,fs=360Hz,As≥50dB
得到的滤波器Ap=0.7079、As= 50.0000、N=33。通过滤波后的频谱我们可以看出440Hz的乐音A可以通过,符合要求。
得到的滤波器Ap=1.0000、As= 55.2789、N=11。通过滤波后的频谱我们可以看出440Hz的乐音A可以通过,符合要求。
得到的滤波器Ap=1.0000、As= 83.1831、N=6。通过滤波后的频谱我们可以看出440Hz的乐音A可以通过,符合要求。
下面列出各类型滤波器的阶数要求
滤波器类型 |
BW型 |
CBI型 |
CBII型 |
椭圆型 |
阶数N |
33 |
11 |
11 |
6 |
可以看到,BW型对阶数的要求最高,椭圆型对阶数要求最低,CBI与CBII型阶数要求相同。上述四种滤波器都很好的完成了滤波设计指标。但从实际角度来讲,椭圆型的滤波器较难实现。因此,综合考虑CBI、II型为最优方案。
由于需要逼近理想滤波器的特性,则中心截频可由下公式得出
根据常用窗函数性质表选择窗函数。
窗函数类型 |
主瓣宽度 |
近似过渡带宽度 |
|||
矩形 |
|||||
Hann |
|||||
Hamming |
|||||
Blackman |
下面列出几个指标的截频:
首先,给出五个指标的幅度响应总览图:
下面是五种滤波器各自的幅度响应以及和弦通过滤波器的幅度响应:
根据幅频响应的比较,可以得出,除了指标一的衰减明显差于其它四种指标滤波器外,其它指标设计的FIR滤波器均可满足要求指标。考虑到硬件设计的复杂度,我们选择阶数最低的指标五来设计滤波器。阶数M=349。此外,若对于衰减要求不高,指标一为最优选择。
下面给出MATLAB的实现代码:
首先给出凯泽窗设计结果:
MATLAB代码如下:
首先给出Parks-McClellan算法设计FIR数字滤波器结果
MATLAB代码如下:
数字滤波器类型 |
指标5 |
阶数 |
IIR |
BW型 |
33 |
CBI型 |
11 |
|
CBII型 |
11 |
|
椭圆型 |
6 |
|
FIR |
Hamming窗 |
349 |
可以发现,相同指标下,FIR的设计阶数远远大于IIR。
从幅度响应看,FIR滤波器的阻带是等波纹振荡,而IIR滤波器阻带和通带都较平整,这是因为阶数不同导致的。
从相位响应看,FIR滤波器是线性相位,而IIR滤波器相位响应非线性。因此在对相位要求较高的情况下适宜FIR滤波器,而对相位要求不高推荐IIR滤波器,因为阶数低,易于物理实现。