数字滤波器在数字信号处理的应用中占有相当重要的地位,是最重要的组成部分之一。在所有的数字信号处理系统中几乎少不了它的运用。数字滤波器是指完成信号滤波处理的功能,它通过对采样数据信号进行数字运算处理,选择所需频带的信号内容而抑制不需要的其他频带的信号内容,从而达到在频率域滤波的目的。模拟滤波技术在以往的滤波器设计是采用得较多的,但是它也留下了很多有待解决的问题。而采用数字滤波器则可以避免很多类似的难题,相比模拟滤波器,数字滤波器没有漂移,能够处理低频信号,具有精度高、可靠性好、灵活性大、容易集成等优点,这些优势决定了数字滤波器将成为数字信号处理中一个不可取代的工具的趋势。
1.2 MATLAB软件简介
MATLAB(Matrix Laboratory) 是美国MathWorks公司出品的主要用于算法开发、数据可视化、数据分析、交互式程序设计的高级语言环境。它具备完善的矩阵和科学计算功能,能自动生成直接与硬件关联的代码,可以方便快速地进行矩阵运算、绘制函数和实现算法、连接其他编程语言的程序等。强大的功能以及使用的便利程度使得其在众多专业领域的仿真和设计中受到广大科研和工程技术人员的青睐。和C、Fortan等高级编程语言不同,MATLAB面向科学与工程计算,它允许用数学形式的语言进行程序编写,就像在纸上列出公式求解问题一样通俗易懂。使用MATLAB可以提高编程效率,大大方便了生产和研究。
1.3 选题依据及主要研究内容
基于数字信号处理的原理,利用MATLAB易用性以及数据的高度可视化,不仅使得分析数字滤波器设计理论更加简单明了,也更容易设计出界面简洁、操作方便功能的数字滤波器软件,同时还可以根据不同的需要选择不同的滤波器类型,接着输入相关参数,最后选择相应的按钮,便可以得到滤波器的特性参数,轻易实现人机交互,进而对滤波器的性能分析提供了方便。基于MATLAB的数字滤波器设计突破了在以往滤波器设计过程中繁琐的数值计算问题,令数字滤波器的设计和应用更加简单高效。在设计过程中我们还能学习MATLAB到很多有用的编程技术及其GUI图形用户界面设计的相关知识,这对我们以后的生活和发展都具有重要意义。
本论文主要:①简要介绍数字滤波器的基础知识和相关的算法,通过认识数字滤波器的结构及其设计理论,掌握IIR数字滤波器和FIR数字滤波器这两种滤波器的原理和特性,为接下来的数字滤波器实现奠定理论基础;②利用 MATLAB工具箱设计与实现数字滤波器,一个界面友好、操作简单的数字滤波器。
2 数字滤波器基础理论和知识
数字滤波器在数字信号处理中有着相当重要的地位,是目前使用比较广泛的一种基本线性处理模块,它可以比较准确地实现模拟滤波器很难实现的线性相位关系特性。按单位冲击响应来分,数字滤波器分为无限冲击响应数字滤波器(即IIR数字滤波器)和有限冲击响应数字滤波器(即FIR数字滤波器);从功能上,数字滤波器又可以分为高通滤波器、低通滤波器、带阻滤波器、带通滤波器。
2.1 IIR数字滤波器
IIR滤波器的冲击响应是无限长的,它的系统函数为: (2.1)
对应的差分方程为: (2.2)
借助模拟滤波器的理论和设计方法是设计IIR数字滤波器时较常用的方法。目前,模拟滤波器的设计已经有了完整的设计公式,而且还有图表可供查询,有了这些资源,在设计数字滤波器的时候则会方便很多,我们将直接借助它的设计理论,一般设计步骤如下: