数字滤波器设计及软件开发.docx

上传人:b****4 文档编号:3502236 上传时间:2022-11-23 格式:DOCX 页数:49 大小:897.05KB
下载 相关 举报
数字滤波器设计及软件开发.docx_第1页
第1页 / 共49页
数字滤波器设计及软件开发.docx_第2页
第2页 / 共49页
数字滤波器设计及软件开发.docx_第3页
第3页 / 共49页
数字滤波器设计及软件开发.docx_第4页
第4页 / 共49页
数字滤波器设计及软件开发.docx_第5页
第5页 / 共49页
点击查看更多>>
下载资源
资源描述

数字滤波器设计及软件开发.docx

《数字滤波器设计及软件开发.docx》由会员分享,可在线阅读,更多相关《数字滤波器设计及软件开发.docx(49页珍藏版)》请在冰豆网上搜索。

数字滤波器设计及软件开发.docx

数字滤波器设计及软件开发

摘要

滤波器在数字信号处理中具有重要的作用。

传统的设计方法存在效率低、方法复杂等缺点,不能满足高效高精度的需要。

利用MATLAB7.6软件强大的计算能力,可以快速设计出符合要求的滤波器并对性能参数进行方便的修改及仿真,相对传方式具有较大的优势。

本文主要深入研究了数字滤波器的设计理论及方法,完成了VB6.0界面下MATLAB7.6语言设计的数字滤波器的实现。

数字滤波器分为有限脉冲响应数字滤波器(FIR)和无限脉冲响应数字滤波器(IIR)。

本次设计主要介绍了利用窗函数设计FIR滤波器的方法,即根据给定的滤波器技术指标,确定有限长单位脉冲序列。

并举例用MATLAB7.6进行实现和仿真,指出基于MATLAB7.6环境下进行数字滤波器的设计简便易行。

从VB6.0界面下直接调用MATLAB7.6语言设计的数字滤波器既利用了VB6.0能够快速有效地构造Windows应用程序的优点,又利用了MATLAB7.6强大的数学和图像平台从而增加了用户对数字滤波器幅频和相频的分析的直观性和参数输入的方便性。

关键词:

数字滤波器;无限冲激响应;有限冲激响应

 

Abstract

Digitalfilterplaysanimportantroleindigitalsignals.Theconventionalwayhavesomedisadvantages;forexample:

lowerefficiency,complexmethodandsoon.MATLAB7.6haveapowerfulcompute,usingMATLAB7.6candesignfiltersthatfixedtotheneedsquickly,performanceparameterscanbeeasilymodifiedandbesimulated.Ithasmoreadvantagecomparedtothetraditional.Inthispaper,thebasicdesigningtheoriesandmethodsoftheDigitalFilterarereaserched,theDigitalFilterisdesignedbytheMATLAB7.6languagefromtheinterfaceofVB6.0directly.digitalfilterisdigitalsignalprocessingintheimportantpartof.Digitalfilteraredividedintofiniteimpulseresponsedigitalfilter(FIR)andtheinfiniteimpulseresponsedigitalfilter(IIR).IntroducedtheuseofwindowfunctiondesignofFIRfiltersisproposed,thatis,accordingtothegivenfiltertechnologyindex,surelimitedlongunitpulsesequence,bychoosingthelengthofthefilterandwindowfunction.AndanexampletorealizeandsimulationwithMATLAB7.6,andpointsoutthatbasedontheMATLAB7.6environmentforthedesignofthedigitalfilterissimpleandeasy.theDigitalFilterwhichisdesignedbytheMATLAB7.6transferedfromtheinterfaceofVB6.0makeuseoftheadvantageofVB6.0whichcanstructureWindowsapplicationprocedurequicklyvalidly,andmadeuseoftheMATLAB7.6strongmathematicsandthepictureterracestothusincreasetheconvenientnessofanalyzingtheDigitalFilterextentandtheconvenientnessofparameterimportation.

