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

更新时间:2023-10-19 05:01:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

毕业设计(论文)

题 目:

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

学生姓名: 学 号: 所在学院: 专业班级: 届 别: 指导教师:

曹阳 2010013596 信息工程学院 通信工程1004班

2014届 傅思勇

皖西学院本科毕业设计(论文)创作诚信承诺书

1.本人郑重承诺:所提交的毕业设计(论文),题目《基于MATLAB的FIR数字滤波器设计》是本人在指导教师指导下独立完成的,没有弄虚作假,没有抄袭、剽窃别人的内容;

2.毕业设计(论文)所使用的相关资料、数据、观点等均真实可靠,文中所有引用的他人观点、材料、数据、图表均已标注说明来源;

3. 毕业设计(论文)中无抄袭、剽窃或不正当引用他人学术观点、思想和学术成果,伪造、篡改数据的情况;

4.本人已被告知并清楚:学校对毕业设计(论文)中的抄袭、剽窃、弄虚作假等违反学术规范的行为将严肃处理,并可能导致毕业设计(论文)成绩不合格,无法正常毕业、取消学士学位资格或注销并追回已发放的毕业证书、学士学位证书等严重后果;

5.若在省教育厅、学校组织的毕业设计(论文)检查、评比中,被发现有抄袭、剽窃、弄虚作假等违反学术规范的行为,本人愿意接受学校按有关规定给予的处理,并承担相应责任。

学生(签名):

日期: 年 月 日

目 录

前言 ..................................................................... 2 1 FIR数字滤波器简介 ...................................................... 3

1.1 FIR滤波器发展趋势和现状 .......................................... 4 2 FIR数字滤波器设计原理 .................................................. 5

2.1等波纹最佳逼近法设计FIR数字滤波器 ................................ 5 2.2 窗函数法设计FIR数字滤波器 ........................................ 6 2.3 频率采样法设计FIR数字滤波器 ..................................... 14 2.4 三种设计方法的优点与不足 ......................................... 16 3 FIR数字滤波器的MATLAB实现与仿真 ...................................... 17

3.1 FIR滤波器的MATLAB实现 .......................................... 17 3.2 FIR滤波器建模 ................................................... 18 3.3 FIR滤波器仿真 ................................................... 20 4 FIR和IIR数字滤波器的比较 ............................................. 22

4.1 IIR数字滤波器介绍 ............................................... 23 4.2 IIR和FIR滤波器比较 ............................................. 23 5 总结和展望 ............................................................ 24 参考文献: .............................................................. 24

皖西学院2014届本科毕业设计(论文)

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

学生:曹阳(指导教师:傅思勇)

(皖西学院信息工程学院)

摘要:本文重点研究了FIR数字滤波器的实现原理以及设计该滤波器所需要使用的几种方法。设计出所需要的滤波器后,再使用MATLAB软件对该FIR数字滤波器进行仿真和滤波效果的实验,检验该滤波器的性能。接着本文还简要介绍了IIR滤波器,比较了FIR和IIR滤波器之间的异同和优缺点。

首先,本文介绍了FIR滤波器的现状和发展趋势,并对FIR滤波器的特点和构成条件进行了阐述。

其次,文章研究了频率抽样法、窗函数法和等波纹最佳逼近法设计FIR数字滤波器的原理和设计步骤。在分析FIR滤波器的原理同时,重点研究了使用窗函数法设计FIR滤波器的原理。同时还介绍了几种典型的窗函数,如矩形窗、三角窗、汉宁窗、哈明窗、布莱克曼窗和凯塞窗的特点和优劣。接下来,会用凯塞窗设计一个FIR数字滤波器实例,并编写一段MATLAB语言,用MATLAB软件对该滤波器进行仿真,做出该滤波器的幅频响应函数曲线和损耗函数曲线。

然后,文章重点介绍使用MATLAB软件信号处理工具箱里的Fdatool工具,运用窗函数法搭建一个FIR数字滤波器。然后在Simulink环境下进行该滤波器的除噪仿真实验,通过观察滤波前后信号的时域波形,直观感受该滤波器的性能。

最后,本文对IIR数字滤波器做了简单介绍,并将FIR滤波器与其进行比较,对比两者之间的不同和优劣。

关键词:MATLAB;FIR数字滤波器;窗函数;凯塞窗;FDATool;Simulink;仿真

FIR Digital Filter Design Based on MATLAB

Student: Cao Yang (Faculty Adviser:Fu Siyong) (School of Information and Engineering, West Anhui University)

Abstract:This paper focuses on the realization of the principle of FIR digital filter design in several ways, and the need to use the filter.Needed to design a filter, then use MATLAB software simulation of the FIR

1

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

digital filter and the filtering effect of the experiment, testing the performance of the filter.This article also briefly describes the IIR filters, FIR and IIR filters compare the similarities and differences between the advantages and disadvantages.

First, this paper describes the current situation and development trend of the FIR filter, and the characteristics and composition of the FIR filter conditions are described.

Secondly, the article describes the window function, such as the principle of frequency sampling method and the best approximation ripple FIR digital filter design and design steps.In introducing the principle of FIR filters, focusing on the use of window functions FIR filter design principles.It also describes several typical window functions, such as rectangular windows, triangular windows, Hanning, Hamming window, Blackman window and Kaiser window characteristics and advantages and disadvantages.Then, it will use the Kaiser window design an FIR digital filter instance and write a MATLAB language, using MATLAB software to simulate the filter to make the filter frequency response function curves and loss of function curves.

Then, the article focuses on the use of MATLAB software signal processing toolbox Fdatool tools, the use of window functions to build an FIR digital filter.Then in the Simulink environment in addition to the filter noise simulation, observed before and after filtering through a time-domain waveform signal, intuitive feelings performance of the filter.

Finally, the paper IIR digital filter gives a brief introduction, and compare its FIR filter, and the contrast between the different pros and cons.

Keyword:MATLAB; FIR digital filters; Window function; Kaiser window; FDATool;Simulink; Simulation

前言

