首页 理论教育传统方法FIR数字滤波器设计的MATLAB实现函数及性能分析

传统方法FIR数字滤波器设计的MATLAB实现函数及性能分析

【摘要】:1)h=h,且N为奇数。图2-3 奇长度偶对称h设计FIR数字滤波器特性2)h=h,且N为偶数。MATLAB实现如下:式中,b=2hn=1,2,…图2-6 偶长度奇对称h设计FIR滤波器特性综合以上4种条件对应的FIR滤波器设计,给出这种传统方法的MATLAB实现函数[Hg,φω]=traFIR(h,p)。此函数包含两个输入参数即单位冲击响应h及滤波器类型p,函数的输出为系统的幅频特性和相频特性。此外,此方法得到的滤波器在通带、阻带存在幅度较大的波动,总体性能比较低下。

FIR数字滤波器的输入和输出关系是

978-7-111-48233-8-Chapter02-4.jpg

它所对应的频率响应为

978-7-111-48233-8-Chapter02-5.jpg

式中,Hgω)为H(ejω)的增益,是一个可正可负的实函数;φω)为H(e jω)的相频特性。具有线性相位系统的相位满足:

φω)=β-αω (2-4)

式中,αβ为常数。具有线性相位的系统可保证在通频带内各种频率的信号都具有线性延迟,这样滤波后的信号就不会发生相位失真。这在诸如数据传输、语音综合等很多领域中都是非常希望得到的特性。

把式(2-3)两端用余弦函数展开有

978-7-111-48233-8-Chapter02-6.jpg

把上面两式对应相除再交叉相乘展开,并利用三角恒等式得

978-7-111-48233-8-Chapter02-7.jpg

式(2-6)恒成立的两组解为

978-7-111-48233-8-Chapter02-8.jpg

N分别取偶数和奇数时,FIR数字滤波器的频率特性有四种不同的形式。

1)hn)=hN-1-n),且N为奇数。

978-7-111-48233-8-Chapter02-9.jpg

式中,978-7-111-48233-8-Chapter02-10.jpg

MATLAB实现如下:

978-7-111-48233-8-Chapter02-11.jpg

978-7-111-48233-8-Chapter02-12.jpg

运行得到的结果如图2-3所示。

978-7-111-48233-8-Chapter02-13.jpg

图2-3 奇长度偶对称hn)设计FIR数字滤波器特性

2)hn)=hN-1-n),且N为偶数。

978-7-111-48233-8-Chapter02-14.jpg

式中,bn)=2hN/2-nn=1,2,…,N/2。

MATLAB实现如下:

978-7-111-48233-8-Chapter02-15.jpg

运行得到的结果如图2-4所示。

978-7-111-48233-8-Chapter02-16.jpg

图2-4 偶长度偶对称hn)设计FIR数字滤波器特性

3)hn)=-hN-1-n),且N为奇数。

978-7-111-48233-8-Chapter02-17.jpg

式中,978-7-111-48233-8-Chapter02-18.jpg

MATLAB实现如下:

978-7-111-48233-8-Chapter02-19.jpg

978-7-111-48233-8-Chapter02-20.jpg

运行得到的结果如图2-5所示。

978-7-111-48233-8-Chapter02-21.jpg

图2-5奇长度奇对称hn)设计FIR数字滤波器特性

4)hn)=-hN-1-n),且N为偶数。

978-7-111-48233-8-Chapter02-22.jpg

式中,978-7-111-48233-8-Chapter02-23.jpg

MATLAB实现如下:

978-7-111-48233-8-Chapter02-24.jpg

978-7-111-48233-8-Chapter02-25.jpg

运行得到的结果如图2-6所示。

978-7-111-48233-8-Chapter02-26.jpg

图2-6 偶长度奇对称hn)设计FIR滤波器特性

综合以上4种条件对应的FIR滤波器设计,给出这种传统方法的MATLAB实现函数[Hgφω]=traFIR(h,p)。此函数包含两个输入参数即单位冲击响应h及滤波器类型p,函数的输出为系统的幅频特性和相频特性。该函数的MATLAB实现如下:

978-7-111-48233-8-Chapter02-27.jpg

978-7-111-48233-8-Chapter02-28.jpg

其中函数chkpara用于检测输入参数的合法性,这里不再赘述。

传统方法设计FIR滤波器需要知道系统的单位冲击响应序列,需要变换到频域才可以了解滤波器是低通或高通,这给设计带来了不方便。此外,此方法得到的滤波器在通带、阻带存在幅度较大的波动,总体性能比较低下。