Keywords:

theDigitalFilter;InfiniteImpulseResponse;FiniteImpulseResponse

 

引言

滤波就是有选择性地提取或去掉(或削弱)某一段或某几段频率范围内的信号,数字滤波器是一种用来过滤时间离散信号的数字系统,它是通过对抽样数据进行数学处理来达到选频目的。

数字滤波器从实现方法上可分为IIR(无限冲激响应)和FIR(有限冲激响应)两种结构,FIR滤波器最大的优点是可设计成线性相位,FIR滤波器可通过窗函数法、频率抽样法和最优化设计法来设计。

自二十世纪60年代以来,随着计算机和信息学科的飞速发展,数字信号处理技术(DigitalSignalProcessingDSP)应运而生并迅速发展,目前DSP技术可说是应用最快、成效最为显著的新学科之一,数字滤波器在数字信号处理的各种应用中发挥十分重要的作用,它是通过对采样数据信号进行数学运算,数字滤波器用硬件实现的基本部件包括延时器乘法器和加法器;用软件来实现时,它只是一段线性卷积程序。

软件实现的优点是系统函数具有可变性,仅依赖于算法结构,并且易于获得理想的滤波性能,所以软件滤波在滤波器的使用中起到了越来越多重要的作用。

各高级语言在设计和实现滤波器当中都有一整套的成熟的程序组。

滤波器软件设计的实现在信号处理软件设计和使用当中占有十分重要的地位和作用。

利用MATLAB7.6的强大运算功能,基于MATLAB7.6信号处理工具箱(SignalProcessingToolbox)的数字滤波器设计法可以快速有效的设计由软件组成的常规数字滤波器,设计方便、快捷,极大的减轻了工作量。

在设计过程中可以对比滤波器特性,随时更改参数,以达到滤波器设计的最优化。

VisualBasic6.0是基于窗体的可视化程序开发环境,简单、易用,利用VB6.0能够快速有效地构造Windows应用程序。

本设计就是介于VB6.0和MATLAB7.6二者各自的特点,使用一种方法将它们结合起来,实现图形和界面的有机结合,这样将给实际工程应用中将带来极大方便。

利用MATLAB7.6设计数字滤波器有着广泛的应用前景。

 

第一章数字滤波器总体设计思路及方案制定

1.1数字滤波器软件设计的意义及目的

数字信号处理(DSP)包括两重含义:

数字信号处理技术(DigitalSignalProcessing)和数字信号处理器(DigitalSignalProcessor)。

数字信号处理(DSP)是利用计算机或专用处理设备,以数值计算的方法、对信号进行采集、滤波、增强、压缩、估值和识别等加工处理,借以达到提取信息和便于应用的目的,其应用范围涉及几乎所有的工程技术领域。

数字滤波器是数字信号处理的重要组成部分,可作为应用系统对信号的前置处理。

滤波是现代数字信号处理的重要研究内容,在信号分析、图像处理、模式识别、自动控制等领域得到了广泛应用。

目前Wiener滤波、Kalman滤波和自适应滤波等一些线性滤波方法已经得到了很快的发展,其中自适应滤波器是目前数字滤波器领域中最为活跃的分支。

随着科学技术的发展,电话,光缆,微波等通信方式已发展得日益完善,语音质量空前提高.但在某些领域,周围噪声比较大,所需的语音信号很容易被周围噪声所污染,并且随着现代数字信号处理技术的发展,非线性数字信号处理方法在信号处理领域中的地位和作用越来显得重要了。

线性数字信号处理方法虽然在理论上比较成熟,且实现相对简单,但对非线性问题的处理在大多数情况下不是十分理想。

近二十年来,非线性数字信号处理技术已取得了长足进展,其中包括对非线性数字滤波器的研究。

它们不但有重要的理论意义,而且有广阔的应用前景。

1.2总体设计思路及方案制定

1.2.1数字滤波器的基本分析

