文档库 最新最全的文档下载
当前位置:文档库 › 基于MATLAB的IIR滤波器设计及仿真论文

基于MATLAB的IIR滤波器设计及仿真论文

基于MATLAB的IIR滤波器设计及仿真

中国·珠海

二○一三年四月

诚信承诺书

本人郑重承诺:本人承诺呈交的毕业设计《基于MATLAB的IIR滤波器设计及仿真》是在指导教师的指导下,独立开展研究取得的成果,文中引用他人的观点和材料,均在文后按顺序列出其参考文献,设计使用的数据真实可靠。

本人签名:

日期:年月日

基于MATLAB的IIR滤波器设计及仿真

摘要

滤波是信号处理的一种基本而重要的技术,利用滤波可从复杂的信号中提取所需要的信号,抑制不需要的部分。所谓滤波器,是指具有一定传输特性的信号处理装置。根据对不同信号的处理可将滤波器分为模拟滤波器和数字滤波器两种。模拟滤波器要用硬件电路来实现,而数字滤波器是把输入序列通过一定的运算变换成所要求的输出序列,从而完成滤波器功能。因此,数字滤波器就是一个离散时间系统,对数字信号进行处理,保留数字信号中的有用频率成分,去除信号中的无用频率成分。数字滤波器按单位脉冲响应的性质可分为无限长单位脉冲响应滤波器(IIR滤波器)和有限长单位脉冲响应滤波器(FIR滤波器)。本设计就是基于MATLAB软件进行IIR滤波器的设计及仿真,分别采用了冲激响应不变法和双线性Z变换法这两种方法,仿真结果与预期基本相符。

关键词:数字信号;滤波器;IIR滤波器;MATLAB

Infinite Impulse Response design and simulation based on MATLAB

Abstract

The filter is a basic and important signal processing technology, the use of the filter can extract the desired signal from the complex signal, and to suppress unwanted part. The so-called filter means having a transmission characteristic of the signal processing apparatus. The filter according to the type of signal processing can be divided into two kinds of analog and digital filters. Analog filter is to use a hardware circuit to achieve, while the digital filter is the input sequence by a certain operator to transform into a desired output sequence, thereby completing the filter function. Thus, the digital filter is a discrete-time system, the digital signal processing to retain the useful frequency component in the digital signal to remove unwanted frequency components in the signal. The nature of the digital filter unit impulse response can be divided into Infinite Impulse Response and Finite Impulse Response. The design is based on MATLAB software Infinite Impulse Response design and simulation. Keywords: Digital Signal; Filter;Infinite Impulse Response;MATLAB

目录

1 前言 (1)

1.1研究意义及研究现状 (1)

1.2主要研究内容 (1)

1.3 MATLAB简介 (2)

1.3.1 MATLAB的特点和优势 (2)

1.3.2 MATLAB在众多领域中的应用 (2)

2 滤波器综述 (3)

2.1滤波器的基本概念 (3)

2.2滤波器的分类 (3)

2.3滤波器的性能指标 (4)

3 IIR滤波器的设计原理 (5)

3.1数字滤波器的工作原理 (5)

3.2数字滤波器的设计方法 (6)

3.3 IIR数字滤波器的设计方法 (6)

3.4模拟原型法设计流程 (7)

4 冲激响应不变法设计IIR滤波器及仿真 (8)

4.1变换原理 (8)

4.2冲激响应不变法设计IIR滤波器的过程 (8)

4.3冲激响应不变法设计IIR滤波器的MATLAB仿真 (9)

5 双线性Z变换法设计IIR滤波器及仿真 (12)

5.1 变换原理 (13)

5.2双线性Z变换法设计IIR滤波器的过程 (14)

5.3双线性Z变换法设计IIR滤波器的MATLAB仿真 (14)

6 数字高通、带通和带阻IIR滤波器的设计及仿真 (16)

6.1数字滤波器的频率变换 (16)

6.2数字高通IIR滤波器的设计及仿真 (17)

6.3 数字带通IIR滤波器的设计及仿真 (19)

6.4 数字带阻IIR滤波器的设计及仿真 (21)

7 结论 (23)

参考文献 (25)

谢辞 (26)

附录 (27)

1 前言

数字信号处理(Digital Signal Processing)是近年来发展最为迅猛的学科之一,并已在多个科学技术领域获得了极为广泛的应用。可以说,学习信号处理的理论、方法与应用已成为通信、电子、自动化、生物医学、地球物理等众多学科或专业工作人员的迫切需要。滤波是信号处理的一种基本而重要的技术,利用滤波可从复杂的信号中提取所需要的信号,抑制不需要的部分。

本设计将详细介绍滤波器的研究现状及意义,滤波器的设计原理,并且讨论基于冲激响应不变法设计IIR滤波器的设计方法,讨论基于双线性Z变换法设计IIR滤波器的设计方法,讨论数字高通、带通及带阻设计IIR滤波器设计方法,最后将所有设计方法在MTALAB上仿真实现。

1.1研究意义及研究现状

在当今这个通信发达的时代,每时每刻都需要处理巨大的信息量。但是信号中通常混杂着许多其它复杂成分,必须将其过滤掉才能得到准确的数据信息,于是需要用到滤波器来对这些信号进行分析和处理。数字滤波器是现在使用最为广泛的信号处理系统,是数字信号处理的重要基础。

1.2主要研究内容

目前,设计IIR滤波器需要解决的问题主要有五个:

(1)滤波器技术指标的确定;

(2)模拟低通器滤波器的设计;

(3)滤波器的频率变换;

(4)模拟滤波器系统函数与数字滤波器系统函数的转换;

(5)运用MATLAB实现仿真。

本设计需要讨论用冲激响应不变法和双线性Z变换法设计IIR滤波器的原理和方法,并讨论数字高通、带通及带阻设计IIR滤波器的设计方法,并运用MATLAB信号处理工具箱中的滤波器设计和分析工具来实现仿真,达到易于调整参数、直观简便、稳定性好、精度高等特点。

1.3 MATLAB简介

MATLAB(maxtrix laboratory)是MathWorks公司于1982年推出的一套高性能的数值计算可视化软件。它是一种用于数值计算、可视化及编程的高级语言和交互式环境。使用MATLAB,可以分析数据,开发算法,创建模型和应用程序。借助其语言、工具和内置数学函数,可以探求多种方法,比如电子表格或传统编程语言更快地求取结果。

1.3.1 MATLAB的特点和优势

科学计算软件五花八门,经典语言不断推陈出新,MATLAB依然在如此竞争激烈的环境中赢得了广大用户的特殊青睐,主要是MATLAB所体现出的易学性,其可以总结为三个词:友好、直观、简单。

1. 友好

(1)交互式的程序开发环境:用户可以不用进行烦琐的程序链接和调试,而很方便地直接在窗口中进行程序的修改,使程序的编写和执行能够同步进行。

(2)详细的帮助系统:如同导师的循循善诱,并通过丰富的实践和工程实例,引导初学者从易到难,不断进步。

2. 直观

(1)程序语言设计:符合人们的思维习惯和教学表达方式,弥补了表述上的烦琐。

(2)丰富的二、三维图形及动画:对计算结果进行可视化显示,给用户直观的认识。

(3)SIMULINK的仿真环境:省去了用户画图布线的烦恼。

3. 简单

(1)丰富的函数库和工具箱:各个常用领域的专业使用户不必进行具体代码的编写而仅调用简单的函数指令,就可以执行任务操作,解决问题。

(2)所有数值对象都默认以双精度浮点类型数组存储:无须用户进行数据类型的声明和转换。

1.3.2 MATLAB在众多领域中的应用

MATLAB应用广泛,其中包括信号处理和通信、图像和视频处理、控制系统、测试和测量、计算金融学及计算生物学等众多应用领域。在各行业和学术机构中,有一百

多万工程师和科学家使用MATLAB这一技术计算语言。

MATLAB数字信号处理工具箱专门应用于信号处理领域。工具箱提供了丰富而简便的设计,使原来烦琐的程序设计简化成函数的调用。只要以正确的指标参数调用相应的滤波器设计程序或工具箱函数,便可以得到正确的设计结果,使用非常方便。

2 滤波器综述

2.1滤波器的基本概念

滤波器,顾名思义,是选择所需的某一或某些频带的信号内容而抑制不需要的其他频带的信号内容。“波”是一个非常广泛的物理概念,在电子技术领域,“波”被狭义地局限于特指描述各种物理量的取值随时间起伏变化的过程。该过程通过各类传感器的作用,被转换为电压或电流的时间函数,称之为各种物理量的时间波形,或者称之为信号。因为自变量时间是连续取值的,所以称之为连续时间信号,又习惯地称之为模拟信号。随着计算机技术的产生和飞速发展,为了便于计算机对信号进行处理,产生了在抽样定理指导下将连续时间信号变换成离散时间信号的完整的理论和方法。也就是说,可以只用原模拟信号在一系列离散时间坐标点上的样本值表达原始信号而不丢失任何信息,波、波形、信号这些概念既然表达的是客观世界中各种物理量的变化,自然就是现代社会赖以生存的各种信息的载体。信息需要传播,靠的就是波形信号的传递。信号在它的产生、转换、传输的每一个环节都可能由于环境和干扰的存在而畸变,有时,甚至是在相当多的情况下,这种畸变还很严重,以致于信号及其所携带的信息被深深地埋在噪声当中了。

2.2滤波器的分类

在滤波器中,能使信号通过的频带称为滤波器的通带,抑制信号通过的频带称为滤波器的阻带,而从通带到阻带的过渡频率范围称为过渡带。对于非理想滤波器,其过渡带不为零。

从不同的角度出发,滤波器可以分成不同的种类。从滤波器处理的信号类型看,分为模拟滤波器和数字滤波器,当其输入输出信号皆为模拟量时,这类滤波器称为模拟滤

波器;而当其输入输出信号皆为数字量时,称为数字滤波器。从应用角度看,滤波器可以分为有源滤波器和无源滤波器。更为一般的滤波器分类是从滤波器的通频带情况出发,分为低通滤波器、高通滤波器、带通滤波器、带阻滤波器和全通滤波器。

低通滤波器就是只允许低频信号通过而抑制高频信号。例如,可用低通滤波器消除旧音乐录音带中的背景噪声,因为音乐主要集中在低、中频频率分量中,因而可用低通滤波器减少高频的噪声分量,而保留低、中频频率分量。

高通滤波器是只允许高频信号通过而抑制低频信号。例如,对于声纳系统,可用高通滤波器消除接收信号中的船和海浪的低频噪声,保留目标特征,提高目标的识别。

带通滤波器是只允许某一频带的信号通过。例如,数字电话系统双音多频信号的解码,每当按下电话键盘的一个按键时,产生一对音频信号,其中一个信号对按键的行编码,另一个对列编码,接收端通过一组带通滤波器来识别每个按键。

带阻滤波器是抑制某一频带的信号。例如,从复合电视信号中滤除频分复用的色度信号,以便得到亮度信号。

按时间域特性,数字滤波器可以分为无限冲激(脉冲)响应数字滤波器(IIR 滤波器)和有限冲激(脉冲)响应数字滤波器(FIR 滤波器)两类。

2.3滤波器的性能指标

在设计滤波器时,最重要的是要使设计的滤波器的频率响应满足要求的幅度或相位指标,但一般情况下,只对滤波器的幅度频率特性提出性能指标要求,而特定的相位频率特性可以通过设计全通滤波器的相位特性得到。典型的数字滤波器指标是在ω~|H (ωj e )|坐标中定义的,ω的范围为0~π。绝对指标和相对指标的关系为绝对指标|H (ωj e )|max 等于(1+1δ),因此,绝对指标和相对指标存在如下关系:

p p

P δδ+--=A 11lg 20 (式2.1)

p

