资源描述
IIR和FIR数字滤波器的设计及其结构研究
摘要:数字滤波器是具有一定传输选择特性的数字信号处理装置,其输入、输出均为数字信号,实质上是一个由有限精度算法实现的线性时不变离散系统。数字滤波器按单位脉冲响应的性质可分为无限长单位脉冲响应滤波器IIR和有限长单位脉冲响应滤波器(FIR)两种。IIR和FIR数字滤波器的设计方法及其结构各不相同。本次课程设计先是对数字滤波器有关理论知识作介绍,然后分别对IIR带通数字滤波器和FIR低通数字滤波器的基本结构、设计方法等方面做相应比较,并对它们进行性能分析,最后总结本次IIR和FIR数字滤波器课程设计。
关键词:数字滤波器 滤波特性 IIR FIR
一 数字滤波器设计的意义
当今,数字信号处理[1] (DSP:Digtal Signal Processing)技术正飞速发展,它不但自成一门学科,更是以不同形式影响和渗透到其他学科:它与国民经济息息相关.目前主要有两类滤波器,模拟滤波器和数字滤波器,它们在物理组成和工作方式上完全不同,而模拟滤波器的技术发展已相当成熟,与模拟滤波器相比,数字滤波器是DSP(数字信号处理)系统独特而又重要的一类,是通过计算算法将输入数字序列转换为不同输出序列的离散时间系统,具有更高的精确度和可靠性,使用灵活、方便,已经成为数字信号处理技术中的重要手段。如频谱分析,数字图像处理和语音处理等等。
数字滤波技术是数字信号分析、处理技术的重要分支。无论是信号的获取、传输,还是信号的处理和交换都离不开滤波技术,它对信号安全可靠和有效灵活地传输是至关重要的。在所有的电子系统中,使用最多技术最复杂的要算数字滤波器了,数字滤波器的优劣直接决定产品的优劣。
二 IIR数字滤波器设计过程
2.1 IIR数字滤波器设计
IIR滤波器设计方法有间接法和直接法,间接法是借助于模拟滤波器的设计方法进行的。模拟滤波器设计是基础,模拟滤波器到数字滤波器的转换是核心。而模拟滤波器的设计都是通过低通滤波器来实现,比较常用的模拟低通滤波器有Butterworth(巴特沃斯)和Chebyshev(切比雪夫)等。将模拟滤波器变换为数字滤波器的主要方法有脉冲响应不变法和双线性变换法。直接法直接在频域或者时域中设计数字滤波器,由于要解联立方程,设计时需要计算机辅助设计。借助于模拟滤波器的数字滤波器设计流程如图2.1所示。
待设计数字滤波器指标
数字滤波器H(z)
模拟滤波器H(s)
模拟滤波器指标
频率 设计模拟 s到z域
转换 滤波器 转换
图2.1 IIR数字滤波器的设计过程
2.2模拟滤波器设计
模拟低通滤波器的设计是设计其他滤波器的基础。模拟高通、带通和带阻滤波器的设计过程是:先将希望设计的各种滤波器的技术指标转换为低通滤波器技术指标,然后设计响应的低通滤波器,最后采用频率转换法将低通滤波器转换成所希望的各种滤波器。模拟滤波器设计流程如图2.2所示。
图2.2 模拟滤波器设计过程
2.2.1 Butterworth模拟低通滤波器常用于待设计的原型低通滤波器,设计步骤为:
(1) 由滤波器的设计指标、、、和式(2-1)确定滤波器的阶数N。
(2-1)
(2) 由式(2-2)确定。
(2-2)
(3) 由式(2-3)计算s左半平面的N个极点。
k=1,2,...,N (2-3)
(4) 由式(2-4)确定滤波器的系统函数H(s)。
(2-4)
2.2.2模拟低通滤波器转变为模拟带通滤波器的设计步骤:
(1)确定模拟带通滤波器的技术指标,即:
带通上限频率,带通下限频率;
通带中心频率,通带宽度;
通带最大衰减为,阻带最小衰减为
(2) 原型低通到带通的变换为式(2-5)
(2-5)
(3)直接将低通转换成带通。
2.2.3脉冲响应不变法的原理及特点
假设模拟滤波器的系统函数为 H( s),模拟频率为,频率响应为,单位脉冲响应为 h( t);数字滤波器的系统函数为 H( z),数字频率为,频率响应为,单位取样响应为 h( n)。
设计步骤如下:
(1) 将数字滤波器的技术指标转换为模拟滤波器的技术指标。
利用模拟频率和数字频率的关系如式(2-6)
(2-6)
将数字滤波器的频率指标{}转换为模拟滤波器的频率指标{}。
(2) 设计通带截频{}、通带衰减、阻带截频{}、阻带衰减的模拟滤波器。
(3) 利用脉冲响应不变法将模拟滤波器的H( s)转换为数字滤波器的 H( z)。脉冲响应不变法设计流程如图2.3所示。
图2.3 脉冲响应不变法设计过程
脉冲响应不变法的优、缺点:
脉冲响应不变法使得数字滤波器的单位冲激响应能完全模仿模拟滤波器的单位冲激响应,时域逼近良好,而且模拟角频率和数字角频率之间呈线性关系。该方法最大的缺点是有频率响应的混叠效应,所以只适用于限带的模拟滤波器(例如,衰减特性很好的低通或带通滤波器),而且阻带衰减越快,混叠效应越小。
2.2.4双线性变换法的原理及特点
双线性变换法的基本思想是,将模拟滤波器的H( s)转换为数字滤波器的 H( z)时,不是直接从s域到z域,而是先将非带限的H( s)映射为带限的H( s'),再通过脉冲响应不变法将s'域映射到z域,即H( s)—>H( s')—>H( z)。从频域来看模拟角频率与数字角频率的关系需通过'建立,即—>'—>。
设计步骤如下:
(1) 由式(2-7)将数字滤波器的频率指标{}转换为模拟滤波器的频率指标{}。
(2-7)
(2) 设计通带截频{}、通带衰减、阻带截频{}、阻带衰减的模拟滤波器。
(3) 利用双线性变换法将模拟滤波器的H( s)转换为数字滤波器的 H( z)。遵循公式如式(2-8)。
(2-8)
双线性变换法的优、缺点:
双线性变换最突出的优点是避免了频率响应的混叠失真,缺点是频率响应的非线性失真,模拟角频率和数字角频率之间的关系如式(2-7)在零频率附近与之间的关系近似于线性,随着的增加,与之间的关系出现严重非线性,使数字滤波器频率响应不能保真地模仿模拟滤波器频率响应。双线性变换法的非线性关系要求模拟滤波器的幅频响应必须是分段常数型的,否则变换所产生的数字滤波器幅频响应相对于原模拟滤波器的幅频响应会有较大畸变。
三 FIR数字滤波器设计过程
3.1 FIR数字滤波器设计
FIR滤波器的设计是建立在对期望滤波器频率特性的某种近似基础之上的 目前有许多方法可以设计FIR滤波器,比如窗函数设计法、频率取样法等。其中 窗函数设计法是滤波器设计的主要方法之一,由于运算简便,物理意义直观,已成为工程实际中应用最广泛的方法,常见的窗函数有:矩形窗、三角形窗、布莱克曼窗、切比雪夫窗等。
3.2窗函数法设计数字滤波器
窗函数法的基本思想是用一具有有限长度样值响应、并具有线性相位的系统函数逼近理想滤波器的系统函数。
3.2.1用窗函数法设计FIR滤波器的步骤:
(1) 根据过渡带宽及阻带衰减要求,选择窗函数的类型并估计窗口长度N(或阶数M=N-1),窗函数类型可根据最小阻带衰减As独立选择,因为窗口长度N对最小阻带衰减As没有影响,在确定窗函数类型以后,可根据过渡带宽小于给定指标确定所拟用的窗函数的窗口长度N,设待求滤波器的过渡带宽为Δw,它与窗口长度N近似成反比,窗函数类型确定后,其计算公式也确定了,不过这些公式是近似的,得出的窗口长度还要在计算中逐步修正,原则是在保证阻带衰减满足要求的情况下,尽量选择较小的N,在N和窗函数类型确定后,即可调用Matlab中的窗函数求出窗函数wd(n)。
(2) 根据待求滤波器的理想频率响应求出理想单位脉冲响应hd(n),如果给出待求滤波器频率应为Hd,则理想的单位脉冲响应可以用下面的傅里叶反变换式求出:
(3-1)
采用离散傅里叶反变换(IDFT)即可求出。
(3)用窗函数wd(n)将截断,并进行加权处理,得到
(3-2)
如果要求线性相位特性, 则h(n)还必须满足:
(3-3)
根据上式中的正、负号和长度N的奇偶性又将线性相位FIR滤波器分成四类。要根据所设计的滤波特性正确选择其中一类。例如:要设计线性相位低通特性可选择h(n)=h(N-1-n)一类,而不能选h(n)=-h(N-1-n)一类。
3.2.2窗函数法的优、缺点:
窗函数法的优点是简单,有闭合形式的公式可循,因而很实用。窗函数法是从时域出发,通过一定的窗函数截取有限长的单位脉冲响应来逼近理想单位脉冲响应;窗函数法的缺点是:(1)加窗后,会使频响产生一过渡带,其宽度正好等于窗的频响的主瓣宽度。(2)在处会出现肩峰,肩峰两侧形成起伏振荡,其振荡幅度取决于旁瓣的相对幅度,而振荡的多少则取决于旁瓣的多少。(3)会出现吉布斯(Gibbs)效应。(4)较为复杂时,不容易由反傅里叶变换求得。边界频率因为加窗的影响而不易控制。
3.3频率取样法设计数字滤波器
频率取样法是从频域出发 ,对理想的频响 进行等间隔取样,以有限个频响采样去近似理想频响应。
3.3.1用频率取样法设计FIR滤波器的步骤:
(1)根据所要求的滤波器类型,根据N是偶数还是奇数,指定,在阻带内,。
(2)根据构成滤波器的和,并考察的指标是否满足要求。
3.3.2频率抽样法的优、缺点:
频率取样法设计滤波器的最大优点是直接从频率域进行设计,比较直观,也适合于设计具有任意幅度特性是滤波器,它十分适用于窄带滤波器的设计。频率取样法设计的缺点是由于频率抽样点的分布必须符合一定规律,在规定通、阻带截止频率方面不够灵活。比如当截止频率不是整数倍数时会产生较大逼近误差。
四IIR和FIR数字滤波器的基本结构研究
4.1 IIR数字滤波器的基本结构
IIR数字滤波器的基本结构是指将加法器、乘法器、延迟器等基本单元进行相应的连接,以实现其系统函数的数学运算过程。实现IIR数字滤波器的结构主要有直接型、级联型和并联型三种基本结构。
4.1.1 直接性结构
IIR数字滤波器的系统函数可以看作系统函数分别为和的两个子系统的级联,即:
其中:
,
画出两个字系统的信号流图,将其级联后可获得直接型信号流图。交换两级联子系统的连接次序不影响整个系统的特性,
直接性结构的优点是简单、直观,所使用的延时器数量少。缺点是改变某一个系数{}将影响所有的极点,改变某一个系数{}将影响所有的零点。更严重的是对有限字长效应太敏感,容易出现不稳定现象和产生较大误差。对于三阶以上的IIR数字滤波器几乎都不采用直接性结构。
4.1.2 级联型结构
将系统的分子和分母都分解为一阶多项式的乘积即可获得级联型结构,则系统函数可表示为:
称为滤波器二阶基本环节,L表示~N范围内的某一整数。
级联型结构的一个重要优点是存储单元需要较少,硬件实现时,可以用一个二阶环节进行时分复用。另一个特点是其每一个基本节系数变化只影响该子系统的零、极点,因此易于准确的实现滤波器的零、极点,也易于调整滤波器的频率特性。
4.1.3 并联型结构
将滤波器系统函数展成部分分式只和即获得并联型结构,则表达为:
显然并联结构运算速度快,各基本环节的误差互不影响,还可以单独调整极点的位置,但不能像级联型那样直接调整零点,因为子系统零点不是整个系统的零点。
4.2 FIR数字滤波器的基本结构
FIR数字滤波器的基本结构主要有直接型 、级联型、和频率取样型。
4.2.1 直接形结构
M阶FIR数字滤波器的系统函数为:
由于线性相位 FIR数字滤波器的单位脉冲响应满足,因而其系统函数可表示为
, M为奇数
, M为偶数
4.2.2 级联型结构
M阶FIR数字滤波器的系统函数H(z)是的M次多项式,若将其分解为L个二阶因子相乘,即 :
级联结构与直接型结构所需的基本运算单元数量相同,但级联型结构可以分别控制每个子系统的零点,这些零点也是整个系统的零点,因此,当需要精确控制数字滤波器的零点的时候往往采用级联型结构。
4.2.3 频率取样型结构
M阶频率取样型FIR数字滤波器的系统函数可表达为:
频率取样型一般比直接型结构复杂,所用存储单元和乘法器也比直接型多。但如果滤波器是窄带低通或带通,此时H(m)中许多项等于零,乘法器可以大量减少。另外,频率取样型结构中每一个二阶系统结构均相同,只需调整相应的加权系数就可获得不同的滤波特性,由此可以构成滤波器组,从而将信号的各频率分量过滤出来,实现信号的频谱分析。
五 数字滤波器设计方法总结
5.1 IIR数字滤波器与FIR数字滤波器比较
A.IIR数字滤波器的主要优点是:
(1)设计方法简单。通常只要将技术指标代入设计方程组就可以设计出原型滤波器,然后再利用相应的变换公式求得所需要的滤波器系统函数的系数。
(2)在满足一定技术要求和幅频响应的情况下,IIR数字滤波器设计成为具有递归运算的环节。所以它的阶次一般比FIR数字滤波器低,所用的存储单元少,滤波器体积也小。
B.IIR数字滤波器的主要缺点是:
(1)只能设计出有限频段的低、高、带通和带阻等选频滤波器。除幅频特性可以满足技术要求外,它们的相频特性往往是非线性的,这就会使信号产生失真。
(2)由于IIR数字滤波器采用了递归型结构,系统存在极点,因此设计系统函数时,必须把所有的极点放在单位圆内,否则系统不稳定。而且有限字长效应所带来的运算误差,可能会使得系统产生寄生振荡。
C.FIR数字滤波器的主要优点是:
(1)可以设计出具有线性相位的FIR数字滤波器,从而保证信号在传输过程中没有失真。
(2)由于FIR数字滤波器没有递归运算,因此不论在理论还是实际应用中,都不会因为有限字长效应所带来的运算误差使得系统不稳定。
(3)FIR数字滤波器可以采用快速傅里叶变换实现快速卷积运算,在相同阶数的条件下运算速度快。
D.FIR数字滤波器的主要缺点是:
(1) 虽然可以采用加窗方法或频率采样等简单方法设计FIR数字滤波器,但往往在过渡带上和阻带衰减上难以满足要求,因此不得不多次迭代或者计算机辅助设计,从而使得设计过程变得复杂。
(2)在相同频率特性情况下,FIR数字滤波器阶次比较高,因而所需要的存储单元多,从而提高了硬件设计成本。
5.2数字滤波器比较概括性总结
本次课程设计首先给出了滤波的概念、分类及模拟滤波器设计,接着讨论了无限冲激响应和有限冲激响应数字滤波器的各种设计方法,重点是按照频域技术
指标为依据的滤波器设计。对于无限冲激响应,介绍了冲激响应不变法、双线性映射法、IIR滤波器的频率变换设计法、IIR数字滤波器的直接设计法。
六 滤波器的设计
6.1 双线性变换滤波器的实现
模拟低通滤波器用BW型低通滤波器。设系统的抽样频率为44.1kHz。所设计出的数字滤波器要能取代下列指标的模拟低通滤波器。
fp=2Hz, fs=10kHz, Ap=0.5dB, As=50dB
用buttap确定归一化模拟低通滤波器。
图6.1双线性变换滤波
6.2脉冲响应变换滤波器的实现
图6.2脉冲响应滤波
6.3线性滤波和脉冲滤波性能比较
双线性变换最突出的优点是避免了频率响应的混叠失真,缺点是频率响应的非线性失真。双线性变换法的非线性关系要求模拟滤波器的幅频响应必须是分段常数型的,否则变换所产生的数字滤波器幅频响应相对于原模拟滤波器的幅频响应会有较大畸变。
脉冲响应不变法使得数字滤波器的单位冲激响应能完全模仿模拟滤波器的单位冲激响应,时域逼近良好,而且模拟角频率和数字角频率之间呈线性关系。该方法最大的缺点是有频率响应的混叠效应,所以只适用于限带的模拟滤波器(例如,衰减特性很好的低通或带通滤波器),而且阻带衰减越快,混叠效应越小。
6.4功能程序
双线性变换滤波器的实现程序
%BW型带通滤波器的指标
Wp1=0.25*pi;Wp2=0.45*pi;
Ws1=0.15*pi;Ws2=0.55*pi;
B=Wp2-Wp1;W02=Wp2*Wp1;W0=sqrt(W02);
%确定原型低通滤波器的指标Wp、Ws
Wp11=(Wp1*Wp1-W02)/B/Wp1;Wp22=(Wp2*Wp2-W02)/B/Wp2;
Ws11=(Ws1*Ws1-W02)/B/Ws1;Ws22=(Ws2*Ws2-W02)/B/Ws2;
Wp=max(abs(Wp11),abs(Wp22));Ws=min(abs(Ws11),abs(Ws22));
%设置通带最大和最小衰减
Ap=0.5;
As=50;
%调用butter函数确定巴特沃斯滤波器阶数N,Wc
[N,Wc]=buttord(Wp,Ws,Ap,As,'s');
%调用butter函数设计巴特沃斯滤波器
[num,den]=butter(N,Wc,'s');
%绘出巴特沃斯模拟滤波器的幅频特性曲线
W1=linspace(0,pi,400*pi); %指定一段频率值
hf1=freqs(num,den,W1); %计算模拟滤波器的幅频响应
subplot(2,2,1);
plot(W1/pi,abs(hf1)/abs(hf1(1)));
grid on;
title('巴特沃斯原型模拟滤波器');
xlabel('频率rad/s');
ylabel('幅度');
%将原型低通转为带通滤波器
[numt,dent]=lp2bp(num,den,W0,B);
%绘出带通滤波器的幅频特性曲线
W1=linspace(0,pi,400*pi); %指定一段频率值
hf2=freqs(numt,dent,W1); %计算模拟滤波器的幅频响应
subplot(2,2,2);
plot(W1/pi,abs(hf2)/abs(hf2(1)));
grid on;
title('转换的带通模拟滤波器');
xlabel('频率rad/s');
ylabel('幅度');
%利用双线性不变法设计数字带通滤波器
t=1; fs=10000;
wpz=[0.25,0.45];
wsz=[0.15,0.55];
wp=2/t*tan(wpz/2);ws=2/t*tan(wsz/2);
[n,wc]=buttord(wp,ws,Ap,As,'s'); %计算带通滤波器阶数N和3dB截止频率wc
[b,a]=butter(n,wc,'s'); %计算带通滤波器系统函数分子分母多项式系数向量b,a
[bz,az]=bilinear(b,a,fs);
[nd,wdc]=buttord(wpz,wsz,Ap,As);
[bd,adz]=butter(nd,wdc);
hf4=freqz(bd,adz,W1)
subplot(2,2,4)
plot(W1/pi,abs(hf4)/abs(hf4(1)));
xlabel('频率rad/s');
ylabel(' 幅度');
title('双线性变换法实现图')
脉冲滤波器的实现程序
%BW型带通滤波器的指标
Wp1=0.25*pi;Wp2=0.45*pi;
Ws1=0.15*pi;Ws2=0.55*pi;
B=Wp2-Wp1;W02=Wp2*Wp1;W0=sqrt(W02);
%确定原型低通滤波器的指标Wp、Ws
Wp11=(Wp1*Wp1-W02)/B/Wp1;Wp22=(Wp2*Wp2-W02)/B/Wp2;
Ws11=(Ws1*Ws1-W02)/B/Ws1;Ws22=(Ws2*Ws2-W02)/B/Ws2;
Wp=max(abs(Wp11),abs(Wp22));Ws=min(abs(Ws11),abs(Ws22));
%设置通带最大和最小衰减
Ap=0.5;
As=50;
%调用butter函数确定巴特沃斯滤波器阶数N,Wc
[N,Wc]=buttord(Wp,Ws,Ap,As,'s');
%调用butter函数设计巴特沃斯滤波器
[num,den]=butter(N,Wc,'s');
%绘出巴特沃斯模拟滤波器的幅频特性曲线
W1=linspace(0,pi,400*pi); %指定一段频率值
hf1=freqs(num,den,W1); %计算模拟滤波器的幅频响应
subplot(2,2,1);
plot(W1/pi,abs(hf1)/abs(hf1(1)));
grid on;
title('巴特沃斯原型模拟滤波器');
xlabel('频率rad/s');
ylabel('幅度');
%将原型低通转为带通滤波器
[numt,dent]=lp2bp(num,den,W0,B);
%绘出带通滤波器的幅频特性曲线
W1=linspace(0,pi,400*pi); %指定一段频率值
hf2=freqs(numt,dent,W1); %计算模拟滤波器的幅频响应
subplot(2,2,2);
plot(W1/pi,abs(hf2)/abs(hf2(1)));
grid on;
title('转换的带通模拟滤波器');
xlabel('频率rad/s');
ylabel('幅度');
%利用脉冲响应不变法设计数字带通滤波器
T=1; %设置采样周期为1
fs=10000; %采样频率为周期倒数
wpz=[0.25,0.45];
wsz=[0.15,0.55];
wp1=wpz/T;ws1=wsz/T;
[n1,wc1]=buttord(wp1,ws1,Ap,As,'s'); %计算带通滤波器阶数N和3dB截止频率wc1,与前面BW不同
[b1,a1]=butter(n1,wc1,'s'); %计算带通滤波器系统函数分子分母多项式系数向量b1,a1
[bz1,az1]=impinvar(b1,a1,fs);
[nd1,wdc1]=buttord(wpz,wsz,Ap,As);
[bd1,adz1]=butter(nd1,wdc1);
hf3=freqz(bd1,adz1,W1)
subplot(2,2,3);
plot(W1/pi,abs(hf3)/abs(hf3(1))); %绘出巴特沃斯数字低通滤波器的幅频特性曲线
grid on;
title('脉冲响应不变法实现图');
xlabel('频率rad/s');
ylabel('幅度');
七 参考文献:
[1]陈后金.数字信号处理.2版[M].北京:高等教育出版社。2008.11
[2]孙强.运用MATLAB实现数字滤波器的设计[J].电脑学习,2005(2):32-33.
[3]蔡建平.黄晓红,孙丽英,等.基于频率采样法的线性相位滤波器设计及MATI.AB仿真[J].电气自动化设备,2006,26(7):59—61
[4]李勇,徐震.MATLAB辅助现代工程数字信号处理[M].西安:西安电子科技大学出版社,2002, 43-54
16
展开阅读全文