作为线性时不变系统的数字滤波器可以用系统函数来表示,而实现一个系统函数表达式所表示的系统可以用两种方法:

一种方法是采用计算机软件实现;另一种方法是用加法器、乘法器、和延迟器等元件设计出专用的数字硬件系统,即硬件实现。

不论软件实现还是硬件实现,在滤波器设计过程中,由同一系统函数可以构成很多不同的运算结构。

对于无限精度的系数和变量,不同结构可能是等效的,与其输入和输出特性无关;但是在系数和变量精度是有限的情况下,不同运算结构的性能就有很大的差异。

因此,有必要对离散时间系统的结构有一基本认识。

IIR滤波器的基本结构

一个数字滤波器可以用系统函数表示为:

(1-1)

由这样的系统函数可以得到表示系统输入与输出关系的常系数线形差分程为:

(1-2)

可见数字滤波器的功能就是把输入序列x(n)通过一定的运算变换成输出序列y(n)。

不同的运算处理方法决定了滤波器实现结构的不同。

无限冲激响应滤波器的单位抽样响应h(n)是无限长的,其差分方程如(1-2)式所示,是递归式的,即结构上存在着输出信号到输入信号的反馈,其系统函数具有(1-1)式的形式,因此在z平面的有限区间(0<︱z︱<∞)有极点存在。

FIR滤波器的基本结构

FIR滤波器的单位抽样响应为有限长度,一般采用非递归形式实现。

通常的FIR数字滤波器有横截性和级联型两种。

1.2.2总体思路分析

对数字滤波器的分析,主要是考察它再频域和时域两个方面体现的一些特性。

频域:

1.幅频特性,相位特性,群延迟特性。

2.舍入噪声(平均噪声功率、噪声譜)。

时域:

1.冲激响应,阶跃响应,对任意输入的时间响应。

2.极限环。

为了描述和分析这些特性,需要有描述系统的方法,主要有:

1.节点方程式。

2.混合方程式。

3.状态方程式。

4.传输函数。

从包含的输入输出关系信息看,1到4逐渐增多,如能得到4的传输函数,则可以推出频域时域输入输出关系特性。

从包含的系统结构信息量看,4到1逐渐增多,只要知道节点方程式,就可画出系统结构,反之亦然。

这集中描述方法式可以相互转化的,比如从状态方程可以推出传递函数。

从节点方程可以推出状态方程等等。

我们的兴趣主要是在输入输出关系上,所以只讨论传递函数。

传递函数H(z)以知后,则可以确定系统的频响为:

(1-3)

其中

分别是幅频特性和相位特性。

(1-4)

对于无失真的传输系统,有

(1-5)

这就是说,幅频特性为常数,信号通过线性系统后个频率分量的相对大小保持不变,没有失相位失真。

相位特性为线性,是对应时域方程的时延量为常数

(1-6)

即系统对个频率分量的延迟时间相同,这就保证各频率分量的相对位置不变,没有相位失真。

上面我们讨论的时分析数字滤波器的一般方法,下面来看一个有关数字滤波器的设计问题。

 1.3.2设计方案制定

图(1-1)设计方案制定流程图

 

第二章数字滤波器概述

2.1数字滤波器概述

(2-1)

数字滤波器是指完成信号滤波处理功能的,用有限精度算法实现的离散时间线性非时变系统,对其输入是一组数字量,其输出是经过变换的另一组数字量。

因此,数字滤波器本身既可以是用数字硬件装配成的一台完成给定运算的专用的数字计算机,也可以将所需要的运算编成程序,让通用计算机来执行。

数字滤波器和模拟滤波器相比,因为信号的形式和实现滤波的方法不同,数字滤波器具有比模拟滤波器精度高、稳定、体积小、重量轻、灵活、不要求阻抗匹配等优点。

数字滤波器,输入输出均为数字信号,通过一定的运算关系,改变输入信号中所含频率成分的相对比例,或则滤除某些频率成分的器件。

