您好,欢迎访问三七文档
当前位置:首页 > 行业资料 > 国内外标准规范 > 滤波器设计—fdatool工具及代码设计
黎美琪201300800610通信工程2班实验一基于FDATool的FIR及IIR滤波器设计一、实验目的:1.学会使用fdatool设计滤波器2.分析比较不同滤波器的特性二、实验条件Matlab2013bpc机三、实验过程知识储备:使用FDATool设计FIR滤波器的具体步骤1.1滤波器指标若需要设计一个16阶的FIR滤波器(h(0)=0),给定的参数如下:(1)低通滤波器注:阶数问题这个选项直接影响滤波器的性能,阶数越高,性能越好,但是相应在FPGA实现耗用的资源需要增多。在这个设置中提供2个选项:Specifyorder和Minimumorder,Specifyorder是工程师自己确定滤波器的阶数,Minimumorder是让工具自动确定达到期望的频率相应所需要的最小阶数。(2)采样频率Fs为8kHz,滤波器Fpass为3kHz,Fstop为3050hz(3)输入序列位宽为9位(最高位为符号位)在此利用MATLAB来完成FIR滤波器系数的确定。1.2打开MATLAB的FDAToolMATLAB集成了一套功能强大的滤波器设计工具FDATool(FilterDesign&AnalysisTool),可以完成多种滤波器的设计、分析和性能评估。在MATLAB主命令窗口内键入“fdatool”,打开FDATool程序界面,如图B.2所示。1.3滤波器设计FDATool界面左下侧排列了一组工具按钮,其功能分别如下所述:滤波器转换(TransFormFilter)设置量化参数(SetQuantizationParameters)实现模型(RealizeModel)导入滤波器(ImportFilter)多速率滤波器(MultirateFilter)零极点编辑器(Pole-zeroEditor)设计滤波器(DesignFilter)选择其中的选择DesignFilter按钮,进入设计滤波器界面,进行下列选择,如图B.3所示。滤波器类型(FilerType)为低通(LowPass)设计方法(DesignMethod)为FIR/IIR,分别采用Equiripple、Least-squares、Window、Constr.LeastPth-norm、ConstrainedEquiripple、Constr.BandEquiripple(FIR滤波器设计)和Butterworth、ChebyshevTypeI、ChebyshevTypeI、Elliptic、Maximallyflat、LeastPth-norm、Constr.LeastPth-norm(IIR滤波器设计)。滤波器阶数(Filterorder)定制为15Fs=8kHz,Fpass=3kHz,Fstop=3050hz最后单击DesignFilter图标,让MATLAB计算FIR滤波器系数并作相关分析。其系统函数H(z)可用下式来表示:显然上式可以写成:即可以看成是一个15阶的FIR滤波器的输出结果经过了一个单位延时单元,所以在FDATool中,把它看成15阶FIR滤波器来计算参数。1.4滤波器分析计算完FIR滤波器系数以后,往往需要对设计好的FIR滤波器进行相关的性能分析,以便了解该滤波器是否满足设计要求。分析操作步骤如下:选择选择工具栏中“MagnitudeandPhaseResponse”,启动幅、相频比较分析;选择工具栏中的圆图图标,启动零极点位置分析(主要分析滤波器的稳定性,但是通过滤波器基本信息栏也可以直接看滤波器的稳定性)。除此之外,工具栏{}的不同图标还可以对滤波器进行群延时、相位延时、单位脉冲响应、单位阶跃响应、滤波器的系数的分析(此实验中没有对各方面都展开分析)。在图形的左侧,显示了当下滤波器的基本信息,如:1.5量化可以看到,FDATool计算出的值是一个有符号的小数,如果建立的FIR滤波器模型需要一个整数作为滤波器系数,就必须进行量化,并对得到的系数进行归一化。为此,单击FDATool左下侧的工具按钮进行量化参数设置。量化参数有三种方式:双精度、单精度和定点。(注意:当使用DSP处理器时,FTR滤波器的系数要量化,量化误差将导致所设计的滤波器形状发生很大的变化;对于IIR滤波器,会改变滤波器的特性,甚至导致滤波器不稳定。)1.6导出滤波器系数为导出设计好的滤波器系数,选择FDATool菜单的“File”→“Export”命令,打开Export(导出)对话框,选择导出到工作区(Workplace)。这时FIR滤波器系数就存入到一个一维变量Num(名称按照顺序取为a-g)中了,不过这时Num中的元素是以小数形式出现的。对于IIR滤波器,导出得到矩阵SOS(名称按照顺序取为h、k-p)和G(名称按照顺序取为h1、k1-p1)。导出后的数据在workplace中的显示如下:其中FIR滤波器系数滤波器名称滤波器系数12345678Equiripple(a)-0.179-0.0570.086-0.1130.114-0.064-0.0760.587Least-squares(b)-0.0360.01310.027-0.0670.081-0.043-0.0870.59Window(c)-0.0370.01790.021-0.0640.083-0.048-0.0810.588Constr.LeastPth-norm(d)-0.0380.0170.022-0.0640.083-0.049-0.080.587LeastPth-norm(e)0.53420.2105-0.48-0.255-0.07-0.259-0.102-0.06ConstrainedEquiripple(f)-0.0110.02710.024-0.0460.069-0.039-0.0830.588Constr.BandEquiripple(g)-0.179-0.0570.086-0.1130.114-0.064-0.0760.587滤波器名称滤波器系数910111213141516Equiripple(a)0.5875-0.076-0.060.1142-0.110.0855-0.057-0.18Least-squares(b)0.5904-0.087-0.040.0814-0.070.02730.0131-0.04Window(c)0.588-0.081-0.050.0829-0.060.02140.0179-0.04Constr.LeastPth-norm(d)0.5872-0.08-0.050.0826-0.060.02250.017-0.04LeastPth-norm(e)-0.168-0.015-0.08-0.0890.008-0.1230.01650.307ConstrainedEquiripple(f)0.5881-0.083-0.040.0686-0.050.02450.0271-0.01Constr.BandEquiripple(g)0.5872-0.076-0.060.1143-0.110.0855-0.057-0.18对于IIR滤波器:[b,a]=sos2tf(SOS);得到滤波器系统函数的分子分母多项式系数,只是差了一个比例因子k。K=cumprod(G);k=K(end);滤波输出结果filteredpWave可以这样求:filteredpWave=filter(b,a,pWave)*k;导出的数与传输函数的系数的关系a,b含义,在MATLAB中函数如下公式:这种用法主要出现在信号处理方向,控制方向上主要使用z,而不是z^-1,这是习惯问题,都一样。其次,了解了其具体函数,则它的传递函数就好写了,如下:h=tf(b,a,0.1,'variable','z^-1');%0.1表示采样时间,你可以根据自己设计的滤波器来设定。h表示的传递函数就是上面公式中的H(z)。当然,你也可以用“DiscreteTransferFcn”模块来建立传递函数,由于这个模块是直接以Z的形式,所以a,b系统应该倒过来写,相信这个你应该理解。按照上述操作,得到的滤波器设计相关图形如下:FIR滤波器设计滤波器幅度、相位响应滤波器零极点图形滤波器单位脉冲响应EquirippleLeast-squaresWindow(KaiserBeta=0.5)滤波器幅度、相位响应滤波器零极点图形滤波器单位脉冲响应Constr.LeastPth-normConstrainedEquirippleConstr.BandEquirippleIIR滤波器设计滤波器幅度、相位响应滤波器零极点图形滤波器单位脉冲响应Butterworth(minorder175)ChebyshevTypeI(minorder32)ChebyshevTypeII(minorder32)Elliptic(minorder12)MaximallyflatLeastxPth-norm、Constr.LeastPth-norm虽然以上的IIR滤波器的极点都是在单位圆上,但是上述滤波器都是稳定的,从其基本信息可以看出图形数据分析:1.通过观察FIR滤波器的“幅度相位图”及“脉冲响应图”可以发现,脉冲响应关于中点对称的FIR滤波器无相位失真。对称的脉冲响应产生了通带内的线性相位关系。这样,线性相位关系也保证无相位失真;但是IIR滤波器的相位均是非线性的,即其不能保证无相位失真。2.对于给定的滤波器形状,IIR滤波器较FIR滤波器所需要的系数要少。3.从“零极点图”可以发现,滤波器的系数为N个,对应的有N-1个零点和N-1个极点,FIR滤波器的极点都位于单位圆内(原点),即所有的FIR滤波器都是稳定的。而IIR(它是递归滤波器)的极点由分母多项式所确定,极点分布在单位圆内及单位圆上,这意味着不能保证其稳定性,但是从基本信息处可以看到上面所讨论的几种IIR滤波器是稳定的。4.通常的几种模拟滤波器的特性:Butterworth滤波器在通带和阻带都是单调的,意味着它们在一个方向上平滑变化;ChebyshevTypeI滤波器在阻带内是单调的,但是在通带内是有波纹的;ChebyshevTypeII滤波器在通带内是单调的,但是在阻带内是有波纹的;Elliptic滤波器在通带和阻带内都有波纹。5.对于同样的设计要求,切比雪夫滤波器(minorder32)比巴特沃斯滤波器(minorder175)的阶数要低得多。补充说明:FIR和IIR比较小结FIR滤波器IIR滤波器H(n)有限长H(n)无限长极点固定在原点极点位于Z平面任意位置滤波器阶次高滤波器阶次低可严格的线性相位非线性相位一般采用非递归结构递归结构可以用FFT计算不能用FFT计算设计借助于计算机可用模拟滤波器设计可设计各种幅频特性和相频特性的滤波器可用于设计规格化的选频滤波器实验二利用函数法设计FIR及IIR滤波器一、实验目的1.熟悉掌握设计滤波器的操作步骤2.学会用频率响应采样法和窗函数法设计FIR滤波器,并比较其性能3.学会用单位脉冲响应法和双线性法设计IIR滤波器,并比较其性能二、实验条件Matlab2013bpc机三、实验过程滤波器指标:Fs=8000hz;fpass=3000hz;fstop=3050;δs=0.1;δp=0.1(1)窗函数法设计FIR低通滤波器(主要可以参见实验四)设计步骤1.在过渡带宽度的中间,选择通带边缘频率(Hz):f1=fpass+(fstop-fpass)/2=30252.计算Ω1=2*pi*f1/Fs,并将此值代入理想低通滤波器的脉冲响应h1[n]中:h1[n]=sin(n*Ω1)/(n*pi)=sin(n*0.75625*pi)/(n*pi)3.计算滤波器阻带衰减为Dbs=|20lg(0.1)|=20通带边缘增益为Dbp=20lg(1-0.1)=-0.91从表1中选择满足阻带衰减及其他滤波器要求的窗函数—矩形窗,用表中的公式计算所需窗的非零项目数目N=0.91*Fs/(fstop-fpass)=145.6选择奇数项145,这样脉冲响应完全可以对称,避免了滤波器产生相位失真,对于|n|
本文标题:滤波器设计—fdatool工具及代码设计
链接地址:https://www.777doc.com/doc-2214305 .html