用双线性变换法设计iir数字低通滤波器课程设计.docx
《用双线性变换法设计iir数字低通滤波器课程设计.docx》由会员分享,可在线阅读,更多相关《用双线性变换法设计iir数字低通滤波器课程设计.docx(19页珍藏版)》请在冰豆网上搜索。
![用双线性变换法设计iir数字低通滤波器课程设计.docx](https://file1.bdocx.com/fileroot1/2023-1/1/1f8dcb45-90d3-420b-b8d2-4562852fe793/1f8dcb45-90d3-420b-b8d2-4562852fe7931.gif)
用双线性变换法设计iir数字低通滤波器课程设计
课程设计报告书
姓名:
班级:
学号:
时间:
设计题目
用双线性变换法设计IIR数字低通滤波器
设计要求
1.通过实验加深对双线性变换法设计IIR滤波器基本方法的了解。
2.了解MATLAB有关双线性变换法的子函数。
3.掌握用双线性变换法设计数字低通滤波器的方法。
本次课程设计是采用双线性变换法基于MATLAB设计一个IIR数字低通滤波器,其中要求通带截止频率为ωp=0.25π;通带最大衰减Rp=1dB;阻带最小衰减As=15dB;阻带截止频率ωs=0.4π;滤波器采样频率Fs=100Hz.
设计过程
摘要:
根据IIR滤波器的特点,在MATLAB坏境下用双线性变换法设计IIR数字滤波器。
利用MATLAB设计滤波器,可以随时对比设计要求和滤波器特性调整参数,直观简便,极大的减轻了工作量,有利于滤波器设计的最优化。
关键词:
双线性变换法,数字滤波器,MATLAB,IIR
1.设计原理与步骤
1.1设计原理
滤波器的种类很多,从功能上可分为低通、高通、带通和带阻滤波器,每一种又有模拟滤波器和数字滤波器两种形式。
如果滤波器的输人和输出都是离散时间信号,则该滤波器的冲击响应也必然是离散的,这种滤波器称之为数字滤波器。
数字滤波器是一种用来过滤时间离散信号的数字系统,通过对抽样数据进行数学处理来达到频域滤波的目的。
数字滤波器也是具有一定传输选择特性的数字信号处理装置,其输入、输出均为数字信号,实质上是一个由有限精度算法实现的线性时不变离散系统。
IIR数字滤波器采用递归型结构,即结构上带有反馈环路。
IIR滤波器运算结构通常由延时、乘以系数和相加等基本运算组成,可以组合成直接型、正准型、级联型、并联型四种结构形式,都具有反馈回路。
数字滤波器根据其冲激响应函数的时域特性,可分为两种,即无限长冲激响应(IIR)数字滤波器和有限长冲激响应(FIR)数字滤波器。
IIR数字滤波器的特征是,具有无限持续时间冲激响应,需要用递归模型
来实现,其差分方程为:
(1-1)
(1-2)
设计IIR滤波器的任务就是寻求一个物理上可实现的系统函数H(z),使其频率响应H(z)满足所希望得到的频域指标,即符合给定的通带截止频率、阻带截止频率、通带衰减系数和阻带衰减系数。
本次课程设计采用双线性变换法。
1.2设计步骤:
(1)将给出的数字滤波器的技术指标转换为模拟滤波器的技术指标;
(2)根据转换后的技术指标设计模拟低通滤波器H(s);
(3)在按一定规则将H(s)转换为H(z);
若所设计的数字滤波器是低通的,那么上述设计工作可以结束,若所设计的是高通、带通或者带阻滤波器,那么还有步骤:
(4)将高通、带通或者带阻数字滤波器的技术指标先转化为低通滤波器的技术指标,然后按上述步骤
(2)设计出模拟低通滤波器H(s),再将H(s)转换为所需的H(z)。
2.设计方案
IIR数字滤波器是一种离散时间系统,其系统函数为
(1-3)
假设M≤N,当M>N时,系统函数可以看作一个IIR的子系统和一个(M-N)的FIR子系统的级联。
IIR数字滤波器的设计实际上是求解滤波器的系数
和
,它是数学上的一种逼近问题,即在规定意义上(通常采用最小均方误差准则)去逼近系统的特性。
如果在S平面上去逼近,就得到模拟滤波器;如果在z平面上去逼近,就得到数字滤波器。
实现IIR数字滤波器的设计有双线性变换法和脉冲响应不变法两种基本方案,现在就对两种基本方案的优劣进行具体论证,从而说明选择方案一的理由。
方案一:
双线性变换法设计IIR数字滤波器
双线性变换法主要是采用非线性频率压缩方法,将整个频率轴上的频率范围压缩到-π/T~π/T之间,再用z=esT转换到Z平面上。
也就是说,第一步先将整个S平面压缩映射到S1平面的-π/T~π/T一条横带里;第二步再通过标准变换关系z=es1T将此横带变换到整个Z平面上去。
这样就使S平面与Z平面建立了一一对应的单值关系,消除了多值变换性,也就消除了频谱混叠现象,映射关系如图1所示。
图1双线性变换的映射关系
为了将S平面的整个虚轴jΩ压缩到S1平面jΩ1轴上的-π/T到π/T段上,可以通过以下的正切变换实现
(1-4)式中,T仍是采样间隔。
当Ω1由-π/T经过0变化到π/T时,Ω由-∞经过0变化到+∞,也即映射了整个jΩ轴。
将式(1-4)写成
将此关系解析延拓到整个S平面和S1平面,令jΩ=s,jΩ1=s1,则得(1-5)
再将S1平面通过以下标准变换关系映射到Z平面
z=es1T
从而得到S平面和Z平面的单值映射关系为:
(1-6)
(1-7)
式(1-6)与式(1-7)是S平面与Z平面之间的单值映射关系,这种变换都是两个线性函数之比,因此称为双线性变换
式(1-5)与式(1-6)的双线性变换符合映射变换应满足的两点要求。
首先,把z=ejω,可得
(1-8)
即S平面的虚轴映射到Z平面的单位圆。
其次,将s=σ+jΩ代入式(1-8),得
因此
由此看出,当σ<0时,|z|<1;当σ>0时,|z|>1。
也就是说,S平面的左半平面映射到Z平面的单位圆内,S平面的右半平面映射到Z平面的单位圆外,S平面的虚轴映射到Z平面的单位圆上。
因此,稳定的模拟滤波器经双线性变换后所得的数字滤波器也一定是稳定的。
方案二:
脉冲响应不变法设计IIR数字滤波器
脉冲响应不变法是从滤波器的脉冲响应出发,使数字滤波器的单位脉冲响应序列h(n)模仿模拟滤波器的冲激响应ha(t),即将ha(t)进行等间隔采样,使h(n)正好等于ha(t)的采样值,满足h(n)=ha(nT)式中,T是采样周期。
如图1所示。
如果令Ha(s)是ha(t)的拉普拉斯变换,H(z)为h(n)的Z变换,利用采样序列的Z变换与模拟信号的拉普拉斯变换的关系得
(1-9)
可看出,脉冲响应不变法将模拟滤波器的S平面变换成数字滤波器的Z平面,这个从s到z的变换z=esT是从S平面变换到Z平面的标准变换关系式。
图2脉冲响应不变法的映射关系
由(1-9)式,数字滤波器的频率响应和模拟滤波器的频率响应间的关系为
(1-10)
这就是说,数字滤波器的频率响应是模拟滤波器频率响应的周期延拓。
正如采样定理所讨论的,只有当模拟滤波器的频率响应是限带的,且带限于折叠频率以内时,即
(1-11)
才能使数字滤波器的频率响应在折叠频率以内重现模拟滤波器的频率响应,而不产生混叠失真,即
|ω|<π(1-12)
但是,任何一个实际的模拟滤波器频率响应都不是严格限带的,变换后就会产生周期延拓分量的频谱交叠,即产生频率响应的混叠失真,如图2所示。
这时数字滤波器的频响就不同于原模拟滤波器的频响,而带有一定的失真。
当模拟滤波器的频率响应在折叠频率以上处衰减越大、越快时,变换后频率响应混叠失真就越小。
这时,采用脉冲响应不变法设计的数字滤波器才能得到良好的效果。
图3脉冲响应不变法中的频响混叠现象
对某一模拟滤波器的单位冲激响应ha(t)进行采样,采样频率为fs,若使fs增加,即令采样时间间隔(T=1/fs)减小,则系统频率响应各周期延拓分量之间相距更远,因而可减小频率响应的混叠效应。
两种方案优缺点比较:
脉冲响应不变法的最大缺点是有频率响应的混叠效应。
所以,脉冲响应不变法只适用于限带的模拟滤波器(例如,衰减特性很好的低通或带通滤波器),而且高频衰减越快,混叠效应越小。
至于高通和带阻滤波器,由于它们在高频部分不衰减,因此将完全混淆在低频响应中。
如果要对高通和带阻滤波器采用脉冲响应不变法,就必须先对高通和带阻滤波器加一保护滤波器,滤掉高于折叠频率以上的频率,然后再使用脉冲响应不变法转换为数字滤波器。
当然这样会进一步增加设计复杂性和滤波器的阶数。
双线性变换法与脉冲响应不变法相比,其主要的优点是避免了频率响应的混叠现象。
这是因为S平面与Z平面是单值的一一对应关系。
S平面整个jΩ轴单值地对应于Z平面单位圆一周,即频率轴是单值变换关系。
这个关系如式(1-8)所示,重写如下:
上式表明,S平面上Ω与Z平面的ω成非线性的正切关系,如图4所示。
由图4看出,在零频率附近,模拟角频率Ω与数字频率ω之间的变换关系接近于线性关系;但当Ω进一步增加时,ω增长得越来越慢,最后当Ω→∞时,ω终止在折叠频率ω=π处,因而双线性变换就不会出现由于高频部分超过折叠频率而混淆到低频部分去的现象,从而消除了频率混叠现象。
图4双线性变换法的频率变换关系
但是双线性变换的这个特点是靠频率的严重非线性关系而得到的,如式(1-8)及图2所示。
由于这种频率之间的非线性变换关系,就产生了新的问题。
首先,一个线性相位的模拟滤波器经双线性变换后得到非线性相位的数字滤波器,不再保持原有的线性相位了;其次,这种非线性关系要求模拟滤波器的幅频响应必须是分段常数型的,即某一频率段的幅频响应近似等于某一常数(这正是一般典型的低通、高通、带通、带阻型滤波器的响应特性),不然变换所产生的数字滤波器幅频响应相对于原模拟滤波器的幅频响应会有畸变,如图5所示。
5双线性变换法幅度和相位特性的非线性映射
对于分段常数的滤波器,双线性变换后,仍得到幅频特性为分段常数的滤波器,但是各个分段边缘的临界频率点产生了畸变,这种频率的畸变,可以通过频率的预畸来加以校正。
也就是将临界模拟频率事先加以畸变,然后经变换后正好映射到所需要的数字频率上。
由于用脉冲响应不变法设计IIR数字滤波器,存在从S平面到Z平面的多值映射的缺点,而且还有频谱混叠现象,所以本次课程设计就采用双线性变换法来设计IIR数字滤波器。
3设计步骤
要求:
根据以上IIR数字滤波器设计方法,采用双线性变换法基于MATLAB设计一个巴特沃斯数字低通滤波器,其中要求通带截止频率为ωp=0.25π;通带最大衰减Rp=1dB;阻带最小衰减As=15dB;阻带截止频率ωs=0.4π;滤波器采样频率Fs=100Hz.
3.1设计步骤
(1)根据任务,确定性能指标:
在设计低通滤波器之前,首先根据工程实际的需要确定滤波器的设计指标:
通带截止频率wp,阻带截止频率ws,通带最大衰减Rp,阻带最小衰减Rs
通带截止频率wp=fp/Fs*2*Pi=0.785,通带衰减Rp=1dB和阻带截止频率ws=fs/Fs*2*Pi=1.256,阻带最大衰减As=15dB;
(2)根据公式Ω=2/T*tan(w/2)进行预修正,将数字滤波器指标转换成模拟滤波器设计指标,对双线性变换法一般T=2s
通带截止频率wc=(2/T)*tan(wp/2)=tan(0.392)=0.0068
阻带截止频率ws=(2/T)*tan(ws/2)=tan(0.628)=0.011
通带最小衰减Rp=1dB和阻带最大衰减As=15dB;
(3)将模拟高通滤波器指标转换为模拟低通滤波器指标。
normwp=wp/T=wp*Fs=78.5
normws=ws/T==ws*Fs=125.6
模拟低通滤波器指标:
normwp=78.5,normws=125.6,Rp=1dB,As=15dB
(4)设计模拟低通原型滤波器。
用模拟低通滤波器设计方法得到模拟低通滤波器的传输函数Ha(s)并调用lp2bp函数将模拟低通滤波器转化为模拟带通滤波器。
(5)利用双线性变换法将模拟低通滤波器Ha(s)转换成数字低通滤波器H(z).
3.2程序流程框图
开始
↓
读入数字滤波器技术指标
↓
将指标转换成归一化模拟低通滤波器的指标
↓
设计归一化的模拟低通滤波器阶数N和1db截止频率
↓
模拟域频率变换,将G(P)变换成模拟低通滤波器H(s)
↓
用双线性变换法将H(s)转换成数字低通滤波器H(z)
↓
输入信号后显示相关结果
↓
结束
图6程序流程框图
3.3MATLAB程序
MATLAB程序如下:
%数字滤波器指标
wp=0.25*pi;%滤波器的通带截止频率
ws=0.4*pi;%滤波器的阻带截止频率
Rp=1;As=15;%输入滤波器的通阻带衰减指标
ripple=10^(-Rp/20);Attn=10^(-As/20);
%转换为模拟滤波器指标
Fs=100;T=1/Fs;
Omgp=(2/T)*tan(wp/2);%原型通带频率预修正
Omgs=(2/T)*tan(ws/2);%原型阻带频率预修正
%模拟原型滤波器计算
[n,Omgc]=buttord(Omgp,Omgs,Rp,As,'s')%计算阶数n和截止频率
[z0,p0,k0]=buttap(n);%归一化原型设计
ba=k0*real(poly(z0));%求原型滤波器系数b
aa=real(poly(p0));%求原型滤波器系数a
[ba1,aa1]=lp2lp(ba,aa,Omgc);%变换为模拟低通滤波器系数b,a
XX文库-让每个人平等地提升自我%注意,以上4行求滤波器系数ba1,aa1的程序,可由下一条程序替代
[ba1,aa1]=butter(n,Omgc,'s');%直接求模拟滤波器系数
%用双线性变换法计算数字滤波器系数
[bd,ad]=bilinear(ba1,aa1,Fs);%用双线性变换法计算数字滤波器系数b,a
[sos,g]=tf2sos(bd,ad);%由直接型变换为级联型
%求数字系统的频率特性
[H,w]=freqz(bd,ad);
dbH=20*log10((abs(H)+eps)/max(abs(H)));%化为分贝值
subplot(2,2,1),plot(w/pi,abs(H));
ylabel('|H|');title('幅度响应');axis([0,1,0,1.1]);
set(gca,'XTickMode','manual','XTick',[0,0.25,0.4,1]);
set(gca,'YTickMode','manual','YTick',[0,Attn,ripple,1]);grid
subplot(2,2,2),plot(w/pi,angle(H)/pi);
ylabel('\phi');title('相位响应');axis([0,1,-1,1]);
set(gca,'XTickMode','manual','XTick',[0,0.25,0.4,1]);
set(gca,'YTickMode','manual','YTick',[-1,0,1]);grid
subplot(2,2,3),plot(w/pi,dbH);title('幅度响应(dB)');
ylabel('dB');xlabel('频率(\pi)');axis([0,1,-40,5]);
set(gca,'XTickMode','manual','XTick',[0,0.25,0.4,1]);
set(gca,'YTickMode','manual','YTick',[-50,-15,-1,0]);grid
subplot(2,2,4),zplane(bd,ad);
axis([-1.1,1.1,-1.1,1.1]);title('零级图');
4.运行结果及分析
n=5
图7运行结果
由频率特性曲线可知,该设计结果在通阻带截止频率处能满足Rp≤1dB,As≥15dB的设计要求,系统的极点都在单位圆内,是一个稳定的系统。
由n=5可知,巴特沃斯数字低通滤波器是一个5阶的系统,原型Ha(s)在s=-∞处有5个零点,映射到z=-1处。
这个巴特沃斯低通滤波器的传递函数为H(z)=0.0072(1+z-1)5/[(1-0.3193z-1)(1-0.6984z-1+0.2053z-2)(1-0.9257z-1+0.5976z-2)]
低通原型的每一个边界频率都映射为带通滤波器两个相应的边界频率。
根据通带截止频率和阻带截止频率与频谱函数曲线比较,满足设计要求。
5实验总结与心得
通过本次课程设计,不仅使我更加熟悉Matlab软件的应用,而且对数字信号处理中相关的各类滤波器的设计又进行了一次系统的复习;也使我加深了对课堂抽象概念的理解,巩固了课堂上所学的理论知识,理解和掌握了数字信号处理中的基本概念、基本原理和基本分析方法。
在课程设计过程中,通过自己搜集材料,扩大了自己的知识面,系统地掌握了编程方法和解决实际问题的一些技巧,让我对MATLAB有了更深刻的了解,对数字滤波器的设计流程有了大致的了解,掌握了一些设计滤波器的基本方法,提高了理论用于实践的能力,掌握了更多专业相关的使用知识与技能。
同时暴露出了自己许多的不足之处,在以后的学习过程中还有待继续提高。
通过学习MATLAB相关知识,发现MATLAB具有相当强大的矩阵运算和操作功能,其程序编写也比其他语言要简单。
参考书目
[1]蒋志凯.数字滤波与卡尔曼滤波[M].北京:
中国科学技术出版社,1993
[2]施阳.等.MATLAB语言工具箱[M]..西安:
西北工业大学出版社,1999
[3]楼顺天、李博菡.基于MATLAB的系统分析与设计-信号处理[M].西安:
西安电子科技大学出版社,1998.
[4]蒙以正.MATLAB5.X应用与技巧[M].北京:
科学出版社,1999.
[5]胡广书.数字信号处理:
理论、算法与实现[M].北京:
清华大学出版社,西安:
1997.
《信息处理综合课程设计》课程设计
行政班级学号__姓名_
选课班级__任课教师成绩________
设计题目:
用双线性变换法设计IIR数字低通滤波器
设计要求:
1.通过实验加深对双线性变换法设计IIR滤波器基本方法的了解。
2.了解MATLAB有关双线性变换法的子函数。
3.掌握用双线性变换法设计数字低通滤波器的方法。
本次课程设计是采用双线性变换法基于MATLAB设计一个IIR数字低通滤波器,其中要求通带截止频率为ωp=0.25π;通带最大衰减Rp=1dB;阻带最小衰减As=15dB;阻带截止频率ωs=0.4π;滤波器采样频率Fs=100Hz.
教师评语:
本课程设计在MATLAB软件中实现了用双线性变换法设计IIR数字低通滤波器的设计,选题体现了课程培养目标。
论文中对相关理论的论述清楚,方案论述准确,程序编写正确。
设计程序经验证实现了预期目标。
论文格式规范,文字通顺。
本课程设计成绩评定为:
教师签字:
年月日