对于数字滤波器而言,若系统函数为H(z),其脉冲响应为h(n),输入时间序列为x(n),则它们在时域内的关系式如下:

(2-2)

在Z域内,输入和输出存在如下关系:

式中,X(z)、Y(z)分别为x(n)和y(n)的Z变换。

(2-3)

在频域内,输入和输出则存在如下关系

式中,H(jω)是数字滤波器的频率特性;Y(jω)X(jω)分别为x(n)和y(n)的频谱,而

为数字角频率。

2.2数字滤波器的分类

数字滤波器可以有很多种分类方法,但总体上可分为两大类。

一类称为经典滤波器,即一般的滤波器,其特点是输入信号中的有用成分和希望滤除的成分占用不同的频带通过合适的选频滤波器可以实现滤波。

例如;若输入信号中有干扰,信号和干扰的频带互不重叠,则可滤出信号中的干扰得到纯信号。

但是,如果输入信号中信号和干扰的频带相重叠,则干扰就不能被有效的滤出。

另一类称为现代滤波器,如维纳滤波器、卡尔曼滤波器等,其输入信号中有用信号和希望滤除的成分频带重叠。

对于经典滤波器,从频域上也可以分为低通、高通、带通和带阻滤波器。

从时域特性上看数字滤波器还可以分为有限冲激响应数字滤波器(FIR)和无限冲激响应数字滤波器(IIR)。

对于有限冲激响应数字滤波器(FIR),其输出y(n)只取决于有限个过去和现在

(2-4)

的输入,x(n),x(n-1),…,x(n-m),滤波器的输入输出关系可表示为

对于无限冲激响应数字滤波器(IIR),它的输出不仅取决于过去和现在的输入,而且还取决于过去的输出,其差分方程为

(2-5)

该差分方程的单位冲激响应是无限延续的。

2.3滤波器的表达方式

在线性系统理论中,系统表示一般的数学模型包括有:

函数模型(系统外部模型),状态方程模型(系统内部模型)和零极点增益模型等。

这些数学模型之间有着内在的等效关系,使用在不同场合有其各自的优势。

1)滤波器的传递函数模型

(2-6)

一个线性时不变(LTI)数字滤波器可以用以下的常系数线性差分方程来表示:

式中x(n)和y(n)分别表示输入和输出序列,ai和bi是滤波器系数。

当(2-1)式中bi系数全为零时,即:

(2-7)

则称该滤波器为非递归型滤波器,此时系统的输出与输入有关。

这种滤波器没有极点,故称之为全零点滤波器。

当bi不完全为零时,即输出不仅与输入有关,而且与过去的输出有关,则称这种滤波器为递归型滤波器。

设式(2-6)中输入信号x(n)与输出信号y(n)在n=0以前处于零起点状态,则

有:

(2-8)

(2-9)

式中的bi=1,对上式两边进行z变换,得到:

(2-10)

得到系统的脉冲传递函数为:

对LTI系统来说,上式中

均为常数。

这种系统在MATLAB当中可以用分子和分母的系数,即滤波器系数构成的两个向量来唯一确定:

(2-11)

num=[a1,a2,a3,…….,am]

(2-12)

den=[b1,b2,b3,……bm]

可以对传递函数进行首一化处理,在传递函数的上下同除以则可得到首一化的两向量

2)滤波器的状态方程模型

状态方程是描述系统的一种常用的方式,这种方式是基于系统的不可见的状态变量的,所以又往往称为系统的内部描述方法。

连续LTI系统的状态方程可以写成

(2-13)

其中A,B,C,D分别为常数矩阵,在MATLAB中,一般情况下,系统的状态方程可以简记为(A,B,C,D),如果D=0,则系统的状态方程模型可以简记为(A,B,C)。

对于离散时间系统来说,状态方程模型可以写成

 

(2-14)

以上可以写成

(2-15)

