FIR最小方差法带阻滤波器.
南华大学数字信号处理课程设计
学院:电气工程学院
学生姓名:王明明
学号: 20094470149 题目编号: 0904 设计题目:基于最小方差法的数字频变带阻滤波器
指导老师:陈忠泽
2013年1月
一 手工计算完成最小方差FIR 带阻滤波器初始设计
带阻滤波器的设计指标:
=49
⑴ 通带下截止频率,
=0.53289πrad*0.6=0.319734πrad=1.004474rad/sample
⑵ 带下截止频率,
=0.79934πrad*0.6=0.479604πrad=1.506720rad/sample
⑶ 带上截止频率,
=1.86512πrad*0.6=1.11907πrad=3.515662rad/sample
⑷通带上截止频率
,
=2.13156πrad*0.6=1.27893πrad=4.017877rad/sample ⑸通带最大衰减, ⑹阻带最小衰减
由π
ω
2=
f 得到性能指标在MATLAB 中的常用形式 再将其除以采样频率Fs 转换为归一化频率: 通带下截止频率:0.159867πrad/sample 阻带下截止频率:0.239802πrad/sample 阻带上截止频率:0.55954πrad/sample 通带上截止频率:0.63947πrad/sample 将a p =1dB ,a s =60dB 带入公式
ξ1=10^(a p /20)-1)/(10^(a p /20)+1, ξ2=10^(-a s /20) 得
ξ1=0.057501128 ξ2=0.001
由凯泽提出逼近n 的公式
求得
Ws-Wp=(0.479604π-0.319734π)+(1.27893π-1.11907
π)=0.318730π
Δf =0.159365
N=56
3.在Matlab中利用REMEZ函数计算
f=[0.159867 0.239802 0.55954 0.63947];%截止频率
m=[1 0 1];%期望幅度
rp=1;rs=60;
dat1=(10^(rp/20)-1)/(10^(rp/20)+1);
dat2=10^(-rs/20);
rip=[dat1,dat2,dat1];
[M,fo,mo,w]=remezord(f,m,rip);%函数remezord返回参数M表示滤波器的阶数
hn=remez(M,fo,mo,w);
figure(1)
freqz (hn)
plot(hn,'DisplayName','hn','YDataSource','hn');figure(gcf) FDATOOL
figure(1)
freqz(hn)
Remez函数运算结果图
其中,M为FIR数字滤波器阶数,hn长度N=M+2
N=56
则Hn=[0.00542948616199738 -0.00550528529247864 0.0143765415020765 -0.00295809803269382 -0.000311032750654040 0.00687434965711086 -0.00825128774176352 -0.0153638292567083 -0.00323139962805575 -0.0111764987057413 -0.0198649854424400 0.00618757107469203
0.0146907135822569 -0.00227597017036306 0.0198317845824397
0.0327210729955974 -0.0136770851713792 -0.0203970146189830
0.00498890016928826 -0.0483337827626882 -0.0682870317868956
0.0229452125486183 0.0216794686706548 -0.0225595378650686
0.154153867190652 0.247990438657830 -0.121527939338177
0.576794265686405 -0.121527939338177 0.247990438657830
0.154153867190652 -0.0225595378650686 0.0216794686706548
0.0229452125486183 -0.0682870317868956 -0.0483337827626882
0.00498890016928826 -0.0203970146189830 -0.0136770851713792
0.0327210729955974 0.0198317845824397 -0.00227597017036306
0.0146907135822569 0.00618757107469203 -0.0198649854424400
-0.0111764987057413 -0.00323139962805575 -0.0153638292567083
-0.00825128774176352 0.00687434965711086 -0.000311032750654040 -0.00295809803269382 0.0143765415020765 -0.00550528529247864
0.00542948616199738]
其图像为
通带振荡波纹幅度ξ
1
=dat1=0.0575
阻带振荡波纹幅度ξ
2
=dat2=0.001
误差加权函数W=[1,57.5011]
滤波器阶数N、通带振荡波纹幅度ξ
1、阻带振荡波纹幅度ξ
2
与由REMEZ函数计
算得出的N、ξ
1与ξ
2
相等,证明计算无误。
滤波器的结构不同对性能指标的影响
在设计滤波器时,对于同一个传递函数对应着许多种等效结构,然而这些结构能达到的性能效果却有所不同。在无限参数字长的情况下,所有能实现传递函数的结构之间,其表现完全相同。然而,在实际中,由于参数字长有限的限制,各实现结构的表现并不相同。
在MATLAB 中可以利用FDATool 工具箱构建不同类型的数字滤波器。为了使对比效果明显,将上述初步设计的最小方差法FIR 带阻滤波器的设计参数的字长(即转移函数中分子各项前的系数)进行保留小数点后10位的缩减。
1.利用直接型结构构建数字滤波器
FIR 网络结构特点是没有反馈支路,即没有环路,其单位脉冲响应是有限长的。设单位脉冲响应h (n )长度为N ,由之前算出的h (n )可得出(系数小数点后保留10位)系统函数为:
H(Z)=H1+H2*Z^(-1)+H2*Z^(-2)+ ……+H56*Z^(-55)
表示系统输入输出关系的差分方程可写作: y(n)= )()(1
0m n x m h N m -∑-=
直接型的结构流图如图3所示:
选择filter structure 选项框中的 Direct-Form I 选项,点击窗口下方的Import Filter 按钮,构建直接2型结构的最小方差数字FIR 带阻滤波器,结果如图4所示:
读图可以得Direct-Form I 结构的滤波器技术指标(ωsl ,ωpl , ωpu ,ωsu ,单位为rad/sample π;s α,p α,单位为dB )如表1所示:
表1 Direct-Form I 结构滤波器对性能指标的影响
由图4和表1可以看出:
⑴滤波器幅频曲线在通带和阻带内波动幅度不太均匀。
⑵阻带最小衰减s α比初始设计低 1.76956dB ,通带最大衰减p α比初始设计低0.592691dB 。
⑶ωpl ,ωsl 和ωpu 分别比初始设计高0.000688rad/sample π,0.000545rad/sample π和0.001878rad/sample π,ωsu 比初始设计低0.0001524rad/sample π,截止频率坡度较初始设计更加平缓。
由于Direct-Form II和Direct-Form I均属于直接型结构滤波器,因此均具有直接型所共有的上述误差。
2.利用级联型结构构建数字滤波器
将H(z)进行因式分解,并将共轭成对的零点放在一起,形成一个系数为实数的二阶形式,这样级联型网络结构就是由一阶或二阶因子构成的级联结构,其中每一个因式都用直接型实现。
将直接型结构系统函数转变为级联型结构的系统函数,运用Matlab中的tf2sos 进行运算(程序及运算结果见附录),可得级联结构的系统函数为:
H(z)=0.0054(1+2.0209z-1)(1-0.3990z-1+1.5174z-2)
-1-2-1-2
图5 级联型网络构图
S =
1.0000
2.0209 1.0000 1.0000 0 0
1.0000 -0.3990 1.5174 1.0000 0 0
1.0000 -
2.4234 1.4800 1.0000 0 0
1.0000 -
2.1979 1.3596 1.0000 0 0
1.0000 1.7259 1.3384 1.0000 0 0
1.0000
2.0459 1.3371 1.0000 0 0
1.0000
2.2441 1.3358 1.0000 0 0
1.0000 1.2950 1.3304 1.0000 0 0
1.0000 -0.9858 1.0000 1.0000 0 0
1.0000 0.1242 1.0000 1.0000 0 0
1.0000 -1.4511 1.0000 1.0000 0 0
1.0000 0.3605 1.0000 1.0000 0 0
1.0000 -1.2882 1.0000 1.0000 0 0
1.0000 -1.1502 1.0000 1.0000 0 0
1.0000 -0.3233 1.0000 1.0000 0 0
1.0000 -0.0756 1.0000 1.0000 0 0
1.0000 -0.5781 1.0000 1.0000 0 0
1.0000 0.2748 1.0000 1.0000 0 0
1.0000 -1.3927 1.0000 1.0000 0 0
1.0000 -0.7962 1.0000 1.0000 0 0 1.0000 0.9734 0.7517 1.0000 0 0 1.0000 1.6799 0.7486 1.0000 0 0 1.0000 1.5302 0.7479 1.0000 0 0 1.0000 1.2895 0.7471 1.0000 0 0 1.0000 -1.6166 0.7355 1.0000 0 0 1.0000 -1.6374 0.6757 1.0000 0 0 1.0000 -0.2630 0.6590 1.0000 0 0 G =
0.0054
选择Edit 下拉菜单中点击 Convert to Second-order Sections 选项,将构建好的Direct-Form I 结构的最小方差法FIR 带阻滤波器转换为级联滤波器,结果如图6所示:
读图可以得级联型结构的滤波器技术指标(ωsl ,ωpl ,ωpu ,ωsu ,单位为π
表2 级联结构滤波器对性能指标的影响
由图6和表2中可以看出:
⑴滤波器幅频曲线在通带和阻带内波动比直接型结构滤波器幅频曲线更均匀。 ⑵阻带最小衰减s α比初始设计值低1.82231dB ,通带最大衰减p α比初始设计低0.112915dB 。
⑶ωpu 和ωpl 比初始设计高0.004802rad/sample π和0.006565rad/sample π;ωsl 和ωsu 分别比初始设计低了0.000300rad/sample π和0.00394rad/sample π,滤波器的截止频率坡度较初始设计更加平缓。
3、两种滤波器结构对性能指标影响的比较与总结
比较表1和表2发现:在参数字长保留了小数点后10位的情况下,两种结构的滤波器较初始设计在性能指标方面均有误差。
由于直接型滤波器的系数不是直接决定单个零极点,不能很好的进行滤波器性能的控制,且直接型滤波器的极点对参数的变化过于敏感,从而使得系统的频率响应对参数的变化也特别敏感,容易出现不稳定或产生较大误差;而级联型滤波器每个二阶系数单独控制一对零、极点,有利于控制频率响应。因此直接型误差比级联型更大,受有限参数字长影响更大,主要表现在直接型的ωsl 、ωpl 、 ωpu 、ωsu 、s α和p α与设计要求的相应性能间的差的绝对值普遍大于级联型。此外,级联型的的幅频响应曲线的通带的波动稳定性要稍好于直接型。
所以,参数字长有限的情况下,级联结构型滤波器对参数变化的反应要比直接结构型的更小,性能指标误差更小,滤波效果更好,更能符合设计指标的要求。
三参数字长对性能指标的影响
在实际的数字滤波器的设计中,由于计算机或DSP芯片等的字长和存储空间有限,所以也只能对设计参数取有限的字长进行设计。然而,如果字长太短,则设计的滤波器误差就会太大,造成滤波效果不佳。下面研究不同参数字长对性能指标的影响。
将计算获得的最小方差法带阻FIR数字滤波器的系数输入FDAtool中的filter coefficients工具中,并点击Import Filter按钮,生成数字滤波器。运用Set quantization parameters按钮,在filter arithmetic下拉菜单下选择Fixed Point选项,进入如图7所示的界面。
通过改变coefficient word length的值便可以改变参与构建滤波器的参数字长。
图中虚线为供参考的理想字长下生成的滤波器的幅频响应曲线,图中实线为改变参数字长后的滤波器幅频响应曲线。
1.参数字长取2位对性能指标的影响
将coefficient word length的值改为2,点击下方的Apply按钮,此时设计的滤波器幅频响应曲线和性能指标如图8所示:
图8 参数字长取2位时的滤波器幅频响应曲线图
从图中可以看出:字长为2位时,不滤波达不到设计要求。
2.参数字长取4位对性能指标的影响
将coefficient word length的值改为4,点击下方的Apply按钮,此时设计的滤波器幅频响应曲线和性能指标如图所示:
从图中可以看出:字长为4位时,滤波器的各项性能指标离设计指标偏差很大,滤波器失真明显,几乎达不到滤波效果,远远不能满足设计指标的要求。
3.参数字长取6位对性能指标的影响
将coefficient word length的值改为6,点击下方的Apply按钮,此时设计的滤波器幅频响应曲线和性能指标如图10和表4所示:
图10参数字长取6位时的滤波器幅频响应曲线图
图10参数字长取6位时的滤波器幅频响应曲线图
由图10可以看出,当参数字长取为6位时,幅频曲线已经初具带阻滤波器的形态,失真度虽然比4位时有明显改进,但仍很明显,滤波效果很差,带阻最大衰减频率和阻带最小衰减频率与设计指间标误差还是很大,离设计指标差距仍然很大。
4.参数字长取10位对性能指标的影响
将coefficient word length的值改为10,点击下方的Apply按钮,此时设计的滤波器幅频响应曲线和性能指标如图11和表5所示:
图11参数字长取10位时的滤波器幅频响应曲线图
表5 参数保留小数点后10位时的性能指标一览表
由图11和表5可以看出,当参数字长取为10位时,幅频曲线失真进一步减小,但程度已经很小,失真几乎可以忽略。截止频率已与设计要求相差无几,通带最大衰减仍然和设计要求有不小的差距,还不可以忽略。
5.参数字长取14位对性能指标的影响
将coefficient word length的值改为14,点击下方的Apply按钮,此时设计的滤波器幅频响应曲线和性能指标如图12所示:
图12参数字长取14位时的滤波器幅频响应曲线图
表6 参数保留小数点后14位时的性能指标一览表
由图12和表6可以看出,当参数字长取为14位及以上时,幅频曲线失真几乎为零,设计的曲线与要求的曲线几乎完全重合,截止频率与实际要求几乎完全相同,通带最大衰减频率和阻带最小衰减频率与设计指间相差也很小,设计的滤波器的各项性能指标达到了设计要求。
6.结论
总结发现:参数字长越长,设计出的滤波器就越符合设计指标要求,误差越小,稳定性越好,滤波性能越好。当参数字长达到14及位及以上时,设计的滤波器便可达到设计性能指标。
参考文献
[1]高息全丁美玉.《数字信号处理》[M].西安:西安电子科技大学出版社,2008.8
[2]陈怀琛.《数字信号处理教程——MATLAB释义与实现》[M].北京:电子工
业出版社,2004.12
[3]张德丰.《详解MATLAB数字信号处理》[M].北京:电子工业出版社,2010.6
[4]飞思科技产品研发中心.《MATLAB7辅助信号处理技术与应用》[M].北京:电
子工业出版社,2005.3