基于Scilab的数字滤波器设计与仿真

2015-10-09 19:30廖醒宇侯博
科技资讯 2015年19期

廖醒宇 侯博

摘 要:针对Matlab体积庞大、并非自由软件、价格昂贵等一系列问题,该文采用了一种体积小巧、完全开源、免费但功能强大的Scilab平台来设计不同类型的数字滤波器。首先介绍了Scilab软件平台功能与特点,阐述了利用双线性变换法以及Minmax准则设计数字滤波器设计的相关原理与特点。然后通过Scilab采用相应方法分别设计了相应的IIR与FIR数字滤波器。最后,对设计进行了仿真。结果表明,采用Scilab所设计的数字滤波器简单可靠,满足各个频率域满足所要求的技术指标,同时验证了双线性变换法以及Minimax法则在设计数字滤波器上的特点。

关键词:数字滤波器 Scilab Matlab 软件仿真

中图分类号:TP39 文献标识码:A 文章编号:1672-3791(2015)07(a)-0030-03

在图像处理、信息通信、控制、生物医学、等众多领域,经常需要对信源进行滤化、测量以及参数估算等处理[1]。为此,数字滤波器显得极其重要。其设计方法大体分为硬软件两种方式,而软件设计方式具有直接通过滤波器参数的改变来调整滤波器性能的优点[2]。

Scilab(Scientific Laboratory)是由法国国家信息、自动化研究院(INRIA)开发的一种数学工程计算软件,就基本功能如工程计算、模型构建、信号处理、优化处理、自动控制等各个方面,Matlab能完成的工作Scilab都可以实现[3]。相比Matlab,Scilab体积更小,并且开源免费。

该文主要探讨基于Scilab的数字滤波器的设计与仿真,为数字滤波器提供了新的设计环境与语言参考。

1 数字滤波器的设计

数字滤波器按单位脉冲响应长度分,可以分为无限长单位脉冲响应(IIR)和有限长单位脉冲响应(FIR)滤波器。

1.1 IIR数字滤波器

通常IIR数字滤波器的系统传递函数如下。

通常,,这类系统称为N阶系统,而当时, 可看成是一个(M-N)阶的FIR子系统与一个N阶IIR子系统级联。通过求取系数和,使通带起伏以及阻带衰减或者采用最优化准则在规定意义上在z平面上逼近要求特性,则可获得IIR数字滤波器。

1.2 双线性变换法设计IIR滤波器原理

双线性变换法首先将平面完整压缩变换到中介平面的之间,再通过宽度为的压缩域变换到整个z平面上,这样建立了s平面与z平面一一对应的关系,如图1所示[5]。

其中,表示FIR滤波器单位脉冲响应的长度,为的N-1次多项式,从系统函数可以看出,它在z平面上有N-1个零点,在原点z=0处有一个N-1重极点,故FIR数字滤波器具有内禀稳定性。常见的设计方法有窗函数法[4]、Minmax法等。

1.4 Minimax准则设计FIR数字滤波器原理

Minimax准则设计FIR数字滤波器法又称切比雪夫等纹波逼近法。由于误差性能在通带和阻带的要求不同,为使用Minimax准则统一化,采用误差函数加权,使不同频段加权误差最大值相等[5-6]。设给定设计的滤波器频率响应幅度函数为,用四种(即奇偶长度,奇偶对称两两组合)线性相位FIR滤波器之一的幅度函数做逼近函数。另设逼近误差加权函数为,则加权逼近误差函数定义为上式即为加权误差函数。想要系统设计最优等纹波滤波器,除了加权误差函数外,还应注意以下几点:

(1) 确定滤波器采样点个数n。

(2) 确定加权逼近误差函数极值数目。

(3) 建立频率修正算法。多次迭代处理,直至满足规定精度。

2 Scilab 设计数字滤波器

该节将介绍Scilab分别采用双线性变换法、Minimax准则设计相应的IIR和FIR数字滤波器。

2.1 双线性变换法设计IIR数字滤波器

其中:order为所设计FIR?滤波器的阶数;fredge为M?*?2?的矩阵,矩阵的每行为一频率段;des为给出每段频率区间期望的幅值响应;weight为每个频率段的加权系数向量,需要注意的是,这里频率都已归一化。由于采样频率被归一化为1,所以截止频率不能超过0.5。其仿真图如图3所示。

由图可知,在阻带衰减呈现等纹波特性,幅值衰减大于65dB,通带衰减小于3dB,满足技术指标要求。

3 结语

现有的很多设计和仿真分析主要通过Matlab来实现。然而对于一些基本应用,Matlab则凸显出得体积庞大、不经济等缺点。基于以上原因,该文针对数字滤波器的设计与仿真这一典型应用,原理上进行了分析和阐述,同时在设计与仿真上采用一种体积小巧、完全开源、免费但功能同样强大的Scilab平台来实现。为数字滤波器的设计与仿真提供了新的设计平台与方法参考。

参考文献

[1] 聂光伟.基于Matlab的IIR数字滤波器的设计方法[J].科技创新导报,2009,14(19):18-20.

[2] 张雄伟,沉亮.dsp芯片的原理与开发应[M].(第3版)北京:电子工业出版社,2003:1.

[3] 胡包钢,赵星.科学计算自由软件:SCILAB教程[M].北京:清华大学出版社,2003.

[4] 谢援朝.自动控制原理与仿真:Scilab应用[M].北京:中国电力出版社,2012.

[5] 李在林,陈坤.基于MATLAB的数字滤波器设计方法的分析[J].信息通信,2015,10(5):17-18.

[6] 程佩青.数字信号处理[M].3版.北京:清华大学出版社,2007.