毕业论文CIC滤波器的设计与仿真

上传人:无*** 文档编号:65557271 上传时间:2022-03-24 格式:DOC 页数:49 大小:1.02MB
返回 下载 相关 举报
毕业论文CIC滤波器的设计与仿真_第1页
第1页 / 共49页
毕业论文CIC滤波器的设计与仿真_第2页
第2页 / 共49页
毕业论文CIC滤波器的设计与仿真_第3页
第3页 / 共49页
点击查看更多>>
资源描述
成都理工大学工程技术学院毕业论文CIC滤波器的设计与仿真CIC滤波器的设计与仿真摘要CIC滤波器已经被证明是在高速抽取和插值系统中非常有效的单元,具有结构简单,易于工程实现的特点。CIC滤波器是数据通讯中的常用模块,一般用于数字下变频(DDC)和数字上变频(DUC)系统,随着数据传输率的增加,级联梳状滤波器(CIC)的应用变得尤为重要。.CIC滤波器的主要特点是,仅利用加法器、减法器和寄存器(无需乘法器),适合工作在高采样率。在数字下变频(DDC)中,CIC(级联积分梳状)滤波器起着重要的作用.它主要用于采样速率的抽取,同时具有低通滤波的作用。针对软件无线电中的多速率信号处理,结合二进制补码表示法,介绍了积分梳状滤波器的基本组成原理,以及决定滤波器性能的参数选择。本文在研究CIC滤波器基本原理的基础上,对其进行了FPGA仿真、综合,并最终应用在工程中,达到了设计要求。关键字:CIC滤波器 高采样率 低通滤波AbstractCIC filter has been proven in high-speed extraction and interpolation system is very effective unit, is simple in structure, easy to engineering characteristics. CIC filter is commonly used in data communications module, commonly used for digital down conversion (DDC) and figures on the frequency (DUC) system, with data transfer rate of increase, Cascade comb filter (CIC) Application of change Even more important. . CIC filter the main characteristics is that the only use addition, subtraction and register (no multiplier), suitable for work in high-sampling rate. In the digital down conversion (DDC) in, CIC (cascade integral comb) filters play an important role. It is mainly used for sampling rate of extraction, while a low pass filter role. For software radio in the multi-rate signal processing, with binary-code that, on the integral comb filter composed of the basic principles of filter performance and to determine the parameters of choice. CIC filter paper on the basic principles on the basis of , Its simulation of the FPGA, integrated and end-use applications in engineering, to design requirements.Keywords: CIC filter, high sampling rates, low pass filter目录摘要IAbstractII目录III前言11.滤波器的设计21.1 引言21.2 滤波器的原理21.2.1 CIC滤波器的概述21.2.2 CIC滤波器的原理51.2.3 单级CIC滤波器91.2.4 多级CIC滤波器101.3. CIC滤波器的指标的确定111.3.1 幅度指标111.3.2 相位指标131.3.3 低通CIC滤波器的参数141.3.4 CIC滤波器的数制选择141.4 CIC滤波器设计中的几个问题及解决方法151.4.1 CIC滤波器设计中的溢出问题及解决方法151.4.2 CIC滤波器特性改善202.CIC滤波器的MATLAB设计222.1MATLAB222.1.1MATLAB的主要功能与特点:222.2 FDATool界面设计232.2.1 FDATool的介绍232.3 低通CIC滤波器设计实例242.3.1 参数设计242.3.2 程序设计法27总结41致谢42参考文献43-IV-CIC滤波器的设计与仿真前言随着信息时代和数字世界的到来,数字信号处理已成为今一门极其重要的学科和技术领域。数字信号处理在通信、语音、图像、自动控制、雷达、军事、航空航天、医疗和家用电器等众多领域得到了广泛的应用。在数字信号处理应用中,数字滤波器十分重要并已获得广泛应用。数字信号处理中多采样率的应用非常普遍,尤其在软件无线电中应用广泛。软件无线电所基于的理论之一是带通采样定理,采样率越高越好,有利于系统的简化。另外,对一个频率很高的射频信号采样时,提高采样率有利于提高采样信号的量化信噪比,这就有必要在发送端上抽样。但是采样率的提高会导致后续的信号处理速度跟不上,因此有必要对信号在解调端进行下抽样。CIC滤波器就是多采样处理常用的器件之一。DDC中数字滤波器的主要作用是抽取、低通滤波,一般由FIR滤波器实现。但FIR滤波器需要大量的乘法器,且一般DDC中的采样速率很高,因此FIR滤波器需要工作在很高的频率,使用资源多、功耗大。鉴于此,当前的专用DDC芯片中,都采用了一种高效的滤波器CIC滤波器(CIC滤波器是由HogenauerEB于1981年提出的,因此又被称为Hogenauer滤波器)作为第一级滤波器,实现抽取、低通滤波;第二级则采用一般的FIR或者FIR实现的特殊滤波器(如半带滤波器),此时它们工作在较低的频率下,且滤波器的参数得到了优化,因此更容易以较低的阶数实现,节省资源,降低功耗。1.滤波器的设计1.1 引言数字信号处理中多采样率的应用非常普遍,尤其在软件无线电中应用广泛。软件无线电所基于的理论之是带通采样定理,采样率越高越好,有利于系统的简化。另外,对一个频率很高的射频信号采样时,提高采样率有利于提高采样信号的量化信噪比,这就有必要在发送端上抽样。但是采样率的提高会导致后续的信号处理速度跟不上,因此有必要对信号在解调端进行下抽样。CIC滤波器就是多采样处理常用的器件之一。1.2 滤波器的原理1.2.1 CIC滤波器的概述CIC(Cascaded Integral Comb)抽取滤波器,最初由Hogenauer提出,因为它结构简单,而且实现时无需乘法器和系数的存储,所以作为一种简单有效的抽样率转换方法,CIC已被广泛应用于通信和信号处理领域。CIC抽取滤波器通常是由一个积分梳状滤波器和一个抽取滤波器级联组合而成,其中,级联的积分梳状滤波器又分为积分部分和梳状部分,其传输函数表达式分别为 (1-1) (1-2)整个滤波器的传输函数为 (1-3)其中,M为抽取器的抽取倍数,R为梳状部分的差分延迟,一般取值为1或2,N为级联的级数,尺度因子1/MR用来归一化滤波器的直流增益。在实现时,通常将后M倍抽取器提到梳状滤波器之前,此时只有积分器工作在输入的高采样率上,而滤波器则工作在抽取之后的低采样率上,这样就大大减少了计算量。图1.1给出了CIC抽取滤波器的框图(R=1)。图1.1 CIC抽取滤波器框图在单位圆上均匀分布M个零点,可构成梳状滤波器,如果在Z=1处再设置一个极点以抵消此处的零点,则该系统的转移函数和频率特性分别是: (1-4) (1-5)其极-零分布及幅频特性分别如图1.2所示,显然,该滤波器具有低通特性。图1.2 低通滤波器极-零图图1.3 低通滤波器幅频特性H(z)的频率响应可写成: (1-6)MRsinw可见,CIC频率响应的零点在fsM的整数倍处,这里的fs是输入的高采样频率。时因为抽取而收稿将会混叠到滤波器通带中去的频带位于零点的两侧,其中最严重的混叠发生在第一个零点1M(fs归一化值)附近。若假设CIC滤波器的通带截止频率为fc,那么通常把1M一fc处的混叠抑制和fc处的通带衰减看作是评判波器性能好坏的两个指标。1.2.2 CIC滤波器的原理CIC(Cascaded Integrator Comb)filter,即积分梳状滤波器。所谓积分梳状滤波器,是指该滤波器的冲击响应具有如下的形式: (1-7)式中,D即是CIC滤波器的阶数(也可以是抽取因子)。CIC滤波器包括两个基本组成部分:积分部分和梳状部分。积分部分包括N个理想的积分器,每个积分器都是单极点的IIR滤波器。状态方程如下:y(n)=y(n-1)+ x(n) (1-8)积分器也可以看成是累加器。根据z变换,积分器的传输函数为: (1-9)梳状器是对称的FIR滤波器,其状态方程表示为:y(n)= x(n)- x(n-DM ) (1-10)式(1-10)中,M是设计参数,我们称之为微分延时。M可以是任何正整数,通常取l或2;R是抽取系数,也称为CIC的抽取倍数。其相应的传输函数为: (1-11)如果M取l,R不仅仅是传输因子,而且也是ClC滤波器的阶数,我们用D来定义CIC的阶数,那么系统组成的CIC滤波器的传输函数是: (1-12)CIC滤波器的实现结构如下图所示:图1.4 CIC滤波器的实现结构CIC滤波器有典型的低通频率特性,在(1-11)式中,令z=ejw可以得到CIC滤波器的频率响应,所以整个CIC滤波器的频率持性为: (1-13)在(1-13)式中,为抽样函数,且Sa(0)=l,所以CIC滤波器在w=O处的幅度值为D,即:。该滤波器的幅频和相频响应如图1.5所示。可以看出单级CIC滤波器的旁瓣电平是比较大的,只比主瓣低13.46dB,这意味着阻带衰减很差,难以满足一般的应用需求。为了降低旁瓣电平,可以采用多级CIC滤波器级联的办法解决,M级CIC滤波器级联,其阻带衰减将变为Q*13.46dB。在数字下变频芯片HSP50214中使用5级CIC滤波器,用来实现整数倍抽取。 图1.5 CIC滤波器的幅频和相频响应5级CIC滤波器级联后的频率响应如图1.6所示,可见旁瓣衰减已经大于60dB。图1.6 5级CIC级联滤波器频率响应多级CIC滤波器的传输函数为: (1-14)相应N级CIC滤波器的频率响应为: (1-15)在构造N级CIC滤波器时,只需把N级积分器的输出和N级梳状器输入串联起来,就构成了多级的CIC滤波器。CIC滤波器的结构简单,而且可以很方便地实现速率变换,在滤波器的两个部分之间,速率发生了变化。对于CIC的抽取滤波器而言,在最后一级积分器的输出端,采样速率由f变为fD。由式(1-14)可以看出,即使CIC滤波器里有积分器,但是它本身仍然是有限冲激响应滤波器(FIR)。每个CIC滤波器都相当于N个FIR滤波器的级联。因为每个FIR滤波器的系数都是1,因此CIC滤波器的结构对称,而且具有线性相位。图1.7 给出了对于N=4,D=7,fc=1/8CIC滤波器的频率响应。从图1.7中可以看到,CIC滤波器的频率响应有几个需要注意的特点:首先,零点存在与f=1的整数倍处。其次,零点附近区域将引起混叠或者镜像,如果设fc为通带边缘频率,那么混叠或者镜像带为:(i-fc)=f=(i+fc),在设计中,必须要考虑这些问题,并且根据需要来对参数D和N进行调整。另外,还可以看出,增加级数也会使通带衰减增加。1.2.3 单级CIC滤波器CIC滤波器一般由两个基本的环节组成(如图1.4所示),分别为基本递归式积分器(I)和梳状微分器(c)。其中输入数据x(n)的位宽为W1,输出数据Y(n)的位宽为W3,中问过程数据t1(n)和t2(n)的数据位宽为W2。从图1.4中可以看出,两部分传递函数分别为: (1-16) (1-17)整个系统总的传递函数为: (1-18)传递函数H(z)具有递归的IIR滤波器的形式,但实际上,由于D不等于1,所以,可以将H(z)简化为: (1-19)从式(1-19)可以看出,尽管传递函数具有递归形式,但H(z)仍可表达为FIR滤波器。需要相同位移的数字FIR滤波器时,一般需要D一1个加法器,而使用CIC滤波器实现相同的功能只需要1个加法器和1个减法器。若I和C之间加一个采样器,并使前级和后级采样比例为R,这样只要改变R的数值,就可以使系统工作在变采样率的系统中,而不必重新设计该系统,基于这样的特点,CIC滤波器就可被广泛应用于语音和数字信号共同传输的变采样率综合业务中。为了保证CIC滤波器能够正确的工作在变采样率的系统中,其内部存储器数据位宽Wz和输入数据位宽W。应不是任意的,它们要满足下式所表示的关系: (1-20)式中,N为CIC滤波器的阶次,R为采样比率,D为梳状微分器的阶次,通常为1或2。对于图1所示结构,取N=1。1.2.4 多级CIC滤波器为了保证实际的滤波效果,通常会使用多级CIC滤波器。现以4阶CIC滤波器为例来对多级CIC滤波器的Matlab算法仿真和FPGA的设计实现过程加以研究。对于该结构,若N=4,并取D=2,R=32;输入数据位宽W1=8,输出数据位宽W3=8;那么,由式(1-20)可得出内部寄存器的数据位宽为:由于前一级和后一级的采样率不同,因此,可将数据处理分成两部分:第一部分为数据x(n)通过级联积分器得到的响应数据t1(n),其传递函数为:时域内对应的表达式为: (1-21)另一部分是通过采样后,t2(n)通过梳状滤波器得到的最终输出数据y(n),该部分的传递函数为:其时域内所对应的表达式为: (1-22)然而,t1(n)和t2(n)变采样数据抽取应满足如下关系: (1-23)式中,i。为采样的基准时间点;i为采样标号;R为采样率。1.3. CIC滤波器的指标的确定1.3.1 幅度指标(1) 绝对指标0,Wp段叫做通带,&1是在理想通带中能接受的振幅波动(或容限);Ws,段叫做阻带,&2是阻带中能接受的振幅波动(或容限);Wp,Ws叫做过渡带,在此段上对幅度响应通常没有限制,也可以给些弱限制。(2) 相对指标其中三种频带的定义不变,只是Rp是带通波动的dB值;As是阻带衰减的dB值。其值定义为: (1-24)上述两种指标存在一定的数学关系。由于绝对指标中的H(jw)max=(1+) (1-25)因此, (1-26) (1-27)逆向关系为: (1-28) (1-29)注: %由delta1及delta2求Rp的语句; %由delta1及delta2求As的语句; %求Rp及delta1的语句; %As及delta1求delta2的语句;(a)绝对指标(b)相对指标图1.8 FIR滤波器的技术指标图1.9 滤波器绝对和相对指标之间的数据曲线1.3.2 相位指标主要是线性相位条件。即理想的滤波器相位应该和频率w成正比,即。如果频率为w的信号延迟的相角为,则对应的时间延迟为。因此满足上式的系统对信号中所有的频率分量都具有相同的时间延迟(其单位为拍数,没有量纲),如果该滤波器的振幅特性又是常数,则通过该滤波器的信号仅仅有一个纯粹的时延,而不会产生波形失真。略低一点的要求是相位和频率w成线性关系,即满足这个条件的系统不能保证对信号中所有的频率分量都具有相同的时间延迟,因为不是常数,多了一个非常数项,因此信号通过这样的系统仍然会产生相位失真。不过如果比较小,比小得多,那么它的失真往往仍可以忽略不计。1.3.3 低通CIC滤波器的参数fp:通带截止频率;(1500HZ)fs:阻带起始频率;(2000HZ)Rp:通带内波动,即通带内容许的最大衰减;(3dB)Rs:阻带内最小衰减;(50dB)fN:采样频率;(8000HZ)wp:通带截止角频率;(1500/4000)ws:阻带起始角频率;(2000/4000)1.3.4 CIC滤波器的数制选择多数数字处理设备都采用二进制补码来表示数值。例如有符号整数X的位宽为W,则其二进制补码的表述形式为: (1-30)式中,为数X的第n位二进制数值。该表达式所表示的有符号数的有效范围为2N,2N-1。从式(1-30)中可以看出,以二进制补码形式表示有符号数时,其最高位除了表示符号位外,还可表示数据位。假设给定位宽W为4的有符号数,在其有效数据范围-8,7内的算式为:6+4-5。为了表述方便,现约定未加标识的数字采用十进制,而以()c表示对应的二进制补码形式,这样,上述各数可以表示为:6=(0110)c、4=(0100)c和-5=(1011)c这样在计算6+4=(0110)c+(0100)c=(1010)c=-2时会出现溢出错误,而最终结果:6+4-5=(0110)c+(0100)+(1011)c=(0101)c=5才是正确结果。从上述计算过程可以看出:所有的运算都是基于2进行运算的。这样,如果最终的结果在有效范围内,则对于中间过程所产生的溢出算术运算,就可以完全忽略,从而使最终的结果保持正确。这种方式可使多个有符号的数字进行数值运算成为可能。因此二进制补码形式成为当今流行的数字处理系统所常用的数字表示方式。因此,在设计CIC滤波器的过程中,仍然采用该数制表示方式。1.4 CIC滤波器设计中的几个问题及解决方法CIC滤波器的积分器Hi(z)是不稳定系统,如果不采取措施,它们级联后会出现溢出现象。另外,滤波器级数过多还会引起高频失真现象。最后为了获得较大的阻带衰减,降低混叠影响,在信号带宽一定的条件下,应尽可能的采用小的抽取因子或增大采样率fs,后者意味着CIC抽取滤波器一般要用在抽取系统的第一级或者内插系统的最后一级(输入采样率最高)。下面结合Simulink仿真说明以上几个问题,并提出解决方法。1.4.1 CIC滤波器设计中的溢出问题及解决方法(1) 溢出问题。在DSP设计中,几乎都会面对如何解决溢出问题。CIC滤波器设计也不例外,CIC滤波器的基础是完美的零极点抵消,要实现这样一个事实,只有使用精确的积分算法才是唯一可行的。二进制补码就具有支持无误差算法的能力,系统中的运算是采用二进制补码的形式运行的。在二进制补码中,算法是以模2的b次方执行,因此,虽然累加器会有溢出的情况发生,但是二进制补码系统的精确算法会自动地对积分器的溢出进行补偿,依然可以得到正确的输出结果,不会受到累加器溢出的影响。尤其它的积分部分是由N 级不稳定的系统级联而成,如果不采取措施,就会产生溢出问题。根据原理图利用Simulink搭建五级CIC滤波器,如图1.10所示。图1.10 五级CIC下抽样滤波器(D=75)采用输入信号为采样频率为150MHz的单音信号,经过图1.10所示CIC滤波器处理后其输出信号的时域和频域仿真图如图1.11,图1.12所示。图1.11为输入输出信号(Bin =Bout=8),如图1.11所示信号已经不能识别,并且还有不断上升的趋势。如图1.12所示,信号的频谱被淹没在噪声中,而且在一段时间后信号会完全被淹没,分析其主要原因是寄存器溢出。(2)CIC滤波器溢出问题解决方法。CIC内核在所有微分和积分阶段都需要采样精度的扩展。由CIC下抽样滤波器的系统频响可以得到其增益,G=DM。在系统N级级联后可以得到其CIC下抽样滤波器增益,如(1-31)式。 (1-31)由(1-31)式可以得到CIC下抽样滤波器每一级输出所需要的精度: (1-32)而对于上抽样系统其每一级的增益为 (1-33)图1.11 输入输出信号图1.12 输出溢出信号频谱图其中,N为CIC滤波器的级联级数。所以其每一个积分器和梳状滤波器阶段的寄存器长度,也就是每一级数据的表示精度应为: (1-34) (1-35)对于改进后的CIC五级滤波器进行仿真,设输入数据的采样精度为8,每一级后输出的数据都采用最大的采样精度42,如图1.13所示。五阶CIC滤波器改进后,输入信号与输出信号(Bin=8,Bout=42)对比如图1.14。从图1.15可以看到,输出信号频谱图基本能够反映单音信号的特点。但是该信号杂波较多,这是由于CIC对信号截短,所产生的频谱泄漏现象,可以通过滤波器加以克制,也可以通过改进窗函数的方法来改进。时域图上可以看出,信号经过CIC滤波器后没有失真。时域图和频谱图显示信号不再无限增长。综合以上的结果,CIC滤波器的溢出现象被消除,扩展表示精度可以解决寄存器溢出问题。该办法有一个缺点就是滤波器各阶段信号表示精度需要扩展,从而造成部分寄存器浪费。图1.13 改进后五级CIC下抽样滤波器(D=75)图1.14 输入输出信号时域仿真图1.15 输出信号频谱图1.4.2 CIC滤波器特性改善CIC滤波器的阻带衰减和过渡带特性不是很好,这点可以从图1.16看出,所以需要对CIC滤波器进行阻带和过渡带特性的改进。(1) 级联法。CIC可以通过级联的方法来实现加大过渡带和阻带的衰减,比如Ad6624中采用了五级CIC滤波器级联的方法来加大阻带衰减。但是级联级数是有限制的,信号经过下抽样后,相混叠的部分为:引入带宽比例因子b,即设其中是无混叠信号的带宽。所以: (1-36)式中B为抽取信号的带宽。为了获得较小的b以降低混叠,在B一定的条件下,应尽可能地采用小的抽取因子D或增大输入fs,但是带宽比例因子b的选取需要考虑的第二个问题是w=w1时的衰减不能太大,也就是说从带内平坦度考虑,带宽因子b不能选得太宽。否则会引起高频失真,所以CIC滤波器的级数不能选得太高,一般以五阶为限。(2) 补偿滤波器法。除了级联法外还可以通过在CIC滤波器后加补偿滤波器的方法来实现对CIC滤波器性能的改进,如图1.17所示。图1.17中的补偿滤波器的冲击响应为:,可以看到CIC滤波器的通带变得平坦,阻带衰减加大。补偿滤波器的冲击响应一般式为 (1-37)其中N为滤波器级数。该滤波器一般是用系数可编程的FIR滤波器(不基于CIC滤原理的滤波器)来实现。它的作用不仅是补偿通带衰减,并且要达到增大阻带衰减的作用。图1.16 CIC滤波器(M=1,N=4,D=7,fc=0.125)图1.17 补偿滤波器(N=3,D=64)2.CIC滤波器的MATLAB设计2.1MATLABMATLAB是一套用于科学计算的可视化高性能语言与软件环境。它集数值分析、矩阵运算、信号处理和图形显示于一体,构成了一个界面友好的用户环境。它的信号处理工具箱包含了各种经典的和现代的数字信号处理技术,是一个非常优秀的算法研究与辅助设计的工具。在设计数字滤波器时,通常采用MATLAB来进行辅助设计和仿真。2.1.1MATLAB的主要功能与特点:(1) MATLAB语言表达方式与日常习惯使用的数学表达方式几乎相同,是基于向量、数组和矩阵的高级程序设计语言;(2)具有高质量,高可靠性的数值计算能力;(3)提供了几乎涵盖所有科学领域所需的算法程序、库函数和工具包;(4)具有可是化建模和仿真功能;(5)跨平台兼容,即可以将MATLAB程序转化为其他语言程序(如C+、JAVA等),也可以与其他语言程序相连接使用;(6)具有开放性和可扩充性,即可以方便的与外部设备、文件连接使用。2.2 FDATool界面设计2.2.1 FDATool的介绍FDATool(Filter Design & Analysis Tool)是MATLAB信号处理工具箱里专用的滤波器设计分析工具,MATLAB6.0以上的版本还专门增加了滤波器设计工具箱(Filter Design Toolbox)。FDATool可以设计几乎所有的基本的常规滤波器,包括FIR和IIR的各种设计方法。它操作简单,方便灵活。FDATool界面总共分两大部分,一部分是Design Filter,在界面的下半部,用来设置滤波器的设计参数,另一部分则是特性区,在界面的上半部分,用来显示滤波器的各种特性。Design Filter部分主要分为:Filter Type(滤波器类型)选项,包括Lowpass(低通)、Highpass(高通)、Bandpass(带通)、Bandstop(带阻)和特殊的FIR滤波器。Design Method(设计方法)选项,包括IIR滤波器的Butterworth(巴特沃思)法、Chebyshev Type(切比雪夫I型)法、Chebyshev Type II(切比雪夫II型)法、Elliptic(椭圆滤波器)法和FIR滤波器的Equiripple法、Least-Squares(最小乘方)法、Window(窗函数)法。Filter Order(滤波器阶数)选项,定义滤波器的阶数,包括Specify Order(指定阶数)和Minimum Order(最小阶数)。在Specify Order中填入所要设计的滤波器的阶数(N阶滤波器,Specify OrderN-1),如果选择Minimum Order则MATLAB根据所选择的滤波器类型自动使用最小阶数。Frenquency Specifications选项,可以详细定义频带的各参数,包括采样频率Fs和频带的截止频率。它的具体选项由Filter Type选项和Design Method选项决定,例如Bandpass(带通)滤波器需要定义Fstop1(下阻带截止频率)、Fpass1(通带下限截止频率)、Fpass2(通带上限截止频率)、Fstop2(上阻带截止频率),而Lowpass(低通)滤波器只需要定义Fstop1、Fpass1。采用窗函数设计滤波器时,由于过渡带是由窗函数的类型和阶数所决定的,所以只需要定义通带截止频率,而不必定义阻带参数。Magnitude Specifications选项,可以定义幅值衰减的情况。例如设计带通滤波器时,可以定义Wstop1(频率Fstop1处的幅值衰减)、Wpass(通带范围内的幅值衰减)、Wstop2(频率Fstop2处的幅值衰减)。当采用窗函数设计时,通带截止频率处的幅值衰减固定为6db,所以不必定义。Window Specifications选项,当选取采用窗函数设计时,该选项可定义,它包含了各种窗函数。2.3 低通CIC滤波器设计实例2.3.1 参数设计参数要求:fp:通带截止频率;(1500HZ)fs:阻带起始频率;(2000HZ)Rp:通带内波动,即通带内容许的最大衰减;(3dB)Rs:阻带内最小衰减;(50dB)fN:采样频率;(8000HZ)wp:通带截止角频率;(1500/4000)ws:阻带起始角频率;(2000/4000)本例中,首先在Filter Type中选择Lowpass(低通滤波器);在Design Method选项中选择FIR Equiripple,接着在Frequency Specifications选项中选取Units为Hz;指定Fs为8000Hz,Fpass为1500Hz,Fstop为2000Hz,Wpass为0.375dB,Wstop为0.5dB。设置完以后点击Design Filter即可得到所设计的FIR滤波器。通过菜单选项Analysis可以在特性区看到所设计滤波器的幅频响应、相频响应、零极点配置和滤波器系数等各种特性。设计完成后将结果保存为1.fda文件。2.3.2 程序设计法在MATLAB中,对各种滤波器的设计都有相应的计算振幅响应的函数也可以用来做滤波器的程序设计。%积分梳状滤波器的设计clear;clc;%积分滤波器的响应b1=1;a1=1 -1;% freqz(b1,a1,whole);hold on;%梳状滤波器的响应D=9;b2=1 zeros(1,D-1) -1;a2=1;% freqz(b2,a2,whole);%积分梳状滤波器响应b3=b2;a3=a1;% freqz(b3/D,a3,whole);%两只内插因子为9的CIC级联响应b4=conv(b3,b3);a4=conv(a3,a3);% freqz(b4/D2,a4,whole);%三只内插因子为9的CIC级联响应b5=conv(b4,b3);a5=conv(a4,a3);% freqz(b5/D3,a5,whole);%四只内插因子为9的CIC级联响应b6=conv(b4,b4);a6=conv(a4,a4);freqz(b6/D4,a6,whole);%五只内插因子为9的CIC级联响应b7=conv(b6,b3);a7=conv(a6,a3);freqz(b7/D5,a7,whole);在下面的程序代码中,实现了两路(I和Q)宽度为9位的数据的16倍内插,内插滤波器采用5级级联CIC滤波器,最后输出宽度截取28.0中的28.21共8位数据。消耗的资源为771个LC,速度可达30MHz以上。SUBDESIGNIQ_CIC_INTERPOLATOR(CLK1X:INPUT;CLK16X:INPUT;RESET:INPUT;IDIN8.0:INPUT;QDIN8.0:INPUT;ICICOUT7.0:OUTPUT;QCICOUT7.0:OUTPUT;)VARIABLE-CIC VARIABLES-ROUND3.0:DFF;IREGA8.0:DFF;IREGB9.0,INODEA9.0:DFF;IREGC10.0,INODEB10.0:DFF;IREGD11.0,INODEC11.0:DFF;IREGE12.0,INODED12.0:DFF;IZEROOUT12.0:DFF; IREG012.0,INODE0A12.0:DFF;IREG116.0,INODE1A16.0:DFF;IREG220.0,INODE2A20.0:DFF; IREG324.0,INODE3A24.0:DFF;IREG428.0,INODE4A28.0:DFF;-QREGA8.0:DFF;QREGB9.0,QNODEA9.0:DFF;QREGC10.0,QNODEB10.0:DFF;QREGD11.0,QNODEC11.0:DFF;QREGE12.0,QNODED12.0:DFF;QZEROOUT12.0:DFF; QREG012.0,QNODE0A12.0:DFF;QREG116.0,QNODE1A16.0:DFF; QREG220.0,QNODE2A20.0:DFF; QREG324.0,QNODE3A24.0:DFF;QREG428.0,QNODE4A28.0:DFF;-BEGIN-CIC-ROUND.CLK = CLK16X;ROUND.D = ROUND.Q + 1;ROUND.CLRN = RESET;-I ROAD-IREGA.CLK = CLK1X;IREGB.CLK = CLK1X;IREGC.CLK = CLK1X;IREGD.CLK = CLK1X;IREGE.CLK = CLK1X;INODEA.CLK = CLK1X;INODEB.CLK = CLK1X;INODEC.CLK = CLK1X;INODED.CLK = CLK1X;IZEROOUT.CLK = CLK16X;IREG0.CLK = CLK16X;IREG1.CLK = CLK16X;IREG2.CLK = CLK16X;IREG3.CLK = CLK16X;IREG4.CLK = CLK16X;INODE0A.CLK = CLK16X;INODE1A.CLK = CLK16X;INODE2A.CLK = CLK16X;INODE3A.CLK = CLK16X;INODE4A.CLK = CLK16X;IREGA.CLRN = RESET;IREGB.CLRN = RESET;IREGC.CLRN = RESET;IREGD.CLRN = RESET;IREGE.CLRN = RESET;INODEA.CLRN = RESET;INODEB.CLRN = RESET;INODEC.CLRN = RESET;INODED.CLRN = RESET;IZEROOUT.CLRN = RESET;IREG0.CLRN = RESET;IREG1.CLRN = RESET;IREG2.CLRN = RESET;IREG3.CLRN = RESET;IREG4.CLRN = RESET;INODE0A.CLRN = RESET;INODE1A.CLRN = RESET;INODE2A.CLRN = RESET;INODE3A.CLRN = RESET;INODE4A.CLRN = RESET;IREGA.D = IDIN8.0;IREGB.D = INODEA.Q;IREGC.D = INODEB.Q;IREGD.D = INODEC.Q;IREGE.D = INODED.Q;INODEA.D = (IDIN8,IDIN8.0) - (IREGA8.Q,IREGA.Q);INODEB.D = (INODEA9.Q,INODEA.Q) - (IREGB9.Q,IREGB.Q);INODEC.D = (INODEB10.Q,INODEB.Q) - (IREGC10.Q,IREGC.Q);INODED.D = (INODEC11.Q,INODEC.Q) - (IREGD11.Q,IREGD.Q);-IF ROUND.Q = 0 THENIZEROOUT.D = INODED.Q - IREGE.Q;QZEROOUT.D = QNODED.Q - QREGE.Q;ELSEIZEROOUT.D = 0;QZEROOUT.D = 0;END IF;-IREG0.D = IREG0.Q + IZEROOUT.Q;INODE0A.D = IREG0.Q +IZEROOUT.Q;IREG1.D = IREG1.Q + (INODE0A12.Q,INODE0A12.Q,INODE0A12.Q,INODE0A12.Q,INODE0A.Q);INODE1A.D = IREG1.Q + (INODE0A12.Q,INODE0A12.Q,INODE0A12.Q,INODE0A12.Q,INODE0A.Q);IREG2.D = IREG2.Q + (INODE1A16.Q,INODE1A16.Q,INODE1A16.Q,INODE1A16.Q,INODE1A.Q);INODE2A.D = IREG2.Q + (INODE1A16.Q,INODE1A16.Q,INODE1A16.Q,INODE1A16.Q,INODE1A.Q);IREG3.D = IREG3.Q + (INODE2A20.Q,INODE2A20.Q,INODE2A20.Q,INODE2A20.Q,INODE2A.Q);INODE3A.D = IREG3.Q + (INODE2A20.Q,INODE2A20.Q,INODE2A20.Q,INODE2A20.Q,INODE2A.Q);IREG4.D = IREG4.Q + (INODE3A24.Q,INODE3A24.Q,INODE3A24.Q,INODE3A24.Q,INODE3A.Q);INODE4A.D = IREG4.Q + (INODE3A24.Q,INODE3A24.Q,INODE3A24.Q,INODE3A24.Q,INODE3A.Q);ICICOUT = INODE4A28.21.Q;-Q ROAD-QREGA.CLK=CLK1X;QREGB.CLK=CLK1X;QREGC.CLK=CLK1X;QREGD.CLK=CLK1X;QREGE.CLK=CLK1X;QNODEA.CLK=CLK1X;QNODEB.CLK=CLK1X;QNODEC.CLK=CLK1X;QNODED.CLK=CLK1X;QZEROOUT.CLK = CLK16X;QREG0.CLK = CLK16X;QREG1.CLK = CLK16X;QREG2.CLK = CLK16X;QREG3.CLK = CLK16X;QREG4.CLK = CLK16X;QNODE0A.CLK = CLK16X;QNODE1A.CLK = CLK16X;QNODE2A.CLK = CLK16X;QNODE3A.CLK = CLK16X;QNODE4A.CLK = CLK16X;QREGA.CLRN = RESET;QREGB.CLRN = RESET;QREGC.CLRN = RESET;QREGD.CLRN = RESET;QREGE.CLRN = RESET;QNODEA.CLRN = RESET;QNODEB.CLRN = RESET;QNODEC.CLRN = RESET;QNODED.CLRN = RESET;QZEROOUT.CLRN = RESET;QREG0.CLRN = RESET;QREG1.CLRN = RESET;QREG2.CLRN = RESET;QREG3.CLRN = RESET;QREG4.CLRN = RESET;QNODE0A.CLRN = RESET;QNODE1A.CLRN = RESET;QNODE2A.CLRN = RESET;QNODE3A.CLRN = RESET;QNODE4A.CLRN = RESET;QREGA.D= QDIN8.0;QREGB.D=QNODEA.Q;QREGC.D=QNODEB.Q;QREGD.D=QNODEC.Q;QREGE.D=QNODED.Q;QNODEA.D=(QDIN8,QDIN8.0) - (QREGA8.Q,QREGA.Q);QNODEB.D=(QNODEA9.Q,QNODEA.Q) - (QREGB9.Q,QREGB.Q);QNODEC.D=(QNODEB10.Q,QNODEB.Q) - (QREGC10.Q,QREGC.Q);QNODED.D=(QNODEC11.Q,QNODEC.Q) - (QREGD11.Q,QREGD.Q);-QREG0.D = QREG0.Q + QZEROOUT.Q;QNODE0A.D = QREG0.Q +QZEROOUT.Q;QREG1.D = QREG1.Q + (QNODE0A12.Q,QNODE0A12.Q,QNODE0A12.Q,QNODE0A12.Q,QNODE0A.Q);QNODE1A.D = QREG1.Q + (QNODE0A12.Q,QNODE0A12.Q,QNODE0A12.Q,QNODE0A12.Q,QNODE0A.Q);QREG2.D = QREG2.Q + (QNODE1A16.Q,QNODE1A16.Q,QNODE1A16.Q,QNODE1A16.Q,QNODE1A.Q);QNODE2A.D = QREG2.Q + (QNODE1A16.Q,QNODE1A16.Q,QNODE1A16.Q,QNODE1A16.Q,QNODE1A.Q);QREG3.D = QREG3.Q + (QNODE2A20.Q,QNODE2A20.Q,QNODE2A20.Q,QNODE2A20.Q,QNODE2A.Q);QNODE3A.D = QREG3.Q + (QNODE2A20.Q,QNODE2A20.Q,QNODE2A20.Q,QNODE2A20.Q,QNODE2A.Q);QREG4.D = QREG4.Q + (QNODE3A24.Q,QNODE3A24.Q,QNODE3A24.
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 压缩资料 > 基础医学


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!