这样离散时间系统的状态方程模型可以写成(A,B,C,D)或(A,B,C)。

3)滤波器波器的零极点增益模型

(2-16)

零极点增益模型实际上是传递函数模型的另一种表现形式,其原理是分别对原系统传递函数的分子和分母进行分解因式处理,以获得的零极点表示形式,对单输入单输出系统来说,可以简单地将其零极点增益模型写成

式中zi,i=1,2,…,m和pi,i=1,2,…,n分别称为系统的零点和极点,它们既可以为实数也可以为复数,而称为系统的增益。

这样滤波器就可以简记[Z,P,K]。

为了保证滤波器的稳定,系统的所有极点都位于左半s平面。

如果稳定系统所有的零点都位于左半s平面,则称该系统为最小相位系统,否则称该系统为非最小相位系统。

如果系统中某个了零点值恰好等于其中一个极点的值,则它们之间可以对消以直接获得一个完全等效的低价系统。

 

第三章数字滤波器的设计方法

3.1数字滤波器的设计原理

数字滤波器根据其冲激响应函数的时域特性,可分为两种,即无限长冲激响应(IIR)滤波器和有限长冲激响应(FIR)滤波器。

IIR滤波器的特征是,具有无限持续时间冲激响应。

这种滤波器一般需要用递归模型来实现,因而有时也称之为递归滤波器。

FIR滤波器的冲激响应只能延续一定时间,在工程实际中可以采用递归的方式实现,也可以采用非递归的方式实现。

数字滤波器的设计方法有多种,如双线性变换法、窗函数设计法、插值逼近法和Chebyshev逼近法等等。

随着MATLAB软件尤其是MATLAB的信号处理工作箱的不断完善,不仅数字滤波器的计算机辅助设计有了可能,而且还可以使设计达到最优化。

3.2IIR及FIR滤波器的设计方法总述

数字滤波器是具有一定传输特性的数字信号处理装置,与模拟滤波器不同的是它的输入和输出均为离散的数字信号,借助于数字器件或一定的数值计算方法,对输入信号进行处理,改变输入信号的波形或频谱,达到保留信号中的有用成分去除无用成分的目的。

IIR与FIR滤波器不论是在性能上还是在设计方法上都有很大区别.IIR滤波器可以对给定的频率特性直接设计,而FIR滤波器目前最通用的方法是利用已经很成熟的模拟滤波器的设计方法来进行设计。

不管是IIR还是FIR滤波器的设计都包括以下三个步骤:

1)给出所需要的滤波器的技术指标;

2)设计一个H(z)使其逼近所需要的技术指标;

3)实现所设计的H(z)

 

第四章IIR数字滤波器设计的基础理论

4.1基于冲激响应不变法的设计

基于冲激响应不变法的设计原理是使数字滤波器的单位抽样响应序列h(n)模仿模拟滤波器的冲激响应g(t)。

(4-1)

设系统传递函数为G(s)的模拟滤波器的单位冲激响应为g(t),并将冲激响应g(t)进行等间隔采样,使得数字滤波器的单位抽样响应h(n)刚好等于g(t)的采样值,即:

其中的

为采样周期。

(4-2)

因为G(s)使模拟滤波器的系统传递函数,故它是该系统冲激响应函数g(t)的拉普拉斯变换;又设H(z)是数字滤波器的系统传递函数,从而可得它是数字滤波器的单位抽样响应函数h(n)的Z变换。

模拟信号的拉普拉斯变换与其采样序列Z变换的关系为:

(4-3)

上式的物理意义为首先将模拟滤波器的系统函数G(s)作周期的延拓,再经过映射变换,从而得到数字滤波器的系统函数H(z)。

假设s平面上,s在

轴上取值,z在z平面内的单位圆周

上取值,可以得到数字滤波器的频率响应H(

)和模拟滤波器的频率响应G(

)间的关系为:

其中

假设模拟滤波器的系统传递函数G(s)只有单阶极点,且M

(4-4)