随着信息化时代和数字化时代的到来,数字信号处理技术已成为现在最重要的一门技术学科领域。数字信号处理这门技术在通信、话音、图像、自动控制、声呐、军事、航空航天、医学和家电等非常广阔的领域得到了普遍地运用[1]。在数字信号处理运用中,数字滤波器是一个尤为重要的运用。

数字信号的处理办法一般都涉及到转换、滤波、频带辨析、编码解码等过程,其中数字滤波是重要一环。数字滤波器分为有限长脉冲响应(FIR)数字滤波器和无限长脉

2

皖西学院2014届本科毕业设计(论文)

冲响应(IIR)数字滤波器,在数字滤波这个过程中,就离不开FIR数字滤波器。FIR数字滤波器相比较IIR数字滤波器在滤波性能方面有很大的优势,其中一个较突出优点是:FIR滤波器可以在一边设计任意幅频属性的时候,还会保证严格的线性相位属性[1]。

FIR滤波器是在数字信号处理(DSP)中常常需要用到的两种滤波器中的一种,也是数字信号处理过程中最常用的组件之一,它不仅可以完成信号预调操作,还具有频带选择和滤波等功能[2]。FIR数字滤波器在数字信号处理过程中发挥了重要作用,但是,不同的处理过程需要不同特性的FIR滤波器,这就需要滤波器设计人员在不同的处理过程中制作不同参数的FIR数字滤波器。因此,就需要用到MATLAB软件。配合MATLAB工具软件的辅助设计,让FIR滤波器不但拥有高速、适用性强的优点,而且还可以消耗比较少的软硬件资源。该软件可以使我们在需要不同特性的FIR滤波器时,只需修改几个参数,就可以快速的得到所需要的FIR滤波器,极大的方便了滤波器设计人员的工作,节省了时间。

MATLAB软件是由一家著名的叫做MATHWORKS公司制作的一款首要面对科学计算、可视化以及交互式程序设计的高科技计算软件。它可以将数量的分析、矩阵的计算、科学数据的可视化以及非线性动态系统的建模和仿真等许多强大实用的数学功能集成在一个便于使用的视窗环境中,为科学研究和必须进行有用数值计算的广大科学方面提供了一周到的解决方案,并在很大程度上脱离了传统非捆绑式程序设计语言的编辑模式,代表了现在国际科学计算软件的先进水平[3]。

在设计FIR滤波器的过程中,设计人员可以使用MATLAB软件中所自带的FDATool软件箱,进行所需要设计的滤波器的物理模型搭建,并可以通过Simulink环境进行仿真,可以非常清楚的看到滤波前后信号的波形,直观感受所设计滤波器的性能。极大简化了设计过程,也节省了精力。

1 FIR数字滤波器简介

通过线性系统理论可以得知,在一定的条件下,输入到线性系统的一个冲击是完全可以表示系统的。如果线性系统仅仅是一空间滤波器,经过稍微地查看它对冲击的响应,就可以完整地确定该滤波器。经过这种方式确定的滤波器即是被称为有限脉冲响应滤波器的FIR滤波器。

FIR数字滤波器的基本结构是一条分节的延迟线,把它的每一节的输出进行加权累加处理,则可以得到滤波器的输出[4]。在数学上的表示为:

3

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

n?1 y(n)??h(n)x(n?m) (1.1)

m?0 然后,用一匀称间距抽头的延时线对抽头信号进行加权求和处理。按照上面的式子,则可以看出,FIR数字滤波器的处理过程中需要用到大量的卷积运算,如采用硬件设计则需要大量的包括延时器、乘法器和加法器,在实现时会占据大批的资源。

考虑到运用一般的设计方法设计的FIR数字滤波器在实现时要消耗大批的资源,在一些场合一般采用软件或者程序设计FIR滤波器。

FIR数字滤波器的软件设计方法是以径直迫近所需离散时间系统的频率响应为基本要素的,设计的办法包括等波纹最佳逼近法、频率采样法以及窗函数法。其中,窗函数法是大家公认的,设计FIR数字滤波器最为简单、最为快捷的方法,也是最为常用的方法。

1.1 FIR滤波器发展趋势和现状

随着集成技术的不断发展,各种大规模以及超大规模的集成电路不断显现出来,集成技术也和电路技术紧密结合,使得现在对数字信号处理系统的功能的要求则越来越高。数字滤波器是数字信号处理系统的一必备环节,在诸如话音信号、图像处理、模式识别以及谱分析等领域中,是一最为基础也是最为核心的处理技术。数字滤波器与模拟滤波器相比而言,数字滤波器拥有许多突出的优势,主要原因是因为数字滤波器是对时间离散信号进行过滤的数字系统,可以借助软件或用硬件来完成,而且在这两种情况下都可以用于进行滤除实时信号和非实时信号的操作。虽然数字滤波器这一称呼直到六十年代中叶才开始使用,但是伴随科学技术的不断发展进步以及计算机技术的更新普及,数字滤波器有着良好的发展前景。从20世纪60年代起,因为计算机、集成技术和材料工业等技术的发展,滤波器的发展趋势开始向低功耗、高精度、小体积、多功能、稳定可靠和廉价这些方向来努力,其中低功耗、高精度、多功能、稳定可靠又成为70年代以后研究的方向,这导致了数字滤波器、RC有源滤波器和开关电容滤波器以及电荷转移器等各种各样滤波器的飞速发展[5]。80年代以后,以上那几种滤波器的单片集成被开发出并得到采用,90年开始至现在,人们主要致力于把各类滤波器运用在各类产品的开发和研制过程中。当然,人们对滤波器本身的研究仍在不断进行。

FIR滤波器的传统制作工艺流程为2步:第一步是开发设计,第二步是产品实现。在开发部分完成方案设计和算法设计与验证一般是采用MATLAB软件对其进行仿真,

4

皖西学院2014届本科毕业设计(论文)

当仿真结果达到大家预期时,就会进行产品实现阶段。在实现阶段,设计人员会将开发设计阶段的算法用C语言或者C++或者汇编语言实现,在单片机、DSP等硬件上来实现。

