基于MATLAB的数字滤波器的设计

2018-06-13 09:56李紫薇
科学与财富 2018年13期
关键词:数字图像处理

李紫薇

摘 要:随着MATLAB的出现和不断的完善,尤其是信号分析工具箱的推出,使得越来越多的人意识到用MATLAB处理电信工程中出现的问题是一种简单又快捷的选择。由于MATLAB具有的快速精准的计算及系统操作简捷的特点,其已然成为数字信号处理(Digital Signal Processing)应用中分析和解决问题的主要仿真工具。数字滤波在数字信号处理中占有很重要的地位。数字滤波包括FIR和IIR两种滤波器。本文将通过简述MATLAB的基本概念、组成及在数字信号处理中的应用来了解FIR IIR滤波器的工作原理。

关键词:数字图像处理 MATLAB FIR IIR

1 MATLAB基本概念

MATLAB是美国Mathworks公司开发的大型数学计算软件,它提供了强大的矩阵处理和绘图功能,是一个高精度的科学计算语言,将计算、可视化和编程结合在一个使用环境中,它的典型使用包括:数学与计算、运算法则、建模、仿真、数据分析,研究与可视化、工程图形、应用程序开发等。MATLAB应用领域包括信号和图像处理、通信、控制系统设计、测试与测量、财务建模和分析、计算生物学等。MATLAB是一个交互式的开放系统,它的基本数据单元是矩阵.其最重要的特性是拥有解决特定应用问题的程序组,即TOOLBOX,如信号处理工具箱、神经网络工具箱、通信工具箱、数据采集工具箱等许多专用工具箱。MATLAB软件有MATLAB和Simulink两大部分组成,是一个高级计算语言,也是一种交互式环境,在该环境下可实现线性和非线性静态、动态系统的建立与模拟仿真等操作。其中Simulink是一个用于对动态系统进行多领域建模和模拟设计的平台,它提供了一个交互式图形环境,以及一个自定义模块库,并可对特定应用加以扩展,可用于控制系统设计、信号处理和通信及图像理等众多领域。

2 MATLAB软件的系统组成

(1)MATLAB开发环境:即软件的操作界面,在该界面下我们可以使用大量MATLAB自带函数和各种工具,功能齐全,应用广泛。

(2)MATLAB语言:MATLAB编程语言是一种面向对象语言,语言中的数据结构、控制语句及输入输出界面都十分高级。

(3)MATLAB数学函数库:MATLAB数学函数库包含了许多数值计算算法函数,简单的有三角函数、复数计算及级数展开等,复杂的有快速傅里叶变换、矩阵运算、多维微积分等。

(4)MATLAB应用程序界面:是一个强大的程序库,通过这个界面我们可以在其他与MATLAB语言交互的语言环境中(如c语言和Fortran语言)调用MATLAB的子程序及子过程,通过编写可交互语句来生成可独立执行的EXE文件。

(5)MATLAB图像生成:这个功能提供使用者将多种数据用图像表示出来,生成的图像的各种参数都可以由使用者自定义。

3 FIR

FIR滤波器具有很多优点,可在幅度特性随意设计的同时,保证输出数字信号的相频特性有精确、严格的线性,滤波稳定,不会出现递归型结构等不稳定现象,可采用快速傅里叶变换计算,运算效率较高。

FIR滤波器有几个特点:(1)系统的单位冲击响应h(n)在有限个n值处不为零。

(2)系统函数H(Z)在|Z|>0处收敛,在|Z|>0处只有零点,即有限Z平面只有零点,而全部极点都在Z=0处(因果系统)

(3)结构上主要是非递归结构,没有输出到输入的反馈,但有些结构中也包含有反馈的递归部分

FIR滤波器的实现方法有窗函数法、频率抽样法、最优等波纹法和滤波器函数直接法,数字FIR滤波器的工作原理是模拟信号首先进过A/D转换器间被转换为数字信号,进入滤波器进行处理后,形成一长串数据序列,如果有需要再将该数据序列输入到外接D/A转换器,变成模拟信号使用。

3.2 窗函数设计线性FIR滤波器

设计思路:(1)按照指标给出理想滤波器的 φ(w)

(2)由Ha(e^jw)求出hd(n)

(3)加窗函数W(n)对其截断h(n)=hd(n)w(n)

窗函数特点:(1)长度至于滤波器的过渡带宽度有关,与滤波器阻带最小衰减无关

(2)窗函数的形状与滤波器的过渡带宽度和阻带最小衰减都有关系

3.3 MATLAB与FIR

由于FIR滤波器具有线性相位特性、稳定性好、在硬件上可高效实现和瞬态效应持续时间有限的优点,所以用MATLAB操作更简单。下面是用MATLAB对一个音乐信号进行窗函数滤波所得到的时域和频谱图,这里我们只用了矩形窗和布莱克曼窗进行滤波,比较两种窗函数的频谱图可发现,布莱克曼窗的滤波效果更好一点,原因是布莱克的最小阻带衰减在相同阶数的情况下比矩形窗的最小阻带衰减大,所以滤波更彻底,恢复的信号也比矩形窗要好。想提高矩形窗的滤波效果可通过增加阶数的方法但这会增加许多工作量与运算,所以要均衡考虑选择不同的窗函数去实现滤波。

4 IIR

4.1 IIR滤波器特点包括

(1)系统的单位冲激响应是无限长的

(2)系统函数在有限Z平面上有极点存在

(3)结构上存在着输出到输入的反馈,也就是结构上是递归性的

IIR滤波器幅频特性很好,但输出信号相位不是严格的线性,通常只是用怀疑对洗好相位要求不好的场合,比如人类的语音通话和其他音频处理过程。

4.2 IIR滤波器的设计

步骤:找出符合模拟指标的模拟滤波器,然后把s平面映射到Z平面。映射要求是s左半平面映射到Z平面单位圆内,s平面的虚轴映射到Z平面单位圆上。

IIR滤波器用模拟转换法设计,其中转换法包括脉冲响应不变法和双线性变换法。其中冲击响应不变法的优点是没有畸变,数字时域特征可以很好的模仿模拟时域特性。缺点是有混叠,双线性则是没有混叠但有畸变,所以双线性变换中要对指标点进行预畸。双线性变换是将s代替

,H(s)作为一个连续时间系统,具有两种极点模式,单极点与多极点,但总能表示成若干个单极点的级联。脉冲响应不变法则是先对H(s)做周期延拓,然后再经过Z=e的映射关系映射到Z平面上,脉冲响应不变法的一个重要特性就是频率坐标的变换是线性的,即w=ΩT,w与Ω是线性关系,以此通过变换后滤波器的频响可不失真的反映原响应与频率的关系。

4.3 MATLAB与IIR

常见的经典法设计的IIR滤波器包括巴特沃斯滤波器、切尔雪夫I型滤波器、切尔雪夫II型滤波器和椭圆滤波器。下图是用MATLAB对一个音乐信号通过巴特沃斯滤波器得到的时域与频域图,巴特沃斯滤波器可用于低通、高通、带阻、带通滤波器和模拟滤波器。巴特沃斯滤波器的特点是阶数(N)越大滤波性能越好。

总结:与其他软件相比,MATLAB操作简单、快捷且有严格的线性计算系统,可以减少编程时间,提高编程效率。随着MATLAB的不斷更新与发展,人们利用它进行一系列计算、仿真等工作会越来越多。数字信号处理与MATLAB的结合使得人们更能清楚地了解到模拟信号与数字信号的区别,能够帮助人们更好的工作。

参考文献:

[1]程佩青 数字信号处理教程(M)清华大学出版社 2007

[2]朱雷平,MATLAB在数字信号处理中的应用【J】,科学信息(学术版)2007(5)

猜你喜欢
数字图像处理
图像实时检测技术在激光切割中的应用研究
MATLAB在《数字图像处理》课程中的辅助教学
信息与计算科学专业《数字图像处理》课程教学探讨与实践
以应用实例为主线、以程序设计为主导的数字图像处理课程教学方法改革
数字图像处理技术课程改革与实践
数字图像处理课程CDIO模式教学法实践
《数字图像处理》课程的驱动教学实践
基于Blackfin的图像识别式印刷网点测版仪的研制
用于小零件图像测量的双远心光学系统