可以用部分分式形式表示:

其拉普拉斯变换脉冲响应g(t)为:

(4-5)

(4-6)

对进行等间隔采样,可以得到数字滤波器的单位取样响应函数为:

(4-7)

然后对(4-6)进行Z变换,就可以得到数字滤波器的系统传递函数:

按照冲激响应不变法的原理,通过模拟滤波器的系统传递函数,可以直接得到数字滤波器的系统传递函数,其转换步骤归纳如下:

1)利用

(可由关系式

推导出)将

转换为

不变;

2)求解低通滤波器的传递函数G(s);

3)根据(4-4)和(4-5)式将模拟滤波器的传递函数转换为数字滤波器的传递函数。

尽管通过冲激响应不变法求取数字滤波器的系统传递函数比较方便,并具有良好的时域逼近特性,但根据式(4-3),若G(s)不是带限的,或是抽样频率不高,那么在

中将发生混叠失真,数字滤波器的频率响应不能重现模拟滤波器的频率响应。

只有当模拟滤波器的频率响应在折叠频率后衰减很大时,混叠失真才很小,此时采样脉冲响应不变法设计的数字滤波器才能满足设计的要求,这是冲激响应不变法的一个严重缺点。

4.2基于MATLAB函数直接设计IIR数字滤波器

MATLAB工具箱中提供了几个直接设计数字滤波器的函数,它们使IIR数字滤波器的设计变得简单,本设计中主要用到的有butter,cheby1,cheby2,ellip等几个,下面具体重点介绍cheby1,cheby2,ellip:

4.2.1切比雪夫1型IIR数字滤波器设计

切比雪夫1型滤波器在通带是等纹波的,而在阻带是单调下降的。

在MATLAB中它的语法为:

[b,a]=cheby1(N,Rp,Wn)

[b,a]=cheby1(N,Rp,Wn,’ftype’)

[z,p,k]=cheby1(…)

[A,B,C,D]=cheby1(…)

cheby1函数也有3种输出形式:

传递函数形式,零极点形式及状态方程形式。

其中Rp表示通带纹波最大衰减,Wn是截止频率,N是阶次。

当函数返回3个参数z,p,k时,得到的返回值分别是滤波器的零点,极点和增益;当函数返回4个参数A,B,C,D时,得到的返回值分别是滤波器状态空间的表达形式;切比雪夫1型滤波器的阶次可以通过MATLAB中的函数cheb1ord确定,函数的调用格式为:

[N,Wn]=cheb1ord(Wp,Ws,Rp,Rs)

4.2.2切比雪夫2型IIR数字滤波器设计

切比雪夫2型滤波器在阻带是等纹波的,而在通带是单调下降的。

在MATLAB中它的语法为;

[b,a]=cheby2(N,Rp,Wn)

[b,a]=cheby2(N,Rp,Wn,’ftype’)

[z,p,k]=cheby2(…)

[A,B,C,D]=cheby2(…)

cheby2函数也有3种输出形式:

传递函数形式,零极点形式及状态方程形式。

其中Rp表示通带纹波最大衰减,Wn是截止频率,N是阶次。

当函数返回3个参数z,p,k时,得到的返回值分别是滤波器的零点,极点和增益;当函数返回4个参数A,B,C,D时,得到的返回值分别是滤波器状态空间的表达形式;切比雪夫2型滤波器的阶次可以通过MATLAB中的函数cheb2ord确定,函数的调用格式为:

[N,Wn]=cheb2ord(Wp,Ws,Rp,Rs)

4.2.3椭圆型IIR数字滤波器设计

ellip型滤波器的阶次最小,对参数量化灵敏度也为最灵敏。

在MATLAB中它的语法为;

[b,a]=ellip(N,Rp,Rs,Wn)

[b,a]=ellip(N,Rp,Rs,Wn,’ftype’)

[z,p,k]=ell

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > IT计算机 > 计算机软件及应用

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1