眼下对数字滤波器的设计有许多种办法,此中包括有名的Matlab软件,它的功能强大、使用方便。众所周知,传统的数字滤波器的设计过程复杂,计算工作量特别的大,严重的影响了它的发展、应用。但是,如果能够利用Matlab软件中的相关信号处理工具箱,则可以快速、有效的设计出由软件组成的数字滤波器,设计人员则可以根据需要按照设计指标要求和滤波器的性能来调整相关参数,很是直观简单,减轻了滤波器开发人员的工作量,对滤波器设计的最优化有很大帮助。

2 FIR数字滤波器设计原理

2.1等波纹最佳逼近法设计FIR数字滤波器

等波纹最佳逼近法指的是滤波器的幅频响应在通带和阻带都是等波纹且在给定滤波器长度的情况下,加权误差最小化的方法[1]。等波纹最佳逼近法的最大优点就是,与窗函数和频率采样法相比较,可以克服它们不能同时分别控制通带和阻带的波纹幅度的困难。等波纹最佳逼近法还能够精确的控制所设计滤波器的边界频率。但是,此方法也有它的不足,在理论推导该方法时,它的数学证明方法及其复杂,不易于理解。同时,在用该方法设计FIR数字滤波器时,滤波器的模型的建立以及算法的求解,都是非常麻烦的,数据量巨大,都需要借助计算机,但这从侧面也是一个优点。 2.1.1等波纹最佳逼近法的基本思想

等波纹最佳逼近法中的等波纹的含义就是:采用等波纹最佳逼近法,所设计出来的FIR数字滤波器,他的幅频响应,不管是在通带还是阻带里都是等波纹的,同时还是能够控制通带和阻带的波纹幅度。而最佳逼近的含义:在滤波器的长短事前给定的情况,使加权误差等波纹的幅度最小化。

这种方法和窗函数法以及频率采样法相比较,因为这种方法可以使最大误差均匀的分布,因此这样设计出来的滤波器的性价比在这三者之间是最高的。当阶数一样的时候,这个方法所设计的滤波器的最大误差是最小的;当指标相同时,这种方法设计的滤波器的阶数还是最少的[6]。

使用这种方法设计的滤波器,它的数学模型的建立以及它的求解算法推倒都是相当复杂的,求解、计算时则都必须借助于计算机。但是滤波器设计专家已经开发出了MATLAB软件信号处理工具箱remez和remezord,在设计滤波器时,我们只要在

5

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

MATLAB软件里简单调用这两个函数,就可以快捷、高效的用等波纹最佳逼近法设计出线性相位FIR数字滤波器。 2.1.2 等波纹最佳逼近法的设计步骤

经过对上文等波纹法原理的研究,可以归纳出此种方法的设计步骤:

(1)按照需求者给的逼近参数,估计出来滤波器的阶数还有误差加权函数W(ω); (2)采用remez算法得到滤波器的单位脉冲响应函数h(n)。

MATLAB软件工具箱里的remez函数和remezord函数就是完成上述两个步骤的有效函数。

Remez函数的调用格式为: Hn = remez(M,f,m,w) 结果返回的Hn是单位脉冲响应向量。

在采用remezord函数时,可以根据逼近的技术指标估算等波纹最佳逼近FIR数字滤波器的最低阶数M、误差加权向量w以及归一化边界频率向量f,这样可以使滤波器的参数在满足技术指标的前提下,它的成本最低[7]。其返回参数作为remez函数的调用参数,调用格式为:[M,f0,m0,w] = remezord(f,m,rip,Fs) 2.2 窗函数法设计FIR数字滤波器

窗函数法设计FIR滤波器是比较简单方便的,设计过程一般都是先根据设计参数选择合适的窗,然后经过一系列计算,最后加窗得到设计结果。

设计的时候所需要的窗一般有矩形窗、三角窗、汉宁窗、哈明窗、布莱克曼窗以及凯塞窗,除此之外还有一些其他窗,但是没有上面几种窗常用,根据指标要求选择所需要的窗。以上几种窗都各有千秋,最大的不同是凯塞窗是一种最优窗,它的旁瓣幅度可以调节,也最为常用。而其他几种类型的窗则不可以,他们的参数是固定的。 2.2.1 窗函数法设计滤波器的思想

用窗函数法设FIR数字滤波器的基本思路是这样的:从时域出发,设计一个h(n)迫近我们想得到的hd(n)。我们将理想滤波器的单位响应在时域上的表达设为hd(n),这样则Hd(n)就是无限长,而且不是因果的,而且也不能直接作为FIR数字滤波器的单位脉冲响应。我们要想拥有一个因果的且是有限长的滤波器单位抽样响应h(n),其中最为简单的办法就是先将hd(n)往右移动,然后截断,这样就是有限长因果序列:h(n)=hd(n)w(n),然后用一合适的窗函数对其进行加权,作为FIR数字滤波器的单位脉冲响应。

6

皖西学院2014届本科毕业设计(论文)

但是,如果按照线性相位滤波器的要求,线性相位FIR数字滤波器的单位脉冲响应h(n)则必须要求是对称的,而且对称中心必须为滤波器的延时常数,即用矩形窗设计的FIR 低通滤波器,所设计滤波器的幅度函数不仅在通带,在阻带也表现出抖动现象,并且最大波纹大概为幅度的9%,这个现象叫做吉布斯(Gibbs)效应。为了去除吉布斯效应,设计人员通常使用其余种类的窗函数。用MATLAB软件设计FIR滤波器有很多方法以及对应的函数。窗函数设计法不只在数字滤波器的设计中占据重要的位置,同时还可以用来功率谱的估算。 2.2.2 常见窗函数简介

日常的工程应用常见的窗函数有以下几类: (1)矩形窗(Rectangle Window)

w(n)?RN(n) 它的频率响应和幅度响应分别为:

N?1W(ej?)?sinN(?/2)?j?2,WN?/2)

