基于图形用户界面的IIR滤波器的设计与仿真

2010-06-09 08:05张学敏刘奭昕张建红
关键词:图形用户界面截止频率文本框

张学敏,刘奭昕,张建红

(1.长春工程学院电气与信息学院,长春130012;2.大连理工大学电子信息与电气工程学部,大连116024)

0 引言

数字滤波是数字信号处理的基本方法。与模拟滤波器相比有很多优点:数字滤波具有稳定﹑适应性强等特点,从而避免了模拟滤波固有的电压漂移、温度漂移和噪声等问题。数字滤波包括无限长IIR(Infinite Impulse Response)滤波器和有限长FIR(Finite Impulse Response)滤波器。由于IIR滤波器传递函数的极点可位于单位圆内的任何地方,因此可用较低的阶数获得高的选择性,所用存储单元少,经济且效率高。另外,IIR滤波器的设计通常是借助于模拟滤波器的成果,因此一般有有效的公式可供准确计算,计算工作量较小,故本文仅讨论IIR滤波器的设计。

Matlab是一种以矩阵运算为基础的功能强大的程序设计语言,它具有编程效率高﹑语句可读性强﹑数值计算可视化的优点。现在利用Matlab语言设计的数字滤波器大多依赖语言本身来实现的,可重复性和可扩展性差,无人机互动性。鉴于此,本文提出一种基于Matlab图形用户界面的数字滤波器的设计方法,该方法既依赖语言本身,同时又具有图形用户界面的方便﹑直观﹑人机交互性好的优点。本文以Matlab 7.0为设计平台,进行IIR滤波器的设计。

1 双线性变换法设计IIR滤波器

由于IIR数字滤波器的设计是利用模拟滤波器的成熟理论和设计方法来完成的,所以将模拟滤波器数字化后会产生频谱混叠现象。为了克服这一缺点,故采用非线性频率压缩方法,将整个频率轴上的频率范围压缩到±π/T之间,再用Z=esT转换到Z平面上。设模拟滤波器的传递函数为H(s),s=jΩ经非线性频率压缩后用 H(s1),s1=j Ω1表示,用正切变换实现频率压缩:

式(3)或式(4)称为双线性变换。IIR滤波器的设计关键是由其性能指标计算滤波器系数,利用Matlab信号处理工具箱中的elli函数可精确得到滤波器系数,再利用频率响应函数freqz可以得到滤波器的幅频响应。下面利用ellip函数设计低通、高通和带通滤波器。函数格式如下:

(1)低通滤波器设计函数[b,a]=ellip(N,Rp,Rs,ω),式中N为滤波器阶数,ω为归一化截止频率,0<ω<1,Rp为通带最小衰减,Rs为阻带最大衰减,返回值b,a为IIR滤波器系数。

(2)高通滤波器设计函数:[b,a]=ellip(N,Rp,Rs,ω,′high′),式中 N 为滤波器阶数 ,ω为归一化截止频率,0<ω<1,Rp为通带最小衰减,Rs为阻带最大衰减,high代表滤波器类型是高通滤波器,返回值b,a为IIR滤波器系数。

(3)带通滤波器设计函数:[b,a]=ellip(N,Rp,Rs,[ω1 ω2 ]),式中N 为滤波器阶数,ω为归一化截止频率,和ω2分别为带通滤波器的通带上限和下限截止频率,Rp为通带最小衰减,Rs为阻带最大衰减,返回值b,a为IIR滤波器系数。

2 FIR滤波器的Matlab图形用户界面实现

2.1 Matlab的图形用户界面的优点

图形用户界面(即Graphic User Interface,以下简称GUI)是Matlab的用户与计算机之间通信联系的平台。使用GUI应用程序,用户可以方便地通过鼠标与程序进行信息交互,控制程序运行。Matlab作为功能强大的软件开发工具,提供了丰富的GUI设计功能,特别是Matlab7.0所提供的控制种类更丰富,使用更方便,用户利用Matlab提供的图形用户界面设计工具,可以设计各种要求的GUI,并在其基础上完成应用程序的开发。

2.2 滤波器图形用户界面的组成

