利用MATLAB仿真软件系统结合双线性变换法设计一个数字切比雪夫带通IIR滤波器.docx
- 文档编号:26704132
- 上传时间:2023-06-21
- 格式:DOCX
- 页数:23
- 大小:139.60KB
利用MATLAB仿真软件系统结合双线性变换法设计一个数字切比雪夫带通IIR滤波器.docx
《利用MATLAB仿真软件系统结合双线性变换法设计一个数字切比雪夫带通IIR滤波器.docx》由会员分享,可在线阅读,更多相关《利用MATLAB仿真软件系统结合双线性变换法设计一个数字切比雪夫带通IIR滤波器.docx(23页珍藏版)》请在冰豆网上搜索。
利用MATLAB仿真软件系统结合双线性变换法设计一个数字切比雪夫带通IIR滤波器
课程设计任务书
学生姓名:
专业班级:
指导教师:
工作单位:
信息工程学院
题目:
利用MATLAB仿真软件系统结合双线性变换法设计一个数字切比雪夫带通IIR滤波器。
初始条件:
1MATLAB软件
2数字信号处理与图像处理基础知识
要求完成的主要任务:
利用MATLAB仿真软件系统结合双线性变换法设计一个数字切比雪夫带通IIR滤波器。
参考书目
时间安排
指导教师签名:
2011年月日
系主任(或责任教师)签名:
2011年月日
目录
目录2
Abstract4
1绪论5
2IIR数字滤波器设计的原理与方法6
2.1IIR数字滤波器设计的原理6
2.2IIR数字滤波器设计的基本方法8
3IIR带通滤波器的MATLAB设计10
3.1IIR带通滤波器的设计流程10
3.2IIR带通滤波器的设计步骤11
心得与体会22
参考文献23
摘要
数字滤波是数字信号分析中最重要的组成部分之一,数字滤波与模拟滤波相比,具有精度和稳定性高、系统函数容易改变、灵活性高、不存在阻抗匹配问题、便于大规模集成、可实现多维滤波等优点。
数字滤波器的作用是利用离散时间系统的特性对输入信号波形(或频谱)进行加工处理,或者说利用数字方法按预定的要求对信号进行变换。
从广义讲,数字滤波是由计算机程序来实现的,是具有某种算法的数字处理过程。
MATLAB是由美国mathworks公司发布的主要面对科学计算、可视化以及交互式程序设计的高科技计算环境。
它将数值分析、矩阵计算、科学数据可视化以及非线性动态系统的建模和仿真等诸多强大功能集成在一个易于使用的视窗环境中,为科学研究、工程设计以及必须进行有效数值计算的众多科学领域提供了一种全面的解决方案,并在很大程度上摆脱了传统非交互式程序设计语言(如C、Fortran)的编辑模式,代表了当今国际科学计算软件的先进水平。
关键词:
IIR数字滤波器,MATLAB,仿真
Abstract
Digitalfilterdigitalsignalanalysisisthemostimportantpartofdigitalfilterandsimulationfilter,itischaracterizedbyhighprecisionandstability,systemfunctiontochange,flexibility,highimpedancematchingproblemdoesnotexist,easyforlargescaleintegrated,mayrealizethemultidimensionalfiltering,etc.Theroleofdigitalfilterisusingdiscretetimethecharacteristicsofthesystemoftheinputsignalwaveform(orspectrum)process,orusingadigitalmethodaccordingtotherequirementsofthescheduledtosignaltransform.Broadlyspeaking,digitalfilterisbythecomputerprogramtorealize,ishassomekindofalgorithmdigitalprocessingprocess.
MATLABisreleasedbytheAmericanmathworkscompanymainlyfaceofscientificcalculation,visualizationandinteractiveprogramdesignofthehigh-techcomputingenvironment.Itwillnumericalanalysis,calculation,scientificdatavisualizationandnonlineardynamicsystemandsimulation,andmanyotherstrongfunctionintegrationinaneasytouseWindowsenvironment,forscientificresearch,engineeringdesign,andtoeffectivelythenumericalcalculationmanyfieldsofscienceprovidesacomprehensivesolution,andtoalargedegreefromthetraditionaltheinteractiveprogramminglanguage(suchasC,Fortran)editmode,whichrepresentsthecurrentinternationalscientificcomputingsoftwareadvancedlevel.
Keywords:
IIRdigitalfilters,MATLAB,thesimulation
1绪论
在现代通信系统中,由于信号中经常混有各种复杂成分,所以很多信号的处理和分析都是基于滤波器而进行的。
数字滤波器可以理解为是一个计算程序或算法,将代表输入信号的数字时间序列转化为代表输出信号的数字时间序列,并在转化过程中,使信号按预定的形式变化。
数字滤波器有多种分类,根据数字滤波器冲激响应的时域特征,可将数字滤波器分为两种,即无限长冲激响应(IIR)滤波器和有限长冲激响应(FIR)滤波器。
切比雪夫滤波器,又名“车比雪夫滤波器”,是在通带或阻带上频率响应幅度等波纹波动的滤波器。
切比雪夫滤波器来自切比雪夫分布,以“切比雪夫”命名,是用以纪念俄罗斯数学家巴夫尼提·列波维其·切比雪夫。
根据频率响应曲线波动位置的不同,切比雪夫滤波器可以分为以下两种:
I型切比雪夫滤波器:
在通带(或称“通频带”)上频率响应幅度等波纹波动的滤波器
II型切比雪夫滤波器:
在阻带(或称“阻频带”)上频率响应幅度等波纹波动的滤波器称为“II型切比雪夫滤波器”。
切比雪夫滤波器和理想滤波器的频率响应曲线之间的误差最小,但是在通频带内存在幅度波动。
本文设计一个IIR数字带通滤波器。
IIR数字滤波器具有无限宽的冲激响应,与模拟滤波器相匹配,所以IIR滤波器的设计可以采取在模拟滤波器设计的基础上进一步变换的方法。
其设计方法主要有经典设计法、直接设计法和最大平滑滤波器设计法。
在对滤波器实际设计时,整个过程的运算量是很大的。
设计完成后对已设计的滤波器的频率响应要进行校核,要得到幅频、相频响应特性,运算量也是很大的。
在这种情况下,滤波器设计就要进行大量复杂的运算,单纯的靠公式计算和编制简单的程序很难在短时间内完成。
利用MATLAB强大的计算功能进行计算机辅助设计,可以快速有效地设计数字滤波器,大大地简化了计算量。
2IIR数字滤波器设计的原理与方法
2.1IIR数字滤波器设计的原理
由信号与系统的知识可知滤波器的实现实际上就是频域上的信号与系统冲激响应函数的卷积运算。
一个理想的低通或高通滤波器其冲激响应函数是时域无限长的,显然其卷积运算是不可能直接实现的。
相比于FIR数字滤波器利用窗函数将冲击函数截短,使用有限长度的冲激响应函数与信号样值序列进行卷积运算产生吉不斯现象。
IIR滤波器没有对冲激响应函数进行截短来实现滤波器。
由于冲激响应函数无限长,所以IIR滤波器不可能由频域卷积方法来设计,通常由频域直接设计。
设IIR数字滤波器的输入序列为
,则IIR滤波器的输入序列
和输出序列
之间的关系可用下列方程式表示:
(公式2-1)
其中
和
滤波器的系数,且中至少有一个非零。
具有无限持续时间冲激响应,需要用递归模型来实现,其系统函数为:
(公式2-2)
由传递函数可以发现无限长单位冲激响应滤波器应有如下特点:
(1)单位冲激响应是无限长。
(2)系统传递函数在有限平面上有极点存在
(3)结构上存在着输出到输入的反馈,也就是结构上是递归型。
设计IIR滤波器的任务就是寻求一个因果、物理上可实现的系统函H(z),使其频率响应
满足所希望得到的频域指标,即符合给定的通带截止频率、阻带截止、通带衰减和阻带衰减。
利用冲激响应不变法设计数字滤波器时可能会导致频域混叠现象,为了克服这一问题,需要找到由s平面到z平面的另外的映射关系,这种关系应保证:
1)s平面的整个jΩ轴仅映射为z平面单位圆上的一周;
2)若G(s)是稳定的,由G(s)映射得到的H(z)也应该是稳定的;
3)这种映射是可逆的,既能由G(s)得到H(z),也能由H(z)得到G(s);
4)如果G(j0)=1,那么
=1。
双线性Z变换满足以上4个条件的映射关系,其变换公式为
(公式2-3)
双线性变换法的特点:
(1)由于映射是单值变换关系,避免了冲激响应不变法的频率响应混迭现象。
(2)当频率增加时,变换关系存在严重的非线性。
因此,若采用双线性变换法进行设计时,需要对模拟频率进行预畸变之后再设计模拟滤波器。
可将模拟系统函数分解成并联或级联的低阶子系统后再对每个子系统函数分别进行双线性变换。
即分解为低阶的方法可在模拟系统函数上进行,而模拟系统函数的分解有大量的图表可以利用,分解起来较方便。
双线性Z变换的基本思路:
首先将整个S平面压缩到一条从-π/Ts变换到2π/Ts的横带里,然后通过标准的变换关系
将横带变换到整个Z平面上去,这样就得到了S平面与Z平面间的一一对应的单值关系。
图2-1双线性变换法S平面到z平面的映射关系
2.2IIR数字滤波器设计的基本方法
IIR数字滤波器的设计方法有多种方法,如频率变换法、数字域直接设计以及计算机辅助设计等。
可以借助于模拟滤波器的设计方法设计出模拟滤波器,利用冲激响应不变法或双线性变换法转换成数字滤波器,再用硬件或软件实现;另可以直接在频域或时域中进行设计,设计时需要计算机作辅助工具。
频率变换法也分为三种:
(1)先把一个归一化原型模拟低通滤波器经模拟频带变换成所需要的模拟滤波器,然后再通过冲激响应不变法或双线性变换法数字化为所需类型的数字滤波器。
(2)把两步合成一步来实现,即把归一化原型模拟低通滤波器经模拟频带变换成所需要类型的模拟滤波器的公式与用双线性变换法得到响应数字滤波器的公式合并,就可直接从模拟低通滤波器归一化模型通过一定的频率变换关系,一步完成各类型数字滤波器的设计。
(3)由模拟低通原型先变换成数字低通滤波器,然后利用数字频带变换法变换为各型数字滤波器。
基于冲激响应有频率混迭效应,故采用双线性变换法,则IIR数字滤波器设计的基本步骤如下:
(1)根据任务,确定性能指标。
在设计一个滤波器之前,首先根据工程实际的需要确定滤波器的技术指标如:
边界频率:
wp通带截止频率,ws阻带截止频率,wc;阻带最小衰减As和通带最大衰减RP;
(2)对截止频率进行预畸变,以减轻双线性变换的压缩效应。
(3)将数字滤波器的技术指标转换成模拟滤波器指标。
利用冲激响应不变法与双线性变换法进行频率间的转换,主要是边界频率Wp与Ws的转换。
(4)用模拟滤波器设计方法得到模拟滤波器的传输函数Ha(s);可借助巴特沃斯(Butterworth)滤波器、切比雪夫(Chebyshev)滤波器、椭圆(Cauer)滤波器、贝塞尔(Bessel)滤波器等,这些滤波器都有严格的设计公式、现成的曲线和图表供设计人员使用。
(5)进行适当的模拟频率变换,将得到的模拟低通滤波器变换为满足第一步要求的模拟低通,高通,带通或带阻滤波器。
(6)映射实现。
利用双线性变换法将模拟滤波器Ha(s)转换成数字滤波H(z)。
(7)用有限精度算法实现这个系统函数H(z)(包括选择运算结构、选择合适的字长、有效数字处理方法)。
(8)用适当的软、硬件技术实现。
包括采用通用计算机软件、数字滤波器硬件或者软硬件结合,确定DF采用的结构将会影响其精度、稳定性、经济性及运算速度等很多重要性质。
前面介绍第i级二阶基本节的差分方程为:
(公式2-4)
(公式2-5)
结合前面讲过的第i级二级基本节的递归函数,只需存储中间变量及其上两个时刻值,则由当前时刻的输入及本级二阶节的滤波器系数即可求出本级二级节的输出。
整个滤波器程序可以二阶节乘虚的多次循环来实现。
3IIR带通滤波器的MATLAB设计
IIR带通滤波器的设计框图如下:
图3-1IIR带通滤波器的设计框图
3.1IIR带通滤波器的设计流程
图3-2IIR带通滤波器的设计流程
本文设计的IIR带通滤波器是从低通变换过来的,利用的是双线性变换以及切比雪夫II滤波器的原型,其具体的设计流程为上图所示。
首先根据题目要求确定带通滤波器的技术指标,先要进行频率的预畸变,并且归一化频率,再设计出切比雪夫II模拟低通滤波器,并求出其阶数等相关参数。
其次利用双线性变换法设计数字带通滤波器,再调用函数进行双线性变换,并求出分子、分母的系数向量。
然后通过画图求出其幅频响应、相频响应、幅度特性曲线与零极点,并画出波形图。
最后进行验证,看所设计的滤波器能否达到要求的指标,若能达到,则说明该滤波器设计符合要求。
3.2IIR带通滤波器的设计步骤
(1)根据设计流程,首先确定所要设计的数字带通滤波器的相关指标:
① 通带截止频率wp1=0.4π,wp2=0.6π,通带最大衰减Rp=2dB;
② 阻带截止频率ws1=0.2π和ws2=0.8π,阻带最小衰减Rs=30dB;
③ 取样间隔T=0.1s。
其实现程序如下(程序中pi代表π):
Ts=0.1;Fs=1/Ts;%取样周期或频率
Rp=2;%通带最大衰减
Rs=30;%阻带最小衰减
wp1=0.4*pi;%通带、阻带上、下限截止频率
wp2=0.6*pi;
ws1=0.2*pi;
ws2=0.8*pi;
(2)频率的预畸变。
双线性变换中无法避免的一个问题即是频率的非线性偏移,因为数字频率的最大值为π,而模拟频率可以向无穷延伸,两者之间又要保持一一对应的映射关系。
双线性变换中的模拟角频率
与数字角频率
之间的关系为:
(公式3-1)
表明S平面与Z平面是单值的一一对应关系,即频率轴是单值变换关系。
虽然避免了脉冲响应不变法的频率响应的混叠现象,但是经过变换后,得到的幅频响应特性各分段边缘频率不能保持原来的比例关系,必须通过预修正加以校正。
做法是将数字频率
按
=2/T*tan(w/2)的关系,变成模拟频率
,利用这组做过修正的模拟频率来设计模拟带通滤波器作为模拟原型。
Wp1=(2/T)*tan(wp1/2);
Wp2=(2/T)*tan(wp2/2);
Wp=[Wp1,Wp2];%模拟滤波器的通带截止频率
Ws1=(2/T)*tan(ws1/2);
Ws2=(2/T)*tan(ws2/2);
Ws=[Ws1,Ws2];%模拟滤波器的阻带截止频率BW=Ws2-Ws1;%模拟滤波器的带宽
Omegaw0=sqrt(Ws1*Ws2); %模拟滤波器的中心频率
(2)设计切比雪夫模拟低通滤波器。
%求模拟低通滤波器的阶数与边缘频率
[N,OmegaC]=cheb2ord(Wp,Ws,Rp,Rs,'s');
%求切比雪夫II型模拟低通滤波器的零、极点与增益
[z0,p0,k0]=cheb2ap(N,Rs);
利用函数[N,OmegaC]=cheb2ord(Wp,Ws,Rp,Rs,’s’),通过给定滤波器的技术指标Wp、Ws、Rp、Rs,求得滤波器的阶数N与边缘频率OmegaC。
Wp、Ws、与OmegaC均在[0,1]区间归一化,以π弧度为单位。
利用函数[z,p,k]=cheb2ap(N,Rs),来设计一个阶数为N,阻带波动为Rs的归一化切比雪夫II型原型滤波器,得到左半平面零极点。
数组Z中返回零点,数组P中返回极点,并且返回增益K。
利用上面知识可设计一个ChebyshevI型带通模拟滤波器,带通滤波器的阶数为十阶,其通带波值为3dB,低带边缘为
/5,高带边缘为
[z,p,k]=cheb1ap(5,3);
[A,B,C,D]=zp2ss(z,p,k);%将模拟滤波器转换为状态空间形式
u1=0.1*2*pi;u2=0.5*2*pi;%单位是rad/s
Bw=u2-u1;
Wo=sqrt(u1*u2);
[At,Bt,Ct,Dt]=lp2bp(A,B,C,D,Wo,Bw);
[b,a]=ss2tf(At,Bt,Ct,Dt);
%从状态空间形式转换为转换函数所需的参数形式
w=linspace(0.01,1,500)*2*pi;%计算频率向量
h=freqs(b,a,w);%计算频率响应
semilogy(w/2/pi,abs(h)),grid;%绘制图像
xlabel('Freqyency(Hz)');
[Ad,Bd,Cd,Dd]=bilinear(At,Bt,Ct,Dt,2,0.1);
%利用双线性变换法设计一个采样频率为2Hz,低带边缘频率为0.1Hz的
切比雪夫Ⅰ模拟滤波器
[bz,az]=ss2tf(Ad,Bd,Cd,Dd);%将其参数转换为状态空间形式
fvtool(bz,az)
图3-3ChebyshevI型带通模拟滤波器
图3-4Matlab实现滤波器的离散化
图3-4Matlab实现滤波器的离散化
图3-5双线性变换后的滤波器幅度与相位响应
(3)设计归一化的模拟原型带通滤波器:
%求原型滤波器的分子系数
AnalogB=k0*real(poly(z0));
%求原型滤波器的分母系数
AnalogA=real(poly(p0));
%模拟低通到模拟带通的分子、分母系数的变换
[BandB,BandA]=lp2bp(AnalogB,AnalogA,Omegaw0,BW);
%双线性变换:
模拟带通与数字带通的分子分母系数的变换
[DigitalB,DigitalA]=bilinear(BandB,BandA,Fs);
%变为二阶节级联结构
[sos,G]=tf2sos(DigitalB,DigitalA);
利用函数p=poly(A)来计算模拟滤波器的分子、分母系数向量,因其为实数,因此用real()函数取其实部,即可得模拟滤波器的分子、分母系数向量。
这两个函数实现的功能可以用函数[Bs,As]=zp2tf(z,p,k)直接求得传递函数的分子、分母系数向量。
利用函数[BandB,BandA]=lp2bp(AnalogB,AnalogA,Omegaw0,BW),将模拟域的低通变为带通,并且得到模拟带通滤波器的分子、分母系数向量,Omegaw0取为中心频率,BW为带宽。
利用函数[DigitalB,DigitalA]=bilinear(BandB,BandA,Fs),双线性变换为数字带通滤波器的指标,如分子、分母的系数向量。
函数[sos,G]=tf2sos(DigitalB,DigitalA),即把z变换传递函数的直接形式转换成级联形式。
需要注意的是,这个函数是针对以z的负幂排列的多项式开发的,虽然可以推广到s域,但连续系统传递函数是按s的正幂排列的,要使两者一致,关键是使分子、分母系数向量同长,两序列中各元素的幂次排列一致。
(4)求数字带通滤波器的幅频、相频特性、及其群延迟
%求数字带通滤波器的幅频特性
[Hz,Wz]=freqz(DigitalB,DigitalA,1024,'whole');
%将数字带通滤波器的幅频特性转化为分贝表示
dbHz=20*log10((abs(Hz)+eps)/max(abs(Hz)));
%求数字带通滤波器的相频特性
φ=angle(Hz)
%求数字带通滤波器的群延迟特性
grd=grpdelay(DigitalB,DigitalA,Wz);
函数[Hz,Wz]=freqz(DigitalB,DigitalA,1024,'whole')可以求数字带通滤波器的幅频特性,而其幅度(即模值)的最大值可以归一化为1,则其模值(单位为dB)即可以用公式表示为dbHz=20*log10((abs(Hz)+eps)/max(abs(Hz)))。
函数φ=angle(Hz)可求得其相频特性,而对于一个滤波器来说,要满足其线性相位,则其群延迟
要为一常数,则其相位特性必须为一直线,即满足
。
因此,利用群延迟函数grd=grpdelay(DigitalB,DigitalA,Wz)可以判断所设计的滤波器是否是线性相位,如果不符合,可以更改参数加以较正或者用其他方法重新设计,从而方便了设计。
(5)作图
4IIR带通滤波器程序及波形
4.1参考程序
Ts=0.1;Fs=1/Ts;Rp=2;Rs=30;
Wp1=0.4*pi;Wp2=0.6*pi;
Ws1=0.2*pi;Ws2=0.8*pi;
%频率的预畸变
Wp1=(2/Ts)*tan(wp1/2);
Wp2=(2/Ts)*tan(wp2/2);
Wp=[Wp1,Wp2];%模拟滤波器的通带截止频率
Ws1=(2/Ts)*tan(ws1/2);
Ws2=(2/Ts)*tan(ws2/2);
Ws=[Ws1,Ws2];%模拟滤波器的带宽
BW=Wp2-Wp1;
Omegaw0=sqrt(Ws1*Ws2);%模拟滤波器的中心频率
%Omegaw0=sqrt(Wp1*Wp2);
%求模拟低通滤波器的阶数与边缘频率
[N,OmegaC]=cheb2ord(Wp,Ws,Rp,Rs,'s');
%[N,OmegaC]=cheb1ord(Wp,Ws,Rp,Rs,'s')
%求切比雪夫模拟低通滤波器的零、极点与增益
[z0,p0,k0]=cheb2ap(N,Rs);
%[z0,p0,k0]=cheb1ap(N,Rp);
%设计归一化的模拟原型带通滤波器
%求原型滤波器的分子系数
AnalogB=k0*real(poly(z0));
%求原型滤波器的分母系数
AnalogA=real(poly(p0));
%模拟低通到模拟带通的分子、分母系数的变换
[BandB,BandA]=lp2bp(AnalogB,AnalogA,Omegaw0,BW);
%双线性变换:
模拟带通与数字带通的分子分母系数的变换
[D
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 利用 MATLAB 仿真 软件 系统 结合 双线 变换 设计 一个 数字 雪夫带通 IIR 滤波器