sin?(/2)eR(?)?sin(sin(?/2) (2)三角形窗(Bartlett Window)

?0?n?N?1w(n)??2n?N?1,?2N?12

?2?nN?1,2?n?N?1N?1 它的频率响应为:W(ej?)?2sin(N?/4)2?j?2N[sin(?/2)]e (3)汉宁(Hanning)窗,又称升余弦窗

w(n)?12[1?cos(2n?N?1)]RN(n) 它的频率响应和幅度响应分别为:

2π2?j(N?1W(ejω)?{0.5W)?0.25[WπR(ωR(ω?)?WR2)ωN?1(ω?N?1)]}e?W(ω)e?jωaW(ω)5W

?0.R(ω)?0.25[WR(ω?2πN?1)?W2πR(ω?N?1)](4)汉明(Hamming)窗,别称改善的升余弦窗

7

2.1) 2.2) 2.3) 2.4) 2.5)

2.6)

( (

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

w(n)?[0.54?0.46cos(2n? )]RN(n) (2.7)

N?1 它的幅度响应为:

W(?)?0.54WR(?)?0.23[WR(??2?2? )?WR(??)] (2.8)

N?1N?1(5)布莱克曼(Blankman)窗,又叫做二阶升余弦窗

它的幅度响应 :

w(n)?[0.42?0.5cos(2n?4n? )?0.08cos()]RN(n) (2.9)

N?1N?1W(?)?0.42WR(?)?0.25[WR(??

2?2?)?WR(??)]N?1N?1(2.10)

4?4??0.04[WR(??)?WR(??)]N?1N?1

(6)凯塞(Kaiser)窗

I0(?1?[1?2n/(N?1)]2) w(n)?,0?n?N?1 (2.11)

I0(?)

需要注明的是:β是一可选参数,它是用于选择主瓣幅度以及旁瓣衰落中间的互换关系的,通常来讲,β越大,则过渡带越宽,这样阻带越小,衰减也越大。

如果阻带的最小衰减设为As??20log10?s,则β的确定能够用以下面的公式:

?0????0.5842(As?21)0.4?0.07886(As?21)?0.1102(A?8.7)s?

As?2121?As?50 (2.12) As?50如果滤波器通带和阻带的波纹一样,也就是δp=δs时,滤波器的节数则可以通过下面公式来获得:

???s??p?式中:?F?2?2?

N?As?7.95 ?1 (2.13)

14.36?F伴随数字信号处理技术的不断进步,除了以上六种窗函数外,学者们现已提出多达几十种的窗函数,知名的如Chebyshev窗、Gaussian窗等。

众所周知,窗函数法所制作的滤波器的性能,主要是在于窗函数??n?的种类还有窗口长度N大小。在设计的时候,需要按照具体参数的要求,来选择满足要求的窗函数种

8

皖西学院2014届本科毕业设计(论文)

类以及窗口长度N。其中,几种常见种类的窗函数能够达到的阻带最小衰减和过渡带宽度如下表。

表1 各种窗函数的基本参数

窗函数 矩形窗 三角形窗 汉宁窗 哈明窗 不莱克曼窗 凯塞窗(α=7.865) 旁瓣峰值幅度/dB -13 -25 -31 -41 -57 -57 过渡带宽 4π/N 8π/N 8π/N 8π/N 12π/N 10π/N 阻带最小衰减/dB -12 -25 -44 -53 -74 -80 通过上表可以看到,前面五种窗的旁瓣峰值幅度都是固定的,所以被称为参数固定的窗函数。而凯塞窗的旁瓣峰值幅度这一参数却不是固定的,所以它是一种参数可调的窗函数,是一种最优窗函数,设计FIR数字滤波器时,凯塞窗教其他几种窗更为常用。 2.2.3 窗函数法的原理

为了设计一个低通FIR数字滤波器,需要寻求一系统函数H(z),使得它的频率响应H(ej?)迫近滤波器所要求的理想频率响应Hd(ej?),则其相应的单位脉冲响应为

hd(n):

?j???e,???c?j?Hd?e?????0,?c???? (2.14)

其中??N?1 2

1hd?n??2?

????Hde??j?1ed??2?j?????ce?j??ej??d??csin??c?n?a????n?a? (2.15)

如果期盼得到的滤波器的理想的频率响应函数为Hd?ej??,那么与它对应的单位脉冲响应则为:

1hd?n??2?

?? ??H?e?ed? (2.16)?jj?dhd?n?[8]??hn窗函数法的基本思想是用一有限长的单位脉冲响应序列迫近。因为

9

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

hd?n?通常都是无限长的,而且是非因果的,因而应该用窗函数??n?将

hd?n?截断,并对

其进行加权操作,则得到:

h?n??hd?n???n? (2.17)

h?n?就当做现实设计的FIR数字滤波器的单位脉冲响应序列,它的频率响应函数

H?ej??是:

He

????h?n?ej?n?0N?1j?n (2.18)

上面的公式中,N是所选窗函数??n?的长度。 2.2.4 窗函数法设计FIR数字滤波器的步骤

截断并且记权,是窗函数法设计FIR滤波器的核心思想,能使无限长的且是非因果的序列,变成有限长的脉冲响应序列。在很多日常的工程运用的时候,选频才是滤波器的最常用的功能,故而,相对相位和幅度响应在频率域中,用分贝值来表现,这才是指标中最常用的方式。

运用窗函数方法来设计一个FIR数字滤波器的常规过程如下:

(1)首先,需要挑选出窗函数的种类,同时还要估算出他的窗口长度N,估算出阶数M也可以,因为M=N-1。N或者M的估算是按照过渡带的带宽还有阻带的衰落因素来确定的。窗函数的种类是能够按照阻带的最小衰落参数As来单独确定的。窗函数的种类确定下来后,也就能够得出它的计算公式了。需要注意的是,得出的计算公式不是非常准确的,计算出来的N必须要在接下来的计算中进一步的改善。它的原则就是:既要满足阻带的衰落的指标,又要选择相对比较小的窗口长度。在窗函数的种类和窗口长度得到以后,使用Matlab软件中的相关函数计算出它的?(n);

(2)按照需要计算滤波器的理想频率响应计算理想单位脉冲响应hd(n),假如已经知道了需要计算滤波器的频率响应Hd(ej?),那么就可以用以下的傅里叶反变换式计算得到理想的单位脉冲响应:

1hd(n)?2?

??H??d(2.19) (ejw)ejwdw

(3)将理想单位脉冲响应跟窗函数相乘,即得到滤波器单位脉冲响应h(n);

10

皖西学院2014届本科毕业设计(论文)

(4)计算技术指标是否满足设计要求。为算出滤波器在频率域中的属性,需要使用freqz子程序,一旦不符合设计指标,需要按照具体的情况,适当调整窗函数种类或者长度,一直到符合指标。

使用窗函数法设计FIR数字滤波器流程如下图所示。

开始 读入窗口长度N 计算hd(n) 调用窗函数子程序求w(n) 计算h(n)= hd(n) w(n) 调用子程序(函数)计算H(k)=DFT[h(n)] 调用绘图子程序(函数)绘制H(k)幅度相位曲线 结束 图1 窗函数法设计FIR数字滤波器流程图

2.2.5 窗函数法设计FIR数字滤波器实例

题的要求为:低通滤波处理一个模拟信号,在通带0≤f≤2kHZ上的衰落不大于1分贝,阻带3kHZ≤f≤∞上衰落大于30分贝。需要对模拟信号采样以后,运用线性相位FIR数字滤波器满足上面所说的滤波,采样频率Fs=10kHZ。

使用窗函数法设计一个符合技术指标的FIR数字低通滤波器,为了使运算量足够小,制作出来的滤波器阶数越低越好。

设计步骤:

(1)按照阻带衰减和过渡带的参数指标,挑选出满足要求的窗函数,并且要估算出窗口长度N。

此题中要求设计的FIR数字滤波器的各个技术参数为: 通带截止频率:

11

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

ωp?2πfp2000?2π??0.4π Fs10000

阻带截止频率:

ωs?

2πfs3000?2π??0.6π Fs10000阻带最小衰减:

αs?30dB

(2) FIR数字低通滤波器的设计采用窗函数法,为了减小运算的工作量,希望滤波器的阶数越低越好,故应选择凯塞窗。根据教材中公式(7.2.16)计算凯塞窗的控制参数为:

α?0.5482(αs?21)0.4?0.07886(αs?21)?1.5163

参数要求的过渡带宽度Bt?ωs?ωp?0.2π,按照课本里的公式(7.2.17)算出滤波器阶数是:

M?αs?830?8??15.3235

2.285Bt2.2885?0.2π取符合参数指标的最小的整数M=16。因此h(n)的长度是N=M+1=17。并且理想低通滤波器的通带截止频率为:

ωc?ωs?ωp2?0.5π

所以由公式(2.16)和公式(2.17)可以得到:

h(n)?hd(n)?(n)?sin[0.5?(n??)]?(n)

?(n??)其中,

??N?1?82,而且?(n)是长度为17的凯塞窗函数。

程序设计: fp=2000; fs=3000;

12

皖西学院2014届本科毕业设计(论文)

Fs=10000; rs=30; wp=2*pi*fp/Fs; ws=2*pi*fs/Fs;

Bt=ws-wp; %计算过渡带的带宽

alph=0.5482*(rs-21)^0.4+0.07886*(rs-21); %根据公式(7.2.16)计算凯塞窗的控制参数α M=ceil((rs-8)/2.285/Bt); %根据公式(7.2.17)计算凯塞窗的阶数M wc=(wp+ws)/2/pi; %算出期望的高通滤波器的通带截止频率 hn=fir1(M,wc,kaiser(M+1,alph)); %运用凯塞窗算出低通FIR数字滤波器的h(n) subplot(2,2,1);

stem(hn,'filled'); %做出FIR数字低通滤波器的h(n)波形 xlabel('n'); ylabel('hn'); title('hn波形'); w=0:0.01:pi; H=freqz(hn,1,w); subplot(2,2,2);

plot(w/pi,abs(H));grid on; %绘出FIR数字低通滤波器的幅频响应函数曲线 xlabel('w/π'); ylabel('幅度');

title('幅频响应函数曲线'); subplot(2,2,3);

plot(w/pi,20*log10(H)); %绘出FIR数字低通滤波器的损耗函数曲线 xlabel('w/π'); axis([0 1 -60 5]) ylabel('20lg|H|'); title('损耗函数曲线');

13

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

运行程序得到hn的17个值,具体数据见下表:

表2 程序运行结果

hn -0.0000 -0.0249 0.0000 0.0482 0.5083 -0.0000 0.3200 0.0000 -0.0974 -0.0000 -0.0000 -0.0974 0.0482 0.0000 0.0000 0.3200 -0.0249 低通FIR数字滤波器的hn波形,幅频响应函数曲线,相频响应函数曲线以及损耗函数曲线如下图。

图2 FIR数字低通滤波器的h(n)波形、幅频响应和损耗函数曲线

2.3 频率采样法设计FIR数字滤波器

频率采样法设计FIR滤波器的基本思想就是让所设计的滤波器在离散抽样频率点上的频率属性和理想的滤波器在这些点上的特性和数值相接近[9]。这种方法比较简单,方便,易于理解,但是也有不令人满意的方面:滤波器的边界频率难以控制且不能分别控制通带和阻带的幅度,这就导致了不高的性价比。 2.3.1 频率采样法设计FIR数字滤波器原理

频率采样法的设计思路为:设希望逼近的滤波器频率响应函数Hd(ej?),对其在

??0?2?之间进行等间隔抽样,抽取N点,则可以得到Hd(k):

Hd(k)?Hd(ej?)|??2?k/N n=0,1,2,……,N-1 (2.20)

14

皖西学院2014届本科毕业设计(论文)

然后再对其进行N点IDFT,可以得到h(n):

1 h(n)?Nk?0?H(k)WdN-1-knN n=0,1,2,……,N-1 (2.21)

若将h(n)作为需要制作的FIR数字滤波器函数的脉冲响应,则其系统函数H(z)为: H(z)??h(n)z (2.22)

n?0N?1?n同时按照频率抽样原理,利用频率域进行抽样数据复原原信号Z变换,得到H(z)的内插表示公式:

1?Z?N H(z)?NHd(k)??k?1 (2.23) k?01?WNZN?1这个公式就是直接用频率抽样值形成的滤波器的系统函数。

需要注意的是,在设计具有线性相位的FIR数字滤波器时候,频率抽样序列应当满足一定的约束条件。同时,设计人员还需要关注误差逼近的问题以及改进措施。 2.3.2 频率采样法设计FIR数字滤波器步骤

经过对频率采样法设计FIR数字滤波器原理的研究,可以归纳出频率采样法的一般设计步骤。

(1)按照阻带的最小衰减?s,挑选过渡带的抽样点数目m;

(2)明确过渡带的带宽Bt,并估计出频域采样的数目即滤波器的长度N。一旦需要增多过渡带抽样点m个,此时过渡带的带宽则近乎变为了(m?1)2?N。如果N确定后,如果m变得越大,则过渡带变得越宽。如果过渡带的带宽确定是Bt,要求

(m?1)2?N?Bt,滤波器的长度N必须满足以下公式:

N?(m?1)2? (2.24) Bt(3)构造出一我们期望迫近的频率响应函数:

j??j?(N?1)/2 Hd(e)?Hdg(?)e (2.25)

(4)根据公式(7.3.1)来进行频域采样: H(k)?Hd(e)|??2?k/N?Hg(k)e Hg(k)?Hdg(

j??jN?1?kN k=0,1,2,…,N-1 (2.26)

2?k) k=0,1,2,…,N-1 (2.27) N15

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

同时还要加入过渡带抽样;

(5)对H(k)进行N点IDFT,则得到第一类线性相位的FIR数字滤波器的单位脉冲响应:

1N?1?kn h(n)?IDFT[H(k)]??H(k)WN n=0,1,2,…,N-1 (2.28)

Nk?0(6)检验设计结果是否达到设计指标。

需要了解的是,上述所列的设计过程中所涉及的计算是相当繁琐的,因此设计师们通常借助计算机来辅助设计

[10]

。最为常用的就是MATLAB程序语言。

2.4 三种设计方法的优点与不足

频率采样设计法和窗函数法原理都比较简单容易理解,比较容易实现出来。但是他们也存在一些相同的缺点,比如存在较大的资源浪费。等波纹最佳逼近法则是一种最优化的设计方法,它克服了前两种方法的缺点,可以使最大误差(波纹的峰值)最小化。详细的优点与缺点见下表。

表3 三种方法的优劣比较

窗函数法 优点 缺点 1、简单方便,易于实现 2、窗的种类丰富 3、制作方法固定 1、滤波器边带频率难控制 2、通、阻带波纹幅度相同

频率采样法 1、滤波器边带频率难控制 灵活方便,易于实现 2、通、阻带波纹幅度相同 3、滤波器性价比较低 1、最大误差最小化 2、整个逼近频段上误差均匀 分布 原理数学证明复杂 等波纹最佳逼近法 通过对上面设计FIR数字滤波器的三种方法的研究可以看出,设计FIR数字滤波器的方式有很多种,可供设计人员的选择并不唯一。滤波器设计师可以根据不同的技术指标、不同的用途需求,来选择不同的设计原理设计、制作滤波器。当然,设计出的滤波器的性能方面也就拥有不同的侧重,这为以后的工程需要带来很大的便利。

16

皖西学院2014届本科毕业设计(论文)

就制作原理来说,窗函数法的思想最为简单,模式比较固定,只要确定几个相关参数后,就可以按照参数来选择窗的种类,接下来的设计、制作过程就是按照固定程序来就可以了,计算机完全可以代替设计人员的工作。

3 FIR数字滤波器的MATLAB实现与仿真

3.1 FIR滤波器的MATLAB实现

上文已经详细的说明了FIR数字滤波器的三种方法的原理、步骤,这里就不一一重复。现在按照给出的设计要求,运用Matlab设计一个符合要求的滤波器,并对它进行建模、仿真。

现在要求设计一带通滤波器,在去除高斯白噪音后,得到一个管用的信号

x(t)?sin162?t.在高斯白噪声的背景下,要检测出有用信号,要求提高滤波器频率选择

性,同时通带到阻带间的衰减还要快。我们现在用汉民窗来设计一个阶数是100的FIR 数字滤波器来实现我们的设计要求。 3.1.1 FDATool工具箱介绍

FDATool是MATLAB软件中自带的可以专门提供滤波器设计的工具箱,几乎可以设计出所有的滤波器,它的界面包含两部分,如下图所示。

图3 FDATool工具箱界面图

它的右上局部是属性区,用于展示滤波器的各个属性图,比如滤波器的幅频响应特性图、相频特性响应图等。剩下部分是设计区,控制滤波器的各个参数,主要分为:滤波器类型(Resoponse Type)参数、设计方法(Design Method)参数、滤波器阶数(Filter

17

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

Order)参数、频率特性(Frenquency Specifications)参数和幅度特性(Magnitude Specifications)参数。 3.1.2 Simulink 环境介绍

Simulink是一个软件包,它合成了系统动态的建模,仿真,综合分析等功能。Simulink现在可以处理多种系统,例如离散、连续系统,线性、非线性系统等。已经运用在电力、控制、通信、信号处理等多个工程领域[11]。它的界面如下图所示。

图4 Simulink 工作界面

3.2 FIR滤波器建模

现在就开始用FDATool工具箱设计一个符合要求的滤波器,Respone Type选择Bandpass(带通),Design Method选FIR Window,Filter Order选择Specify Order(阶数),数据填100,Window选择Hamming(汉明窗),抽样频率Fs为1000HZ,通带截止频率Fc1为75HZ,阻带截止频率Fc2为100HZ,具体选择见下图。

18

皖西学院2014届本科毕业设计(论文)

图5 带通滤波器设计

各个参数填写完毕后,点击界面下方的Design Filter按钮,就可以看见所设计的滤波器的幅频响应图,如上图。点击Analysis 按钮,还可以看到其他特性图,比如相频特性图,见下图,组延迟、脉冲响应、零极点配置等特性。设计完成以后,把结果保存为一个名为Hamming.fda的文件。

图6 带通滤波器相频特性图

下面开始进行建模。首先在Simulink环境下新建一个文件,将正弦信号源、随机噪

19

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

声源、加法器、显示器等部件布置好,然后按下图的位置连线。仿真模型即为下图。其次将上文设计好的Hanmming窗封装文件Hanming.fda文件导入到Digital Filter Design中。让Sine Wave产生x(t)?sin162?t信号源,Randow Source 产生随机噪声信号。这样,符合要求的FIR数字滤波器的模型即搭建完毕。通过选择Simulation中的Start按钮就可进行仿真,通过Scope和Spectrum Scope 按钮观察滤波前后的信号源的各种特性波形。

图7 FIR带通滤波器Simulink仿真模型

3.3 FIR滤波器仿真

滤波器的模型搭建完毕后,接下来就可以进行仿真了。点击Simulation按钮进行仿真运行后,依次点击Spectrum Scope和Spectrum Scope1按钮,会弹出两个对话框,这样就可以看到滤波前和滤波后信号的频域波形,分别见下图图8和图9。同理,点击Scope图标,也就可以看见滤波前后信号的时域特性波形图,见下图图10。

20

皖西学院2014届本科毕业设计(论文)

图8 滤波前信号频域特性波形

图9 滤波后信号频域波形图

21

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

图10 滤波前后信号时域波形对比图

通过仿真后的图片可以看出,滤波前的信号几乎没有办法分辨出信号源和噪声源,但是,信号通过滤波器滤波后,有效的抑制了噪声信号,提高了有用信号的检出概率,提高了信号质量,达到了我们预期的目的。通过Simulink环境仿真以后,可以有效的检验我们所设计的滤波器的实际滤波性能,这样,就可以根据日常实际工程应用的情况,选择不同的信号输入,分析检测不同信号滤波后的改善情况,为以后实际的工程应用提供依据。

通过FIR数字滤波器的建模、仿真可以发现,使用MATLAB软件的相关工具,如Simulink工具、FDATool工具箱进行滤波器的设计、仿真,可以快速、高效的满足设计需求,方便、快捷,极大的减轻了滤波器设计人员的工作量[12]。在设计的过程中,可以随时对比不同类型的滤波器的性能,达到最优的性能设计。提高了滤波器的合理利用,对提高工程技术人员的分析问题,解决问题的工作能力有很大的帮助。

4 FIR和IIR数字滤波器的比较

FIR数字滤波器在数字信号处理中比IIR滤波器应用的广泛,原因有多方面,最主要还是因为FIR滤波器在截止频率的边缘陡峭性能上虽然比不上IIR数字滤波器,但是,考虑到FIR滤波器从严的线性相位属性和没有IIR滤波器有稳定性方面的问题,所以FIR滤波器能在数字信号处理方面比IIR数字滤波器得到更加广泛的应用。两者之间还有哪些异同点,下面就来研究。

22

皖西学院2014届本科毕业设计(论文)

4.1 IIR数字滤波器介绍

IIR滤波器全称叫无限长脉冲响应滤波器,或者也可以称作递归滤波器。IIR数字滤波器的结构是递归的,结构上含有反馈环路。因为在计算过程中的四舍五入处理,所以使的误差连续的累积,有时甚至会照成微弱的寄生抖动。

IIR数字滤波器在其设计上能够凭借原有的模拟滤波器的基础,比如巴特沃斯滤波器、契比雪夫滤波器和椭圆滤波器这些滤波器,这是因为有现有的设计数据或图形供参考,因此这个设计工作量不多,也不要求计算的器材有多么的好。在设计IIR数字滤波器时,工程师能够按照参数先设计出模拟滤波器,再按照一定的数学转换,就能够把模拟滤波器的变成成数字滤波器的。

由于难以控制IIR数字滤波器的相位属性,相位的要求非常严格时,需要加相位校准网络。

4.2 IIR和FIR滤波器比较

FIR数字滤波器跟IIR数字滤波器他们在性能、结构、设计方法等方面都有很大的不同。

首先,从结构上来说,IIR数字滤波器的结构是递归型的,为了保证系统的稳定,极点必须要在单位圆内。其次,在递归结构中,由于在运算的时候会对序列采取舍入操作,因此这种有限字长有时可能会引起寄生震荡。不同的是,FIR数字滤波器采用的不是递归结构,因此,不是在理论上还是在实际的运算中,有限字长效应都不引起不稳定的因素,而且计算差错照成的输出信号噪声的功率教IIR滤波器来说也不大。同时,FIR数字滤波器的运算可以采用快速傅里叶变换(FFT)算法来实现,在保证阶数一样时,计算速率可以大大的提高[13]。

其次,再从性能上说,IIR数字滤波器的系统函数极点能够在单位圆的所有位置,所以能够使零点和极点相结合,就可以用比较低的阶数得到比较高的选择性,计算量小,因此更加经济高效。但是应该看到,这个优势却是牺牲了相位的线性。如果给定这两种滤波器一样的幅频指标,FIR数字滤波器的阶数一般来说比IIR滤波器会高出许多倍,这样就造成较高的成本和较大的信号时延;但是假如按照一样的选择特性以及线性相位的参数需要,IIR数字滤波器就需要增加全通网络来校正相位,这样的话也就大大增加了滤波器的复杂程度[14]。

最后,从设计方法上来说,FIR滤波器的计算通带和阻带的衰减等无显式的表达式,

23

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

同时它的边界频率也不容易进行精确控制。一般来说,FIR滤波器的设计只有计算程序可以依循,所以对计算工具要求比较高,但是在现在,计算机可以很轻易的实现其设计计算。IIR滤波器的设计则可以借助一些成熟的模拟滤波器的设计成果,因此计算量很小,对计算所需的器材也没有较高的要求,但是,IIR滤波器固然制作起来很容易,但是首要是用来制作拥有片断常数特性的滤波器,比如高通、低通和带通等滤波器。FIR滤波器则比较灵活。

经过上面简要的对比,能够看见FIR滤波器和IIR滤波器各有各的有点,各有各的缺点,因此在日常现实使用中应该加以全面考虑来选择。

5 总结和展望

当今,滤波器的应用是非常广泛的,尤其是FIR数字滤波器,如今的许多数字信号处理系统都要求要具有线性相位的特点,比如图像处理。FIR滤波器在这方面比IIR滤波器具有很大优势,可以很轻松的设计出具有严格的线性相位的系统。因为FIR滤波器的冲击响应函数是一个有限长的序列,它的系统函数是个多项式,极点的位置大多是在原点的位置,所以FIR滤波器永远都是稳定的系统。

数字信号处理系统具有许多优点,比如精确、灵活、设备尺寸小,抗干扰性强、速度快和造价低等特点,这些都是模拟系统所无法达到的。比较上面的设计结果,可以得到以下结论:(1)在等波纹最佳逼近设计法,窗函数设计法,频率采样设计法这三种方法设计FIR数字滤波器,窗函数法叫其他两种方法比较灵活方便和高效。(2)种类不一样的窗函数对信号的频谱照成的影响也会不同,因为不一样类型的窗引起的泄露不一样,所以频率分辨能力就不同。(3)使用MATLAB软件设计滤波器,可以更直观的看到设计效果。MATLAB软件较传统的设计滤波器方法灵活方便,速度快,方便了开发设计。

运用MATLAB软件中的FDATool工具箱,Simulink工具包等工具进行滤波器的建模、仿真,可以极大的节省设计人员的工作量,方便、快捷、高效的设计出所需要的滤波器,并能快速的对其进行性能检测,是现在最为主流的滤波器设计工具。

参考文献:

[1] 高西全,丁玉美.数字信号处理[M].西安电子科技大学出版社,2008:185~197. [2] 薛山.MATLAB基础教程[M].清华大学出版社,2011:96~109.

[3] 管爱红.MATLAB基础及其应用教程[M].电子工业出版社,2010:35~39.

24

皖西学院2014届本科毕业设计(论文)

[4] 罗军辉. MATLAB 7.0在数字信号处理中的应用[M]. 机械工业出版社,2005:20~

28.

[5] 丁磊,潘贞存,丛伟.基于MATLAB信号处理工具箱的数字滤波器的设计与仿真[J].

继电器,2003,31(9):48-51.

[6] 王军伟,任良超.基于频率采样技术的FIR数字滤波器的优化设计[J].仪器仪表学

报,2005,26(8):475-477.

[7] 刘春雅.基于MATLAB与FPGA的FIR数字滤波器设计与仿真[J].电子设计工程,

2012,19(17):119-121.

[8] 柴政,任海平.关于数字滤波器设计方式的探讨[J].通信电源技术,2007,16(1):

33-35.

[9] 张萍.基于MATLAB与DSP的FIR数字滤波器的设计[J].中国科技信息,2007,20

(23):80-81.

[10] 杨大柱.MATLAB环境下FIR数字滤波器的设计与仿真[J].电子技术应用,2006,11

(9):101-103.

[11] 吕川.基于MATLAB的FIR数字滤波器设计[J].科技创新导报,2009,9(25):48-49. [12] 马月红,马彦恒,王雪飞.基于MATLAB的FIR数字滤波器设计与仿真[J].电子测量

技术,2010,21(10):20~34.

[13] 尹玉兴,刘振坚,项止武.基于Matlab的FIR数字滤波器设计与仿真[J].工矿自

动化,2011,10(12):60-63.

[14] 杨守卫.FIR数字滤波器应用分析探讨[J].机电信息.2011,12(15):47-49. [15] 龙安,陈华.基于MATLAB的频率采样法设计FIR滤波器[J].广西科学院学报,2011,

27(1):68-70.

[16] 彭红平,杨福宝.基于Matlab的FIR数字滤波器设计[J].武汉理工大学学报,

2005,10(5):275-278.

25

致谢

光阴似箭,岁月如梭,充实但又短暂的大学四年生活即将结束。回想走过的点点滴滴,心中万分不舍,感慨良多。

首先,本篇论文是在傅思勇老师的精心指导和严格的要求下完成的。老师周密的教学态度,广博的学科知识,平易近人的人格魅力以及不厌其烦的崇高的职业道德对我产生了很深的影响,也给了我很大的启发。他在繁忙的日常工作中腾出时间来指导、检查和改正我的毕业设计,从论文最开始的选题到论文最后的完成,傅老师不仅给了我许多帮助和指导,还对我以后的升学和工作、生活等方面给了我很多重要的建议,是我学到了很多接人待物、为人处世的原则道理。在此,向给了我很大帮助的傅老师表示衷心的感谢。

另外,还要感谢那些在大学期间所有教授我知识的老师,如果不是因为你们精心的教育,我就不会获得扎实的通信工程专业的相关知识,这些知识正是我的毕业设计可以顺利完成的坚实基础。在这次论文的写作过程中,我还参考了相关的书籍以及论文,在这里一起向这些作者表示深深的感谢。在这次的论文写作过程中,我不仅巩固了所学到的专业知识,同时还了解了一些专业外的相关知识。通过查阅相关书籍、文献资料,还培养了自己的动手和自学能力。还使自己由以前的被动填鸭式的学习转换到现在的主动学习,学会了如何更好的使理论和实践相结合。此外,我还学到了做事所要具备的态度和心态。做学问不能有任何马虎,做事情要有耐心,有毅力,遇到困难不要放弃,坚持就一定会成功。同时我们还需要与人合作,只有合作才能使我们事半功倍。总而言之,在本次的毕业设计创作期间,我收获了许多,这些都会对我以后的人生路有很大的帮助。

最后,我要感谢通信工程1004班的所有同学。是你们在我难过的时候给我鼓励,在我开心的时候跟我分享。大学四年美妙的回忆都有大家的身影。祝所有人都前程似锦。

由于专业知识的有限,同时还缺少实践,本文难免会有些缺陷和不足之处,在此恳请各位老师批评、斧正。最后,再一次谢谢我的大学和全体曾经帮助我的老师、同学和朋友们,感谢你们。

本文来源:https://www.bwwdw.com/article/dlof.html

Top