IIR数字滤波器.docx
《IIR数字滤波器.docx》由会员分享,可在线阅读,更多相关《IIR数字滤波器.docx(16页珍藏版)》请在冰豆网上搜索。
IIR数字滤波器
数字信号课程设计报告
设计题目:
IIR数字滤波器的设计并实现
专业班级
学号
学生姓名
指导教师王科平
2016年12月26日
一:
摘要························3
二:
正文······························4
1.设计内容·························4
2.设计原理·······················5
2.1.用脉冲响应不变法设计IIR数字滤波器········5
2.2双线性变换法设计IIR数字滤波器········7
3.设计过程························9
3.1双线性变换法设计IIR数字滤波器·····9
3.2用脉冲响应不变性设计IIR滤波······15
三:
结论·····························16
四:
参考文献·····························17
一.摘要
数字滤波器是现代数字信号处理系统的重要组成部分之一。
ⅡR数字滤波器又是其中非常重要的一类滤波器,因其可以较低的阶次获得较高的频率选择特性而得到广泛应用。
本文研究了ⅡR数字滤波器的常用设计方法,在分析各种ⅡR实现结构的基础上,利用MATLAB针对并联型结构的ⅡR数字滤波器做了多方面的仿真,从理论分析和仿真情况确定了所要设计的ⅡR数字滤波器的实现结构以及中间数据精度。
一种采用MATLAB的数字滤波器设计工具箱FDATOOL快速有效设计IIR数字滤波器的方法,可实时调整滤波器的参数从而使滤波器的设计达到最优。
概述了FDATOOL的使用方法,采用DSP Builder建立了实现模型,给出了基于FPGA的IIR数字滤波器的实现流程,并且在最后使用Simulink进行仿真,给出了仿真波形。
随着信息与数字技术的发展,数字信号处理已成为当今极其重要的学科与技术之一,它在通信、语音、图像、自动控制、雷达、军事、航空航天、医疗和家用电器等众多领域得到了广泛的应用。
在数字信号处理的基本方法中,通常会涉及到变换、滤波、频谱分析、调制解调和编码解码等处理。
其中,滤波是应用非常广泛的一个环节,数字滤波器的理论与相关设计也一直都是人们研究的重点之一。
数字滤波器根据其单位冲击响应函数的时域特性可分为两类:
无限冲击响应(IIR)滤波器和有限冲击响应(FIR)滤波器。
在给定滤波器阶数时,与FIR滤波器相比,无限冲击响应IIR(infiniteimpulsere2sponse)滤波器在达到某种性能属性方面可以有更好的效率。
这是因为IIR滤波器引入了反馈,且适合于系统传递函数的0点和极点的实现。
IIR数字滤波器具有无限宽的冲激响应,与模拟滤波器相匹配,所以IIR滤波器的设计可以采取在模拟滤波器设计基础上进一步变换的方法。
其设计方法主要有脉冲响应不变法、双向性变换法。
一般数字滤波器从功能上可分为低通、高通、带通、带阻等滤波器,它们的幅频特性是离线规定,但这种理想滤波器是不可能实现的,因为它们的单位脉冲响应均是非因果且无限长的,我们只能按照某些准则尽可能逼近它,这些滤波器可以为逼近的原则。
数字滤波器从实现的网络结构或者从单位脉冲相应分类,可以为无限长脉冲响应和有限长脉冲响应。
二.正文
1.设计内容
滤波器的指标常常在频域给出。
数字滤波器的频响特性函数
一般为复函数,所以通常表示为:
其中,
,称为幅频特性函数,
称为相频特性函数。
幅频特性表示信号通过该滤波器后各频率成分的衰减情况,而相频特性反映各频率通过滤波器后在时间上的延时情况。
一般IIR数字滤波器,通常只用幅频响应函数
来描述设计指标,相频特性一般不作要求。
IIR滤波器指标参数如下图所示。
图中,
和
分别为通带边界频率和阻带边界频率;δ1和δ2分别为通带波纹和阻带波纹;允许的衰减一般用dB数表示,通带内所允许的最大衰减(dB)和阻带内允许的最小衰减(dB)分别为αp和αs表示:
一般要求
图1低通滤波器的技术要求
2.设计原理
IIR数字滤波器是一种离散时间系统,其系统函数为
假设M≤N,当M>N时,系统函数可以看作一个IIR的子系统和一个(M-N)的FIR子系统的级联。
IIR数字滤波器的设计实际上是求解滤波器的系数ka和kb,它是数学上的一种逼近问题,即在规定意义上(通常采用最小均方误差准则)去逼近系统的特性。
如果在S平面上去逼近,就得到模拟滤波器;如果在z平面上去逼近,就得到数字滤波器。
2.1用脉冲响应不变法设计IIR数字滤波器
利用模拟滤波器来设计数字滤波器,也就是使数字滤波器能模仿模拟滤波器的特性,这种模仿可以从不同的角度出发。
脉冲响应不变法是从滤波器的脉冲响应出发,使数字滤波器的单位脉冲响应序列h(n)模仿模拟滤波器的冲激响应ha(t),即将ha(t)进行等间隔采样,使h(n)正好等于ha(t)的采样值,满足h(n)=ha(nT) 式中,T是采样周期。
如果令Ha(s)是ha(t)的拉普拉斯变换,H(z)为h(n)的Z变换,利用采样序列的Z变换与模拟信号的拉普拉斯变换的关系得
则可看出,脉冲响应不变法将模拟滤波器的S平面变换成数字滤波器的Z平面,这个从s到z的变换z=esT是从S平面变换到Z平面的标准变换关系式。
图2脉冲响应不变法的映射关系
数字滤波器的频率响应和模拟滤波器的频率响应间的关系为
就是说,数字滤波器的频率响应是模拟滤波器频率响应的周期延拓。
正如采样定理所讨论的,只有当模拟滤波器的频率响应是限带的,且带限于折叠频率以内时,即
才能使数字滤波器的频率响应在折叠频率以内重现模拟滤波器的频率响应,而不产生混叠失真,即
但是,任何一个实际的模拟滤波器频率响应都不是严格限带的,变换后就会产生周期延拓分量的频谱交叠,即产生频率响应的混叠失真。
这时数字滤波器的频响就不同于原模拟滤波器的频响,而带有一定的失真。
当模拟滤波器的频率响应在折叠频率以上处衰减越大、越快时,变换后频率响应混叠失真就越小。
这时,采用脉冲响应不变法设计的数字滤波器才能得到良好的效果。
图3脉冲响应不变法中的频响混叠现象
对某一模拟滤波器的单位冲激响应ha(t)进行采样,采样频率为fs,若使fs增加,即令采样时间间隔(T=1/fs)减小,则系统频率响应各周期延拓分量之间相距更远,因而可减小频率响应的混叠效应。
2.2双线性变换法设计IIR数字滤波器
脉冲响应不变法的主要缺点是产生频率响应的混叠失真。
这是因为从S平面到Z平面是多值的映射关系所造成的。
为了克服这一缺点,可以采用非线性频率压缩方法,将整个频率轴上的频率范围压缩到-π/T~π/T之间,再用z=esT转换到Z平面上。
也就是说,第一步先将整个S平面压缩映射到S1平面的-π/T~π/T一条横带里;第二步再通过标准变换关系z=es1T将此横带变换到整个Z平面上去。
这样就使S平面与Z平面建立了一一对应的单值关系,消除了多值变换性,也就消除了频谱混叠现象,映射关系如图4所示
图4双线性变换的映射关系
为了将S平面的整个虚轴jΩ压缩到S1平面jΩ1轴上的-π/T到π/T段上,可以通过以下的正切变换实现
式中,T仍是采样间隔。
当Ω1由-π/T经过0变化到π/T时,Ω由-∞经过0变化到+∞,也即映射了整个jΩ轴。
将上式写成
将此关系解析延拓到整个S平面和S1平面,令jΩ=s,jΩ1=s1,则得
再将S1平面通过以下标准变换关系映射到Z平面
从而得到S平面和Z平面的单值映射关系为
以上两式是S平面与Z平面之间的单值映射关系,这种变换都是两个线性函数之比,因此称为双线性变换
首先,把z=ejω,可得
即S平面的虚轴映射到Z平面的单位圆。
其次,将s=σ+jΩ代入上式
因此
由此看出,当σ<0时,|z|<1;当σ>0时,|z|>1。
也就是说,S平面的左半平面映射到Z平面的单位圆内,S平面的右半平面映射到Z平面的单位圆外,S平面的虚轴映射到Z平面的单位圆上。
因此,稳定的模拟滤波器经双线性变换后所得的数字滤波器也一定是稳定的。
IIR数字滤波器的设计一般有两种方法:
一个是借助模拟滤波器的设计方法进行。
其设计步骤是,先设计模拟滤波器,再按照某种方法转换成数字滤波器。
这种方法比较容易一些,因为模拟滤波器的设计方法已经非常成熟,不仅有完整的设计公式,还有完善的图表供查阅;另外一种直接在频率或者时域内进行,由于需要解联立方程,设计时需要计算机做辅助设计。
其设计步骤是:
先设计过渡模拟滤波器得到系统函数)(sHa,然后将)(sHa按某种方法转换成数字滤波器的系统函数)(zH。
这是因为模拟滤波器的设计方法已经很成熟,不仅有完整设计公式,还有完善的图表和曲线供查阅;另外,还有一些典型的优良滤波器类型可供我们使用。
为了保证转换后的)(zH稳定且满足技术指标要求,对转换关系提出两点要求:
(1)因果稳定的模拟滤波器转换成数字滤波器,仍是因果稳定的。
(2)数字滤波器的频率相应模仿模拟滤波器的频响特性,s平面的虚轴映射为z平面的单位圆,相应的频率之间呈线性关系。
利用模拟滤波器成熟的理论设计IIR数字滤波器的过程是:
(1)确定数字低通滤波器的技术指标:
通带边界频率pw、通带最大衰减pa、阻带截止频率sw、阻带最小衰减sa。
(2)将数字低通滤波器的技术指标转换成相应的模拟低通滤波器的技术指标。
(3)按照模拟低通滤波器的技术指标设计过渡模拟低通滤波器。
(4)用所选的转换方法,将模拟滤波器)(sHa转换成数字低通滤波器系统函数)(zH。
IIR数字滤波器的设计流程图如下:
图5IIR数字滤波器的设计步骤流程图
3.设计过程
3.1双线性变换法设计IIR数字滤波器
低通
clear
wp=12*pi;
ws=35*pi;
rp=0.5;
rs=40;
fs=100;
[n,wc]=cheb2ord(wp,ws,rp,rs,'s')
[z,p,k]=cheb2ap(n,rs);
[a,b,c,d]=zp2ss(z,p,k);
[at1,bt1,ct1,dt1]=lp2lp(a,b,c,d,wc);
[at2,bt2,ct2,dt2]=bilinear(at1,bt1,ct1,dt1,fs);
[num,den]=ss2tf(at2,bt2,ct2,dt2)
figure
(1);
freqz(num,den,128,fs);
gridon;
title('幅频、相频图');
n=4
wc=96.0575
num=0.0172-0.01210.0255-0.01210.0172
den=1.0000-2.73032.9423-1.45220.2759
高通
clear
wp=35*pi;
ws=12*pi;
rp=0.5;
rs=40;
fs=100;
[n,wc]=cheb2ord(wp,ws,rp,rs,'s')
[z,p,k]=cheb2ap(n,rs);
[a,b,c,d]=zp2ss(z,p,k);
[at1,bt1,ct1,dt1]=lp2lp(a,b,c,d,wc);
[at2,bt2,ct2,dt2]=bilinear(at1,bt1,ct1,dt1,fs);
[num,den]=ss2tf(at2,bt2,ct2,dt2)
figure
(1);
freqz(num,den,128,fs);
gridon;
title('幅频、相频图');
n=4
wc=43.1537
num=0.0104-0.02940.0401-0.02940.0104
den=1.0000-3.41944.4215-2.55870.5587
带阻
clear
wp=85*pi;
ws=139*pi;
rp=0.5;
rs=40;
fs=600;
[n,wc]=cheb2ord(wp,ws,rp,rs,'s')
[z,p,k]=cheb2ap(n,rs);
[a,b,c,d]=zp2ss(z,p,k);
[at1,bt1,ct1,dt1]=lp2lp(a,b,c,d,wc);
[at2,bt2,ct2,dt2]=bilinear(at1,bt1,ct1,dt1,fs);
[num,den]=ss2tf(at2,bt2,ct2,dt2)
figure
(1);
freqz(num,den,128,fs);
grid on;
title('幅频、相频图');
n=6
wc=431.0781
num=0.0143-0.02950.0441-0.04280.0441-0.02950.0143
带通
clear
wp=89*pi;
ws=225*pi;
rp=0.5;
rs=40;
fs=600;
[n,wc]=cheb2ord(wp,ws,rp,rs,'s')
[z,p,k]=cheb2ap(n,rs);
[a,b,c,d]=zp2ss(z,p,k);
[at1,bt1,ct1,dt1]=lp2lp(a,b,c,d,wc);
[at2,bt2,ct2,dt2]=bilinear(at1,bt1,ct1,dt1,fs);
[num,den]=ss2tf(at2,bt2,ct2,dt2)
figure
(1);
freqz(num,den,128,fs);
grid on;
title('幅频、相频图');
n=5
wc=537.0759
num=0.0167-0.01340.01450.0145-0.01340.0167
den=1.0000-3.13044.1669-2.87501.0225-0.1485
3.2用脉冲响应不变性设计IIR滤波
fp=2100;
fs=8000;
Fs=20000;
Rp=0.5;
Rs=30;
T=1/Fs;%Éè¼ÆÖ¸±ê
W1p=fp/Fs*2;W1s=fs/Fs*2;%Çó¹éÒ»»¯ÆµÂÊ
[N,Wn]=buttord(W1p,W1s,Rp,Rs,'s');
%È·¶¨butterworthµÄ×îС½éÊýNºÍƵÂʲÎÊýWn
[z,p,k]=buttap(N);%Éè¼ÆÄ£ÄâµÍͨÔÐ͵ÄÁ㼫µãÔöÒæ²ÎÊý
[bp,ap]=zp2tf(z,p,k);%½«Á㼫µãÔöÒæת»»³É·Ö×Ó·Öĸ²ÎÊý
[bs,as]=lp2lp(bp,ap,Wn*pi*Fs);%½«µÍͨÔÐÍת»»ÎªÄ£ÄâµÍͨ
[bz,az]=impinvar(bs,as,Fs);%ÓÃÂö³åÏìÓ¦²»±ä·¨½øÐÐÄ£Êý±ä»»
sys=tf(bz,az,T);%¸ø³ö´«Ê亯Êý
[H,W]=freqz(bz,az,512,Fs);%Éú³ÉƵÂÊÏìÓ¦²ÎÊý
subplot(2,1,1);
plot(W,20*log10(abs(H)));%»æÖÆ·ùƵÏìÓ¦
gridon;%¼Ó×ø±êÍø¸ñxlabel('ƵÂÊ/Hz');
ylabel('Õñ·ù/dB');
subplot(2,1,2);
plot(W,abs(H));
gridon;
xlabel('ƵÂÊ/Hz');
ylabel('Õñ·ù/H');
三.结论
本次数字滤波器设计方法是基于MATLAB的数字滤波器的设计,是用学过的数字信号理论为依据,用MATLAB代码来实现的。
通过IIR数字滤波器的设计过程,说明如何利用MATLAB来完成数字滤波器的设计。
脉冲响应不变法中相位响应有严格的线性,不存在稳定性问题, 设计简单。
双线性变换不会出现由于高频部分超过折叠频率而混淆到低频部分去的现象,但会产生频率混碟现象,使数字滤波器的频响偏移模拟滤波器的频响。
在同样的技术指标的要求下,IIR滤波器所要求的阶数N也比较小,实现起来比较容易。
同时,除了典型设计法以外,MATLAB信号处理工具箱提供了几个直接设计IIR数字滤波器的函数,直接调用就可以设计滤波器。
通过这几个实验,对设计数字滤波器的整个过程有了很好的掌握。
其中对双线性变换法,巴特沃斯设计模拟滤波器的运用,也更加清楚了。
通过对数字带通滤波器的设计,熟悉了MATLAB的运行环境,初步掌握了MATLAB语言在数字信号处理中一些基本库函数的调用和编写基本程序等应用;熟悉了滤波器设计的一般原理,对滤波器有了一个感性的认识;学会了数字高通滤波器设计的一般步骤;加深了对滤波器设计中产生误差的原因以及双线性变换法优缺点的理解和认识。
总之,使理论联系了实际,巩固并深化了对课本基本知识的认识和理解,使理论得以升华。
四.参考文献
[1] 倪养华.数字信号处理与实现.上海:
上海交通大学出版社,1998
[2] 飞思科技产品研发中心.MATLAB7辅助信号处理技术与应用.北京:
电子工业出版社, 2005
[3] 楼顺天,李博苗.基于MATLAB的系统分析与设计一信号处理.西安:
西安电子科技大学出版社,1998.
[4] 张葛祥,李娜.MATLAB仿真技术与应用.北京:
清华大学出版社,2003
[5] 胡广书 数字信号处理、理论、算法与实现[M] .北京:
清华大学出版社,1997
[6] 陈希林,肖明清.一种LabWindows/CVI与MATLAB混合编程的实现方法[J].微计算机信息,2005
[7]刘波.MATLAB信号处理.北京:
电子工业出版社,2006
[8]施阳等.MATLAB语言工具箱.西安:
西北工业大学出版社,1999
[9]丁玉美.数字信号处理.西安电子科技大学出版社 第二版