s s δδ+-=A 1lg 20 (式2.2) 在设计IIR 滤波器时,一般借助于模拟滤波器。在模拟滤波器设计方法中,一般用多项式去逼近所给定的模拟滤波器的平方幅度响应2)(Ωj H 。在一些应用中,模拟滤波

器的平方幅度响应采用归一化的形式给出,通带幅度的最大值设定为1。假定模拟滤波器的频率响应为)(Ωj H ,则给予平方幅度响应的低通滤波器归一化技术指标为

1)(1122

≤Ω≤+j H ε p Ω≤Ω (式2.3) 221)(0A

≤Ω≤j H s Ω≥Ω (式2.4) 其中,ε为带通内波动参数,21/1ε+为带通幅度的最小值;A 为阻带衰减参数,最小阻带衰减用dB 表示一般为–20lg(1/A);s Ω为阻带起始频率,p Ω为通带截止频率,c Ω为幅度衰减3dB 处所对应的频率,称为3dB 截止频率。

从滤波器性能指标和通频带看,数字滤波器和模拟滤波器概念是相似的。但在模拟滤波器指标中,频率Ω范围是从0~∞,覆盖整个频率范围,而数字滤波器指标中,ω范围一般为0~π,其他频率上的幅度特性,可以根据离散数字系统的对称性和周期性得到。人们主要用dB 表示数字滤波器的性能指标。

3 IIR 滤波器的设计原理

数字滤波器是数字信号处理技术的重要内容。和模拟滤波器一样,数字滤波器的主要功能是对数字信号进行处理,最常见的处理是保留数字信号中的有用频率成分,去除信号中的无用频率成分。IIR 滤波器是一种无限冲激(脉冲)响应数字滤波器。

3.1数字滤波器的工作原理

数字滤波器是一个离散时间系统,输入x(n)是一个时间序列,输出y(n)也是一个时间序列。如数字滤波器的系统函数为H(z),其脉冲响应为h(n),则在时间域内存在下列的关系

y(n)=x(n)?h(n) (式3.1)

在z 域内,输入和输出存在下列关系

Y(z)=H(z)X(z) (式3.2)

X(z)、Y(z)分别为输入x(n)和输出y(n)的z 变换。一个合适的数字滤波器系统函数

H(z)可以根据需要改变输入x(n)的频率特性。经数字滤波器处理后的信号y(n)保留信号x(n)中的有用频率成分,去除无用频率成分。

和模拟滤波器一样,数字滤波器的设计目的是使滤波器的频率特性达到所给定的性能指标。其性能指标也包括通带波纹Rp 、阻带衰减Rs 、通带边界频率、阻带边界频率等。

3.2数字滤波器的设计方法

设计一个数字滤波器,一般需要三个步骤:

(1)按照实际需要确定滤波器的性能要求。如确定所设计的滤波器是低通、高通、带通还是带阻,截止频率是多少,阻带的衰减有多大,通带的波动时多少等。

(2)用一个因果稳定的传输函数去逼近这个性能要求,这种传输函数可以分为两类,即IIR 传输函数与FIR 传输函数。

(3)用一个有限精度的运算去实现这个传输函数。包括选择运算结构,如直接型、正准型、级联型、并联型等。还包括选择合适的字长和有效数字处理的方法等。

3.3 IIR 数字滤波器的设计方法

IIR 滤波器的传递函数为

∑∑∑∞

+==-=--+===H 0101)()()()(n N

k k

k M r r r n z a z b z n h z X z Y z (式3.3) h(n)为滤波器的脉冲响应,n=0~+∞均有值。M 和N 为分解的分子和分母多项式的系数个数。

IIR 滤波器的逼近问题就是求出滤波器的各系数a 、b 或者零、极点,使滤波器满足给定的性能要求。如果在s 平面上去逼近,就得到模拟滤波器,如果在z 平面上去逼近,则得到数字滤波器。

设计IIR 数字滤波器一般有以下5种方法:

(1)模拟原型法

这种方法是用模拟滤波器的理论和设计方法来设计数字滤波器。模拟网络综合理论已发展得相当成熟,产生了很多高效率的设计方法,很多常用的模拟滤波器设计方法不

仅有简单而严格的设计公式,而且设计参数已经表格化,设计起来很方便、很准确。而数字滤波器可以借助于模拟滤波器的理论和设计方法来实现。

(2)零、极点位置累试法

根据系统函数在单位圆内的极点处出现峰值,在零点处出现谷值的特点来设置零、极点以达到性能要求,这种方法只适用于简单滤波器的设计。

(3)直接设计法。

在离散域中,利用近似分段线性幅值响应,直接计算数字滤波器。它可以设计幅度响应近似于某一期望函数的滤波器,这是设计具有多个通频频带滤波器的一种方法。

(4)参数化模型

找到近似描述时域和频域响应的数字滤波器。

(5)最优化设计法

最优化设计法就是用优化技术设计滤波器的参数,第一步是选择一种最优化准则,如最小均方误差准则、绝对误差准则等。第二步就是赋予传输函数H(z)的系统a、b初值,根据选定的最优化准则计算误差ε。若误差ε不满足要求,则改变参数赋值,重新计算误差ε,如此迭代下去,直至误差ε达到最小,得到使ε为最小时的一组最优系数a、b,从而完成设计。这种设计要进行大量的迭代运算,所以必须借助于计算机。

本设计着重用第一种方法来设计IIR滤波器。

3.4模拟原型法设计流程

采用模拟原型法设计IIR数字滤波器,首先要设计归一化的模拟低通滤波器,得到模拟低通滤波器的传输函数H(s),然后把H(s)变换为所要求的数字低通、高通、对称带通或对称带阻滤波器的传输函数H(z)。那么这个过程就涉及到所谓的频率变换,频率变换完成低通到高通、带通和带阻的变换,可以再模拟域中实现,也可以在数字域中实现,由此有两种设计方法。如图3.1所示,其中模拟—数字滤波器变换的方法有冲激响应不变法和双线性变换法,完成从s域模拟滤波器到z域数字滤波器的变换。这两种方法是本设计讲述的重点。

图3.1 模拟原型法设计IIR 滤波器流程图

4 冲激响应不变法设计IIR 滤波器及仿真

4.1变换原理

利用模拟滤波器来设计数字滤波器,可以从不同角度出发。冲激(脉冲)响应不变法是从时域的角度出发,使数字滤波器的脉冲响应序列h(n)与模拟滤波器的冲激响应h(t)相等。即)()()(nT h t h n h a nT t a ===,T 为采样周期。这样,用数字系统去代替模拟系统,至少能保证在采样点上的响应时相等的。数字滤波器的系统函数可由H(z)=Z[h(n)]=Z[a h (nT)]求得。

4.2冲激响应不变法设计IIR 滤波器的过程

对于给定了数字低通滤波器技术指标p ω、s ω、p A 和s A ,采用冲激响应不变法设计IIR 数字滤波器的过程如下:

(1)确定采样周期T ,并计算模拟频率

T =Ωp

p ω T =Ωs

s ω (式4.1)

(2)根据指标p ω、s ω、p A 和s A ,设计模拟低通滤波器)(s a H 。这个模拟滤波器可以是巴特沃思、切比雪夫、椭圆以及贝塞尔等原型模拟器。

(3)利用部分分时展开,把)(s a H 展成为

∑=-=H N i i i a s s A s 1

)( (式4.2) (4)把模拟极点{i s }转换成数字极点{T i s e },得到数字滤波器的传输函数H(z)为

∑=--A T =H N i s i a z e s T i 111)( (式4.3)

当将)(s a H 与H(z)展开成部分分式形式的时候,s 平面上的每一个极点s=i s 对应z 平面上的极点i z =T

i s e ,而)(s a H 与H(z)的部分分式中所有对应系数不变。如果模拟滤波器是稳定的,即所有极点i s 位于s 平面的左半平面,则变换后的数字滤波器的所有极点位于单位圆内,即模小于1,因此数字滤波器也必然是稳定的。

虽然冲激响应不变法能保证s 平面极点与z 平面极点有这种对应关系,但是并不等于整个s 平面与z 平面都有这种对应关系,两者的零点就没有这种对应关系。因此,不能将关系z=sT e 直接代入)(s a H 来获取H(z)。

按照上面方法可用MATLAB 编程实现由模拟传输函数)(s a H 获得数字系统函数H(z)。同时,MATLAB 信号处理工具箱又提供了专用的工具函数。函数Impinvar 可实现从模拟滤波器到数字滤波器的冲激响应不变映射,调用格式为

[b,a]=impinvar(c,d,T) (式4.4)

其中,b 表示数字滤波器自变量为Z 1-的分子多项式,a 表示数字滤波器自变量为Z 1-的分母多项式,c 表示模拟滤波器自变量为s 的分子多项式,d 表示模拟滤波器自变量为s 的分母多项式,T 表示采样频率。 4.3冲激响应不变法设计IIR 滤波器的MATLAB 仿真

下面介绍基于MATLAB 利用冲激响应不变法设计一数字低通滤波器:

设模拟低通巴特沃斯滤波器的通带纹波为Rp=1dB,通带上限角频率∏=2.0p ω,阻带

下限角频率∏=3.0s ω,带阻最小衰减s a =15dB 。

MATLAB 实现程序如下:

%IIR1

wp=0.2*pi;ws=0.3*pi;

Rp=1;

As=15;

T=1; %采样周期

%性能指标

Rip=10^(-Rp/20);

Atn=10^(-As/20);

OmgP=wp*T;OmgS=ws*T;

[N,OmgC]=buttord(OmgP,OmgS,Rp,As,'s'); %选取模拟滤波器的阶数

[cs,ds]=butter(N,OmgC,'s'); %设计出所需的模拟低通滤波器

[b,a]=impinvar(cs,ds,T); %应用脉冲响应不变法进行转换

[db,mag,pha,grd,w]=freqz_m(b,a); %求得相对,绝对频响及相位、群延迟响应 %绘制各条曲线

subplot(2,2,1);

plot(w/pi,mag);

title('幅频特性');

xlabel('w(/pi)');

ylabel('|H(jw)|');

axis([0,1,0,1.1]);

set(gca,'XTickMode','manual','XTick',[0 0.2 0.3 0.5 1]);

set(gca,'YTickMode','manual','YTick',[0 Atn Rip 1]);

grid

subplot(2,2,2);

plot(w/pi,db);

title('幅频特性(dB)');

xlabel('w(/pi)');

ylabel('dB');

axis([0,1,-40,5]);

set(gca,'XTickMode','manual','XTick',[0 0.2 0.3 0.5 1]);

set(gca,'YTickMode','manual','YTick',[-40 -As -Rp 0]);

grid

subplot(2,2,3);

plot(w/pi,pha/pi);

title('相频特性');

xlabel('w(/pi)');

ylabel('pha(/pi)');

axis([0,1,-1,1]);

set(gca,'XTickMode','manual','XTick',[0 0.2 0.3 0.5 1]);

grid

subplot(2,2,4);

plot(w/pi,grd);

title('群延迟');

xlabel('w(/pi)');

ylabel('Sample');

axis([0,1,0,12]);

set(gca,'XTickMode','manual','XTick',[0 0.2 0.3 0.5 1]);

grid

%本设计用到的M文件函数

function[db,mag,pha,grd,w]=freqz_m(b,a)

%滤波器幅值响应(绝对、相对)、相位响应及群延迟

%Usage:[db,mag,pha,grd,w]=freqz_m(b,a) %500点对应[0,pi]

%db 相对幅值响应;mag 绝对幅值响应;pha 相位响应;grd 群延迟响应;%w 采样频率;b 系统函数H(z)的分子项

%a 系统函数H(z)的分母项

[H,w]=freqz(b,a,500); %500点的幅频响应

mag=abs(H);

db=20*log10(mag/max(mag));

pha=angle(H);

grd=grpdelay(b,a,w);

程序的运行结果如图:

图4.1 脉冲响应不变法设计数字低通滤波器的特性

5 双线性Z变换法设计IIR滤波器及仿真

冲激响应不变法容易产生混叠失真,是因为从s平面到z平面不是一一映射关系。

π2的水平带状区域就足以映射成整个z平面了。实际上,只要s平面上的一个宽度为

正是由于s平面上许许多多这样的水平带状区域一次次的重叠映射到z平面上,导致了

频率响应的混叠。针对这个问题,可以采用双线性Z 变换法。

5.1 变换原理

双线性Z 变换法其基本思路就是利用数值积分将模拟滤波器变换为数字滤波器。针

对T =s e z 映射关系的多值性,先设法将s 平面压缩成1s 平面上一个宽度为T π2

的水平带状区域,进而通过T =1s e z 将这个带状区域映射成z 平面,即可实现s 平面到z 平面的单值映射,也就消除了频率响应的混叠现象,如图5.1所示。

图5.1 双线性变换法的映射关系

为了将s 平面上的Ωj 轴压缩成1s 平面的s j Ω轴从T -π到T π的一段,可以通过如下的正切变换来实现

2

tan 2T ΩT =Ωs (式5.1) 当s Ω从-π经过原点变化到T π时,Ω就相应的由—∞经过原点变化到+∞。也就是说,s 平面的Ωj 轴与1s 平面的s j Ω轴从T -π到π的一段互为映射。

将这个关系解析延展到整个s 平面和1s 平面,令s=Ωj ,1s =s j Ω,则得到

2

2112111T T =+-?T =T -T -s th e e s s s (式5.2) 再将1s 平面通过以下标准变换关系映射到z 平面

T =1s e z (式5.3)

从而得到s 平面和z 平面的单值映射关系为

1

1

112--+-?T =z z s (式5.4) 式中,分子与分母都是变量的线性函数,所以叫双线性变换。

用双线性Z 变换法设计数字滤波器时,在得到了相应的模拟滤波器的传输函数)(s H a 后,只要将相应的变换关系代入)(s H a ,即可得到数字滤波器的系统函数,即

1

112)()(-+-?T ==z z s a s H z H (式5.5)

5.2双线性Z 变换法设计IIR 滤波器的过程

运用双线性Z 变换法设计IIR 数字滤波器一般分为四步:

(1)确定数字低通滤波器的技术要求:a ω、s ω、p a 、s a 。如果给出的是模拟技术要求a Ω、s Ω、p a 、s a ,可利用公式ΩT =ω将边界频率进行转换。

(2)将数字低通滤波器的技术指标转换成模拟低通滤波器的技术指标。双线性Z 变换法的边界频率转换关系为2

tan 2ωT =Ω。 (3)按照模拟低通滤波器的技术指标设计模拟低通滤波器。

(4)将模拟滤波器)(s H a ,从s 平面转换到z 平面,得到数字低通滤波器系统函数H(z)。

MATLAB 信号处理工具箱提供了实现双线性Z 变换法的工具函数。函数Bilinear 可实现模拟s 域到数字z 域的双线性不变映射。对于不同形式模拟滤波器模型,函数有不同调用格式。其中一种调用格式为

[bz,az]=bilinear(b,a,fs) (式5.6)

式中,b ,a 分别为模拟滤波器的分子和分母多项式系数向量;fs 为采样频率,单位为Hz ;bz ,az 分别为数字滤波器分子和分母多项式系数向量。

5.3双线性Z 变换法设计IIR 滤波器的MATLAB 仿真

下面介绍基于MATLAB 利用双线性Z 变换法设计一数字低通滤波器:

设技术指标p f =100Hz ,s f =300Hz ,p a =3dB ,s a =20dB ,抽样频率Fs=1000Hz MATLAB 实现程序如下:

%IIR2

fp=100;fs=300;Fs=1000; rp=3;rs=20;

%求出待设计的数字滤波器的边界频率

wp=2*pi*fp/Fs;ws=2*pi*fs/Fs;

Fs=Fs/Fs

%使Fs 为1

wap=tan(wp/2);was=tan(ws/2);

%设计模拟滤波器

[n,wn]=buttord(wap,was,rp,rs,'s')

%双线性变换

[z,p,k]=buttap(n);

[bp,ap]=zp2tf(z,p,k)

[bs,as]=lp2lp(bp,ap,wap)

[bz,az]=bilinear(bs,as,Fs/2)

[H,w]=freqz(bz,az,256,Fs*1000);

程序的运行结果如图:

相关文档
相关文档 最新文档