该图形用户界面共创建21个控件:8个静态文本框及与之相对应的8个动态文本框,8个静态文本框的内容分别是频率1﹑频率2﹑频率3﹑采样频率、时间t﹑阶数、截止频率1﹑截止频率2(若是高通滤波器,截止频率1代表其截止频率;若是低通滤波器,截止频率2代表其截止频率;若是带通滤波器,截止频率1和截至频率2代表其上﹑下限截止频率),动态文本框用来输入与静态文本框内容相对应的可编辑的参数;1个弹出式菜单,弹出式菜单中设置了带通(bandpass)﹑低通(lowpass)﹑高通(highpass)3个选项,用户在动态文本框中键入数据后,点击相应的选项,即可得到其所对应的滤波器的幅频响应;4个按钮 Draw1﹑ Draw2、Close和Clear,点击Draw1,即可得到原始信号的时域和频域波形,点击Draw2,即可得到滤波后的信号的时域和频域波形,通过频谱图可直观地观察滤波效果,点击Close,即退出该GUI界面,点击Clear,可以清除刚刚产生的图形,为重新设置参数时生成新图形做准备。下面通过设计实例实现之。

2.3 设计实例

设混合信号 x=cos(2πf1t)+cos(2πf2t)+cos(2πf3t),(f1<f2<f3),设计低通﹑高通和带通滤波器。要求:低通滤波器将频率为f1的信号选择出来,高通滤波器将频率为 f3的信号选择出来,带通滤波器将频率为 f2的信号选择出来。这里f1,f2,f3均由动态文本框录入;为了清楚再现滤波效果,还对滤波前后的信号做了快速傅立叶变换FFT谱分析运算,其由GUI界面的按钮Draw1和Draw2实现之,部分主要程序如下:

上述程序在Matlab环境下运行,会生成如图1所示的空GUI界面。

图1 空GUI界面

设混合输入信号x的频率分别为10 Hz﹑20 Hz和30 Hz,则选采样频率100 Hz,要求用带通滤波器将20 Hz的信号选择出来,故在图1的动态文本框中依次输入混合信号的频率,采样频率和带通滤波器的截止频率,用鼠标点击控件Draw1,则得到原信号的时域和频域波形,见图2。

图2 IIR带通滤波器的GUI界面图

图2的GUI界面的前2个波形图是原信号的时域和频域波形,从频域图形可以清楚地看到原信号的3个频率成分。点击弹出式菜单中的可选项bandpass,则生成图2的GUI界面中的第3个波形图,即为带通滤波器的幅频响应。点击Draw2按钮,则生成图2的GUI界面的最后2个波形图,其为滤波后的信号的时域波形和频域波形,由频谱图可见,经带通滤波器滤波后,10 Hz和30 Hz的信号被衰减,而 20 Hz的信号被选择出来。点击按钮Clear,则清除图2中的图形,见图3。

图3 清空后的GUI界面

若将截止频率2改为15 Hz,截止频率1的动态文本框处为空,点击弹出式菜单的lowpass选项,则生成低通滤波器的幅频响应,各波形见图4。

图4 IIR低通滤波器的GUI界面图

对频率加以修改,点击highpass选项,会生成高通滤波器的幅频响应,鉴于道理相同,不再给出其相应的幅频响应界面图。若点击按钮Close,则退出该界面。

3 结语

利用Matlab图形用户界面进行IIR数字滤波器的设计,方便﹑直观、快捷。文中通过实例给出了数字低通和带通滤波器的设计界面,由此界面可见,数据的输入﹑改写方便,输出结果快捷﹑直观﹑一目了然。省去了重复调用M 文件,重新改写数据的麻烦,从而减轻了工作量,故而,此方法为滤波器的设计提供了一种新思路。

[1]陈希林,肖明清.一种LabWindows/CVI与MATLAB混合编程的实现方法[J].微计算机信息,2005(1):43-45.

[2]王默玉,宗伟.基于Matlab的图形用户界面的构造方式与应用[J].现代电力,2002,19(1):76-82.

[3]张学敏.基于图形用户界面的FIR滤波器的设计与仿真[J].长春工程学院学报:自然科学版,2009(4):33-35.

[4]陈亚勇.MATLAB信号处理详解[M].北京:人民邮电出版社,2005:156-273.

[5]李丽,王振领.Matlab工程计算及应用[M].北京:人民邮电出版社,2007:65-139.

[6]张明照,刘政波.应用Matlab实现信号分析与处理[M].北京:科学出版社,2006:78-193.

猜你喜欢
图形用户界面截止频率文本框
基于超声Lamb波截止频率的双层薄板各层厚度表征
巧用文本框实现PPT多图片排版
PPT文本框的另类应用
低频射频识别系统中的RC放大器电路性能分析与研究
图形用户界面外观设计专利保护问题探析——以“奇虎诉江民案”为例
浅谈图形用户界面的保护
图形用户界面法律保护问题与对策
梯度饱和多孔材料中弹性波的截止频率
文本框酷变3D效果
基于频率自适应滤波器的单相锁相环