基于Matlab16阶FIR低通滤波器的设计毕业设计论文.doc_第1页
基于Matlab16阶FIR低通滤波器的设计毕业设计论文.doc_第2页
基于Matlab16阶FIR低通滤波器的设计毕业设计论文.doc_第3页
基于Matlab16阶FIR低通滤波器的设计毕业设计论文.doc_第4页
基于Matlab16阶FIR低通滤波器的设计毕业设计论文.doc_第5页
已阅读5页,还剩49页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1 绪 论1.1 引言滤波技术是信号分析、信号处理技术中的重要分支。无论是信号的获取、传输,还是信号的处理、转换都离不开滤波技术。滤波技术对信号安全可靠和有效灵活的传递至关重要【1】。在电子系统中,由于滤波器的好坏直接影响系统的性能,所以滤波技术已成为备受关注而热门的课题,滤波器的研制已受到各国研究者越来越多的重视。我国在上世纪50年代后期开始广泛使用滤波器,主要应用在报路和话路滤波。经过半个多世纪的发展,我国滤波器在研制、生产、应用等方面已进入国际发展轨道,但由于缺少专门研制机构,加之集成工艺和材料工业发展步伐的缓慢,使得我国在许多新型滤波器的研制和应用方面与国外仍有较大的差距【2】。数字滤波器是对离散时间信号进行滤波处理以得到期望的响应特性的离散时间系统。数字滤波器一般由寄存器、延时器、加法器和乘法器等基本数字电路来实现。数字滤波器能满足滤波器对幅度和相位特性的严格要求,避免模拟滤波器所无法克服的电压漂移、温度漂移和噪声等问题。随着集成电路技术的发展,数字滤波器性能不断提高而成本却不断降低。数字滤波器在语音信号处理、图像信号处理、医学生物信号处理以及其他应用领域都得到了广泛应用。随着电子计算机和大规模集成电路技术的发展,数字滤波器可用计算机软件实现,也可用大规模集成数字硬件实时实现,数字滤波器已具备了高精度、高可靠性、可程控改变性或复用、便于集成等众多优点【3】。按照数字滤波器(DF)的特性,可分为线性与非线性、因果与非因果、无限长冲激响应(IIR)与有限长冲激响应(FIR)等类型。在这些滤波器中,线性时不变的数字滤波器是最基本的类型。由于数字系统可以对延时器加以利用,因此若在数字滤波器中引入一定程序的非因果性,就可获得比传统的因果滤波器更灵活强大的特性。相对于IIR滤波器,FIR滤波器具有易于实现和系统绝对稳定的优势,因此得到广泛的应用【4】。1.2 国内外研究现状在国内外的研究中,设计FIR滤波器所涉及的乘法运算方式有:并行乘法、位串行乘法和分布式算法的乘法。并行乘法虽然速度快,同时占用的硬件资源极大。如果滤波器的长度增加,乘法器位数也将变大,硬件规模将变得十分庞大。位串行乘法器的实现方法主要是通过对乘法运算进行分解,用加法器来完成乘法的功能,也即无乘法操作的乘法器。但由于一个8*8位的乘法器输出为16位,为了得到正确的16位结果,串行输入的二进制补码数要进行符号位扩展,即将串行输入的8位二进制补码前补8个0(对正数)或8个1(对负数)后才输入乘法器。如果每一位的运算需要一个时钟周期的话,这个乘法器需要16个时钟周期才能计算出正确结果,这就意味着此类乘法器要完全计算出结果的延迟必将会很大【5】。所以位串行乘法器虽然使得乘法器的硬件规模达到了最省,但是由于是串行运算,使得它的运算周期过长,速度与规模折衷考虑时不是最优的。分布式算法(distributed arithmetic,AD)的主要特点是巧妙的利用ROM查找表将固定系数的乘累加(Multiply-accumulator,MAC)运算转化为查表操作,它与传统算法实现乘累加运算的不同在于执行部分积运算的先后顺序不同。分布式算法在完成乘累加功能时是通过将各输入数据每一对应位产生的部分积预先进行相加形成相应的部分积,然后再对各个部分积累加产生最终结果【6】,而传统算法是等到所有乘积已经产生之后再来相加来完成乘累加运算的。就小位宽来说,AD算法设计的FIR滤波器的速度可以显著的超过基于MAC的设计。相对于前两种方法,DA算法既可以全并行实现,又可以全串行实现,还可以串并行结合实现,可以在硬件规模和滤波器速度之间作适当的折中,是现在被研究的主要方法。FIR数字滤波器的实现,大体可以分为软件实现和硬件实现方法两种。软件实现方法即是在通用的微型计算机上用软件实现。利用计算机的存储器、运算器和控制器把滤波所要完成的运算编成程序通过计算机来执行,软件可由使用者自已编写,也可以使用现成的。国内外的研究机构、公司已经推出了不同语一言的信号滤波处理软件包。但是这种方法速度慢,难以对信号进行实时处理,虽然可以用快速傅立叶变换算法来加快计算速度,但要达到实时处理要付出很高的代价,因而多用于教学与科研【7】。硬件实现即是设计专门的数字滤波硬件,采用硬件实现的方法一般都比采用软件实现方法要困难得多,目前主要采用的方法有以下几种【8】:(1)采用DSP(Digital Signal Processing)处理器实现DSP处理器是专为数字信号处理而设计的,如TI公司的TMS32OCX系列,AD公司的ADSPZXI,ADSP210X系列等。它主要数字运算单元是一个乘累加器(Multiply-accumulator MAC),能够在一个机器周期内完成一次乘累加运算,配有适合于信号处理的指令,具备独特的循环寻址和倒序寻址能力。这些特点都非常适合数字信号处理中的滤波器设计的有效实现,并且它速度快,成本低,在过去的20多年的时间里,软件可编程的DSP器件几乎统治了商用数字信号处理硬件的市场。(2)采用固定功能的专用信号处理器来实现适用于过程固定而又追求高速的信号处理任务,是以指定的算法来确定它的结构,使用各种随机逻辑器件组成的信号处理器。它们体积小、保密性好,具有极高的性能,然而灵活性差。二者相比,固定功能的DSP专用器件可以提供很好的实时性能,但其灵活性差,研发周期长,难度也比较大;DSP处理器的成本低且速度较快,灵活性好,但由于软件算法在执行时的顺序性,限制了它在高速和实时系统中的应用。在一些高速应用中,系统性能的要求不断增长,而DSP性能的提高却落后于需求的增长。现在,大规模可编程逻辑器件为数字信号处理提供了一种新的实现方案。分布式算法可以很好地在FPGA(Field Programmable Gate Array)中实现,然而却不能有效的在DSP处理器中实现,所以采用FPGA使用分布式算法实现FIR数字滤波器有着很好的发展前景。采用现场可编程门阵列FPGA来实现FIR数字滤波器,既兼顾ASIC器件(固定功能DSP专用芯片)的实时性、又具有DSP处理器的灵活性。FPGA和DSP技术的结合能够更进一步提高集成度、加快速度和扩展系统功能。用FPGA设计的产品还具有体积小、速度快、重量轻、功耗低、可靠性高、仿制困难、上批量成本低等优点。但是,DA算法中的查找表的规模随着FIR数字滤波器长度的增加呈指数增长,而且随着滤波器系数的位数的增加,查找表的规模也会增加,这将极大的增加设计的硬件规模。所以如何减小查找表的规模成为尚待解决的问题。2 FIR数字滤波器设计2.1 数字滤波器基础【9】数字滤波器在数字信号处理中属于预处理的部分,因而起着基础性的作用,数字滤波器包括IIR和FIR数字滤波器。数字滤波器具有精度高、稳定性好、灵活性强、不要求阻抗匹配,易于修改等特点。下面将首先介绍一下数字滤波器,然后重点讨论FIR数字滤波器的设计原理和结构。2.1.1 数字滤波器简介一个简单的数字滤波系统如图2-1所示。图中,x(t)为模拟信号,经过A/D转换器后变为一个有着先后顺序的数字序列x(n)。然后x(n)通过数字滤波系统H(z),即得到数字滤波器的输出y(n)。H(z)为该数字滤波系统的单位脉冲响应h(n)的Z变换,即: (2-1) 若h(n)为无限长序列,则得到的数字滤波器为IIR数字滤波器,又称递归滤波器;反之,若h(n)为有限长序列,则得到的数字滤波器为FIR滤波器,也称非递归滤波器。一个线形时不变因果滤波器可表示为: (2-2)其中N为h(n)的长度,即滤波器的长度。图2-1 数字滤波系统IIR滤波器主要是基于对模拟滤波器如巴特沃斯滤波器、椭圆滤波器等的幅频响应进行逼近,而其相频响应是非线性的。与IIR滤波器不同,FIR滤波器可以把相位特性设计成线性。这使得FIR数字滤波器在信号无失真传输、数据通信、图像传输与处理、语音信号处理等有线性相位要求的领域应用广泛。FIR滤波器的优点是软硬件实现结构简单,不用考虑系统的稳定性问题;缺点是实现较高性能的频率响应需要较高的滤波器阶数。2.1.2 FIR数字滤波器的结构由于FIR数字滤波器实现算法的不同,我们可以把FIR滤波器的结构划分为直接型、级联型、频率采样型和快速卷积型四种基本形式【10】。文章主要讨论前两种结构。(1)直接型结构由式2-2可直接画出FIR数字滤波器的直接型结构,如图2-2所示。对于直接型结构来说,一个长度为N的FIR滤波器,每产生一个输出数据,要经过N次乘法,N-1次加法。对于使用FPGA开发FIR数字滤波器,这样的结果显然不令人满意。图2-2 直接型结构于是做了一下改进,这种改进是基于线性相位的FIR数字滤波器的。以严格线性相位,N为偶数的FIR滤波器为例,如图2-3所示。图2-3 直接型的改进由于关于对称,我们可以将经过延时环节的位置关于对称的数据预先相加,然后可以再乘以相应的滤波器系数进行累加得到最终的输出结果。这样,每产生一个输出,经过次乘法,次加法,比原来减少次乘法。(2)级联型结构对式(2-2)进行因式分解,并将零点共轭的因式放在一起,这样产生了若干个一阶子式和二阶子式,将一阶子式看作二阶子式的一个特例,则系统函数可以表示为: (2-3)FIR数字滤波器的级联型结构如图2-4所示。图2-4 级联型结构从图中可以看出,级联型结构每产生一个输出,需要次乘法,次加法。级联型的最大特点是可以分别独立调整每个子系统的零点之值,当需要精确控制滤波器的零点位置时,往往采用这种结构5。2.2 FIR数字滤波器设计方法FIR数字滤波器的设计方法主要有三种【11】:时窗函数法、频率采样法和等波纹设计法。下面将分别讨论一下这三种方法的设计原理,然后给出设计步骤,最后在比较一下这三种方法的优缺点。2.2.1 窗函数法一个理想低通滤波器的幅频特性如图2-5所示。的表达式为 (2-4)图2-5 理想低通滤波器频谱图对进行离散时间傅里叶逆变换,得 (2-5)是一个关于对称的无限长序列,是系统的单位脉冲响应,这说明系统是非因果的,在物理上不可实现。为了能够得到一个可实现的系统,可以将截取一部分,并顺序右移,使之成为一个因果的有限长序列。这种方法就好比在时域打开一个窗口一样,因而称为窗函数法。可以预见,使用这种方法截取的序列越长,对理想的幅频特性逼近的越好。常见的时窗函数有矩形窗、汉宁窗、汉明窗、布莱克曼窗、凯泽窗等。矩形窗的表达式为:,为整数。当用矩形窗设计FIR滤波器时,所产生的频率响应,与理想滤波器的频率特性相比,在理想特性不连续点处附近形成了过渡带,并在过渡带两侧形成持续时间很长,逐渐衰减的波纹,即通带内产生了波动,而阻带内产生了余振,这种现象称之为吉布斯(Gibbs)效应。吉布斯效应直接影响到滤波器的性能,因为通带内的波动会影响到滤波器的平稳性,阻带内的波动则影响阻带最小衰减。为了克服吉布斯效应,可以从两个方面着手:一是在频域,避免理想滤波器频谱中出现的跃变现象,把它改造成一条连续光滑的曲线,所用的方法是镶边法;二是在时间域,对截尾函数进行改造,也即设计出好的时窗函数。一个好的时窗函数的要求:A.主瓣宽度尽可能地小。B.旁瓣水平(振幅或能量)相对于主瓣来说也尽可能地小。但是这两个标准之间彼此是有矛盾的,即主瓣宽度越大,旁瓣水平才可能越低。因此实际上,我们只能在这两个标准之间作一权衡,针对具体问题,找出一个适当的时窗函数。五种窗函数的主要参数如表2-1所示。应当说明的是,用时窗函数法设计的FIR滤波器通带波纹幅度近似等于阻带波纹幅度。一般阻带最小衰减达到40dB以上,则通带最大衰减就小于0.1dB。最后,总结一下利用时窗函数设计FIR数字滤波器的步骤:A. 根据所需设计的数字滤波器类型(低通、高通、带通、带阻),确定线性相位数字滤波器类型。B. 根据滤波器阻带衰减,选择窗函数的类型,根据过渡带宽度确定时窗函数的长度,并根据线性相位条件进行修正。C. 确定理想数字滤波器的频率响应函数,其中为幅度特性函数,为相位特性函数。D. 计算理想滤波器的单位脉冲响应,即。E. 加窗得到设计结果,即。表2-1 五种窗函数参数表窗函数窗谱性能指标加窗后滤波器性能指标旁瓣峰值/db主瓣宽度/()过滤宽度/阻带最小衰减/db矩形窗-1320.9-21巴特列特-2542.1-25汉宁窗-3143.1-44海明窗-4143.3-53布拉克曼窗-5765.5-74凯泽窗-575-802.2.2 频率采样法频率采样法是一种基于频率域抽样来逼近所要设计的FIR滤波器的频率特性的一种方法。频率设计法的基本设计流程如图2-6所示。图2-6 频率设计法流程为了保证具有线性相位条件,其单位采样响应是实序列,且满足条件。对于偶对称的情况来说,线性相位条件如下: (2-6) (2-7)令代入式(2-6)、(2-7),得到 (2-8) 式中, ,N为奇数 ,N为偶数频率响应函数在各采样点上等于,而采样点之间的值是由各采样值之间的内插函数叠加形成,因而有一定的逼近误差,误差的大小取决于理想频率响应的曲线形状。采样点之间的理想频率特性变化越陡,则内插值与理想值之间的误差就越大,因而在理想频率响应特性的不连续点附近,就会产生肩峰和波纹;反之,理想频率响应特性变化越平缓,则内插值越接近理想值,逼近误差小。因此,可以在理想频率下响应特性的通带与阻带之间设置过渡带,从而减小逼近误差。过渡带的采样点个数m与所设计的滤波器的阻带最小衰减有关,具体如表2-2所示。此外过渡带的带宽与采样点数m之间的关系为: (2-9)表2-2 过渡带采样点数与阻带最小衰减的关系12342044-5465-7585-95综上,频率采样法的设计步骤为:A.根据阻带最小衰减,确定过渡带的样点数m。B.根据过渡带宽度的要求,估算滤波器的长度。C.构造希望逼近的频率响应函数,一般为具有理想频率特性,并满足线性相位的要求。D.对进行频域等间隔N点采样,得到。E.对进行N点IDFT,得到。2.2.3 等波纹最佳逼近法等波纹最佳逼近法是基于最大误差最小化的设计原则。最大误差最小化能使幅度误差在整个逼近频段上均匀分布,即所设计的FIR数字滤波器的幅度特性在通带和阻带范围内是等波纹的,且可以分别独立控制通带和阻带的波纹幅度,并且在滤波器长度给定的情况下,加权的幅度波纹误差最小。定义加权幅度误差函数为 (2-10)式中为幅度误差加权函数,用来控制不同频带的幅度逼近误差。一般地,在要求逼近精度高的频带,取值大,而要求逼近误差精度低的频带,取值小。设计过程中是由设计者根据通带最大衰减和阻带最小衰减的指标要求取定的已知函数。对于FIR数字低通滤波器,常取: (2-11)式中,和分别为滤波器设计指标中通带和阻带的振荡波纹幅度,k为正的系数。滤波器的通带最大衰减和阻带最小衰减与通带和阻带的振荡波纹幅度和的换算关系为: (2-12) (2-13)等波纹最佳逼近法的设计,在于找到滤波器的系数向量,使得在通带和阻带频带内的最大绝对值幅度误差为最小。帕克斯-麦克莱伦采用基于交替定理的雷米兹交替算法,通过逐次迭代逼近的运算求得滤波器的系数向量,从而实现等波纹最佳逼近法。一般情况下,估计滤波器长度N的凯泽经验公式为: (2-14)综上,用等波纹最佳逼近法设计FIR数字滤波器的步骤为:(1)根据滤波器的设计指标要求:边界频率、通带最大衰减、阻带最小衰减等,估计滤波器的长度,并确定幅度误差加权函数。(2)采用雷米兹交替算法,获得所设计的滤波器的单位脉冲响应。2.2.4 三种设计方法的比较【12】综述可得,窗函数法设计的基本思想是把给定的频率响应通过离散时间傅里叶逆变换IDTFT(InverseDiscreteTimeFourierTransform),求得脉冲响应,然后利用加窗函数对它进行截断和平滑,以实现一个物理可实现且具有线性相位的FIR数字滤波器的设计目的。其核心是从给定的频率特性,通过加窗确定有限长单位取样响应h(n);频率采样法设计的基本思想是把给出的理想频率响应进行取样,通过IDFT从频谱样点直接求得有限脉冲响应;等波纹切比雪夫逼近法则是利用MATLAB提供的remez函数实现Remez算法,设计滤波器逼近理想频率响应。比较以上三种滤波器的设计方法,在同样的阶数下,等波纹切比雪夫逼近法可以获得最佳的频率特性和衰耗特性,具有通带和阻带平坦,过渡带窄等优点。频率采样设计法可以设计某些特殊滤波器,且其设计过程简单,但阻带衰减明显,若适当选取过渡带样点值,会取得较窗函数设计法略好的衰耗特性。窗函数设计法在阶数较低时,阻带特性基本满足设计要求,当滤波器阶数较高时,使用汉宁窗、海明窗、布莱克曼窗和凯泽窗即可以达到阻带衰耗要求。2.3 FPGA设计优点2.3.1使用FPGA器件进行开发的优点使用FPGA器件设计数字电路,不仅可以简化设计过程,而且可以降低整个系统的体积和成本,增加系统的可靠性。它们无需花费传统意义下制造集成电路所需大量时间和精力,避免了投资风险,成为电子器件行业中发展最快的一个系列。使用FPGA器件设计数字系统电路的主要优点如下【13】:(1)设计灵活使用FPGA器件,可以不受标准系列器件在逻辑功能上的限制。而且修改逻辑可在系统设计和使用过程的任一阶段中进行,并且只须通过对所用的FPGA器件进行重新编程即可完成,给系统设计提供了很大的灵活性。(2)增大功能密集度功能密集度是指在给定的空间能集成的逻辑功能数量。可编程逻辑芯片内的组件门数高,一片FPGA可代替几片、几十片乃至上百片中小规模的数字集成电路芯片。用FPGA器件实现数字系统时用的芯片数量少,从而减少芯片的使用数目,减少印刷线路板面积和印刷线路板数目,最终导致系统规模的全面缩减。(3)提高可靠性减少芯片和印刷板数目,不仅能缩小系统规模,而且它还极大的提高了系统的可靠性。具有较高集成度的系统比用许多低集成度的标准组件设计的相同系统具有高得多的可靠性。使用FPGA器件减少了实现系统所需要的芯片数目,在印刷线路板上的引线以及焊点数量也随之减少,所以系统的可靠性得以提高。(4)缩短设计周期出于FPGA器件的可编程性和灵活性,用它来设计一个系统所需时间比传统方法大为缩短。FPGA器件集成度高,使用时印刷线路板电路布局布线简单。同时,在样机设计成功后,由于开发工具先进,自动化程度高,对其进行逻辑修改也十分简便迅速。因此,使用FPGA器件可大大缩短系统的设计周期,加快产品投放市场的速度,提高产品的竞争能力。(5)工作速度快FPGA/CPLD器件的工作速度快,一般可以达到几百兆赫兹,远远大于DPS器件。同时,使用FPGA器件后实现系统所需要的电路级数又少,因而整个系统的工作速度会得到提高。(6)增加系统的保密性能很多FPGA器件都具有加密功能,在系统中广泛的使用FPGA器件可以有效防止产品被他人非法仿制。(7)降低成本使用FPGA器件实现数字系统设计时,如果仅从器件本身的价格考虑,有时还看不出来它的优势,但是影响系统成本的因素是多方面的,综合考虑,使用FPGA的成本优越性是很明显的。首先,使用FPGA器件修改设计方便,设计周FPGA器件进行系统设计能节约成本。期缩短,使系统的研制开发费用降低;其次,FPGA器件可使印刷线路板面积和需要的插件减少,从而使系统的制造费用降低;再次,使用FPGA器件能使系统的可靠性提高,维修工作量减少,进而使系统的维修服务费用降低。总之,使用FPGA器件进行系统设计能节约成本7。2.4分布式算法2.4.1分布式算法基础分布式算法(Distributed Arithmetic,DA)是一项重要的FPGA技术,它广泛地应用在计算积之和之中【14】。= (2-15)进一步假设系数是已知常数,是变量。无符号DA系统假设变量的表示方式如下: , (2-16)其中表示的第位,而也就是的第次采样,而内积可以表示方式为: (2-17)重新分配求和的顺序(也就是“分布式算法名称的由来”)其结果如下: (2-18)或者可以写成更为简洁的如下形式: (2-19)函数的实现需要特别注意。首选方法是利用一个LUT实现映射。也就是说预先编程个字的一个LUT,以接受一个N位输入向量,输出为。各个映射都由相应的二次幂加权并累加。利用如图2-7所示的移位加法器就能够有效地实现累加。在N次查询循环后就能完成了对内积y的计算8。图2-7 移位加法器DA体系结构2.5有符号的DA系统下面我们要讨论的是如何修复式(2-15)使之能够处理有符号补码。在补码中,最高位有效位用来区别正数和负数。例如变-3的编码是。所以我们将采用下面的(B+1)位表示方法: (2-20)与式(2-19)联立得到输出y的定义如下: (2-21)要实现有符号DA系统,可以通过两种选择来修改无符号DA系统。这就是:(1)带有加/减控制的累加器(2)采用具有一个额外输入的ROM使用最常见的可转换累加器,因为LUT表中额外的输入位还需一个两倍字长的LUT表。3 EDA技术和可编程逻辑器件3.1 EDA技术3.1.1 EDA技术简介【15】EDA是Electronic Design Automation 的缩写,意思是电子设计自动化,即利用计算机自动完成电子系统的设计。EDA技术是以计算机和微电子技术为先导,汇集了计算机图形学、拓扑、逻辑学、微电子工艺与结构学和计算数学等多种计算机应用学科最新成果的先进技术。EDA技术作为现代电子设计技术的核心,通过功能强大的计算机和EDA工具软件平台,对以硬件描述语言HDL为系统逻辑描述手段完成的设计文件,自动地完成逻辑编译、逻辑化简、逻辑分割、逻辑综合,以及逻辑优化和仿真测试,以至实现既定的电子线路系统功能。3.2 QUARTUS II软件介绍QUARTUS II是ALTERA公司在21世纪初推出的FPGA/CPLD开发环境,是ALTERA前一代FPGA/CPLD集成开发环境MAX+PLUS II的更新换代产品,其功能强大,界面友好,使用简便。QUARTUS II软件集成了ALTERA的FPGA/CPLD开发流程中所涉及的所有工具和第三方软件接口。图3-1给出了QUARTUS II软件的交互界面。图3-1 QUARTUS II软件的交互界面QUARTUS II具有一下特点【16】:A支持多时钟定时分析、Logic Lock基于块的设计、SOPC(可编程的片上系统)、内嵌Signal TapII逻辑分析仪和功率估计器等高级工具。B易于引脚分配和时钟约束。C强大的HDL综合能力。D支持的器件种类多。利用QUARTUS II软件进行FPGA/CPLD开发的流程如图3-2所示。图3-2 FPGA/CPLD开发流程图3.3 FPGA介绍可编程逻辑器件PLD(Programmable Logic Devices)是ASIC(Application Specific Integrated Circuits)的一个重要分支。FPGA属于复杂高密度的PLD器件。FPGA使用了可编程的查找表(Look Up Table,LUT)结构,其中LUT是可编程的最小的逻辑构成单元【17】。LUT示意图如图3-3所示。图3-3 查找表结构图由于设计人员可以将存储在片外的EPPROM或者计算机的配置数据控制加载到FPGA器件中进而实现在现场修改器件的逻辑功能,FPGA得到了普遍的应用。下面以CYLONEII系列FPGA器件为例来介绍一下FPGA器件的结构。CYLONEII系列FPGA器件是由美国Altera公司生产的中端产品。CYLONEII系列FPGA器件采用了90nm工艺,片内逻辑单元数量最多可达68416个逻辑单元,片内存储器容量最多可达1.1Mbts,用户可用引脚最多有622个。CYLONEII系列FPGA器件嵌有乘法器,这些乘法器可用于完成高速乘法操作,使得CYLONEII系列FPGA器件的数字信号处理能力得到增强。CYLONEII系列FPGA器件的速度等级有三个:-6,-7和-8,其中-6的速度最快。CYLONEII系列FPGA器件的内部资源是按行、列的方式呈二维分布,如图3-4所示。这些资源主要包括逻辑阵列、M4k存储器块、乘法器等。这些资源模块通过FPGA内部的各种连接通路连接起来。图3-4 EP2C20资源分布图逻辑单元(Logic Element,LE)是FPGA内部用于完成用户资源的最小单元。一个逻辑阵列包含16个逻辑单元以及一些其他资源。一个逻辑单元主要有以下部件组成:一个4输入的查找表,一个可编程的寄存器,一条进位链和一条寄存器级联链。逻辑单元结构图如图3-5所示。 图3-5 逻辑单元结构图CYLONEII系列FPGA器件内部的存储器是以M4k存储器块的形式按列排列的,每个M4k存储器块的大小为4608bit。M4k存储器块包括输入/输出寄存器,输入寄存器用于同步输入信号,输出寄存器在设计中增加一级流水线,使用输入/输出寄存器可以改善电路的性能。M4k存储器除了可以用作标准的存储器使用外,还可以被配置为移位寄存器、先入先出寄存器、只读存储器等。CYLONEII系列FPGA器件内部嵌有硬件乘法器,可以完成高速乘法运算操作。实现许多数字信号处理运算如滤波、快速傅里叶变换、卷积、解相关等。CYLONEII系列FPGA器件关于时钟控制的部分主要是全局时钟网络和锁相环(PLL)。全局时钟网络负责把时钟分配到器件内部的各个单元,控制器件内部的所有资源。锁相环可以完成分频、倍频、移相等关于时钟的基本操作。3.4 硬件描述语言VHDL硬件描述语言(HDL,Hardware Description Language)是EDA技术的重要组成部分,常用的硬件描述语言有VHDL,Verilog,ABEL等,VHDL是EDA技术的主流硬件描述语言之一,也是设计所采用的硬件描述语言【18】。VHDL的英文全名是Very High Speed Integrated Circuit Hardware Description Language,诞生于1982年。1987年VHDL被IEEE和美国国防部确认为标准硬件描述语言。自IEEE公布了VHDL(IEEE-1076)的标准版本之后,各EDA公司相继推出了自己的VHDL设计环境,或宜布自己的设计工具可以和VHDL接口。此后VHDL在电子设计领域得到了广泛的接受,并逐步取代了原有的非标准化硬件描述语言。1993年,IEEE对VHDL进行了修订,从更高抽象层次和系统描述能力上扩展了VHDL的内容,公布了新版本的VHDL即IEEE标准的1076-1993,又得到了众多EDA公司的支持,在电子工程领域,己成为事实上的通用硬件描述语言。有专家预言,在新的世纪中,VHDL和Verilog将承担起几乎全部的数字系统设计任务。VHDL主要用于描述数字系统的结构、行为、功能和接口。除了含有许多硬件特征的语句外,VHDL的风格和语法十分类似于一般的计算机高级语言。VHDL的程序结构特点是将一项设计实体分成外部和内部,外部是可视的,是端口,内部是不可视的,是内部功能和算法的完成部分。在对一个设计实体定义了外部界面后,一旦其内部开发完成之后,其它的设计就可以直接调用这个实体。这种将设计实体分成内外部分的概念是VHDL系统设计的基本点。应用VHDL进行工程设计的优点是多方面的,具体如下:(1)支持从系统级到门级电路的描述,同时也支持多层次的混合描述:描述形式可以是结构描述,也可以是行为描述,或二者兼而有之。VHDL支持从上到下的设计,也支持从下到上的设计;支持模块化设计,也支持层次化设计。(2)VHDL具有丰富的仿真语句和库函数,在设计早期,即尚未完成设计时,就可以就能查验设计系统的功能可行性,随时可对设计项目进行仿真模拟。也就是在远离门级的较高层次上进行模拟,使设计一者在设计早期就能对整个设计项目的结构和功能的可行性做出决策。(3)VHDL具有行为描述能力和程序结构,能支持大规模设计的模块分解和已有设计模块的再利用功能。VHDL中设计实体的概念、程序包的概念、设计库的概念都为大型设计项目的分解和并行工作提供了有利的支持。这一点符合大规模电子系统的高效、高速设计完成必须由多人甚至由多个开发组共同并行工作才能实现的市场需求。(4)用VHDL完成的一个确定的设计项目,在EDA工具软件的支持下,编译器将VHDL所表达的电路功能自动地转换为文本方式表达的基本逻辑元件连接图-一网表文件。应用EDA工具的逻辑优化功能,可以自动的把一个综合后的设计项目变成一个更小、更高速的电路系统。反过来,设计者还可以从综合和优化后的电路获得设计信息,反馈去更新修改VHDL设计描述,使之更加完善。(5)VHDL对设计项目的描述具有独立性,实际设计者可以在不懂硬件的结构,不知最终实现的目标器件为何的情况下,而进行独立的设计。正是因为VHDL的硬件描述与具体的工艺技术和硬件结构无关,VHDL的设计项目的目标硬件器件具有广阔的选择范围,其中包括各系列的GPLD,FPGA及各种门阵列器件。(6)VHDL具有类属描述语句和子程序调用等功能,对于已完成的设计项目,在不改变源程序的条件下,只需改变类属参数或函数,就能轻易改变设计项目的规模和结构。4 基于FPGA的FIR滤波器设计首先确定基于Matlab的FIR数字低通滤波器的指标系数,再利用分布式算法结构, VHDL硬件语言完成设计与仿真,最后实现硬件系统以及硬件测试。4.1 基于Matlab的FIR数字低通滤波器抽头系数的提取4.1.1 滤波器的设计指标采样频率:10MHz截止频率:100KHz类型:低通阶数:凯泽窗函数16阶系数4.1.2 滤波器的具体设计方法启动Matlab设计软件后,依次打开startToolboxesFilter DesignFilter Design & Analysis Tool(FDATOOL)就可以看到如图4-1的FDATOOL界面。选择所需要的参数指标,就会生成FIR低通数字滤波器的特性曲线以及重要的幅度相位波形图,如图4-2、图4-3、图4-4所示,验证了其技术指标。图4-1 FDATOOL界面图4-2 频率特性曲线图4-3 相位特性曲线图4-4 量化曲线4.1.3 参数提取与量化利用Matlab软件的FDATOOL图形用户界面工具,输入设计指标后便会自动生成所设计的FIR低通数字滤波器的系数,一般线性相位的FIR低通数字滤波器的单位冲激响应都为实数,满足奇或偶对称的条件。所得单位冲激响应系数如表4-1所示:表4-1 FIR低通数字滤波器系数序数序列FIR滤波器的参数序数序列h(0)-0.039907834316445h(15)h(1)-0.037834962847191h(14)h(2)-0.017305968856170h(13)h(3)0.021384069718987h(12)h(4)0.072608454823592h(11)h(5)0.126467760141519h(10)h(6)0.171262675451901h(9)h(7)0.196673325528212h(8)计算的结果可通过File下的菜单中的Export命令取出,点击Export打开对话框,如图所示,点击OK可将滤波器系数数据存放到当前工作空间,并且以Num命名。图4-2 冲激系数输出对话框保存并关闭当前窗口回到工作空间,在命令区输入Num回车,出现以下图图4-3 输出在Matlab中的冲激系数对FIR滤波器系数进行量化,也就是整数化,在刚才的命令区继续输入round (Num*2048),可得到滤波器整数为,然后换为二进制补码:h(0)=h(15)=-82=FAEHh(1)=h(14)=-77=FB6Hh(2)=h(13)=-35=FDDHh(3)=h(12)=44=FD4Hh(4)=h(11)=149=F6FHh(5)=h(10)=259=EFDHh(6)=h(9)=351=EA1Hh(7)=h(8)=403=E6DH4.2 FIR滤波器的FPGA实现4.2.1 模块划分自顶向下的实现方法,FIR滤波器的模块划分:输入模块(包括移位寄存器模块,加法与地址码形成模块)、查找表模块树状移位加法器模块、控制模块和包含参数的程序包。整个设计的层次结构如图4-4所示:图4-4 FIR滤波器的结构框图各模块实现的功能:(1) 控制模块控制模块产生其他模块的控制信号,实现对输入模块、乘累加模块、锁存模块的控制,使各模块按照一定的时序依次执行各自的功能,从而完成滤波。它主要由控制器单元和计数器单元组成。(2) 输入模块输入模块的主要功能是完成对输入数据的处理,为后续电路作准备。它主要由并/串转换单元、移位寄存器单元和数据的预相加单元组成。(3)树桩移位加法器模块, 将LUT的输出值做树状移位加法运算。(4) 锁存模块锁存模块的主要功能是将乘累加模块的输出结果锁存后输出。为了完善设计,还应该再加一个查找表生成模块,用来根据外界输入的系数自动修改查找表单元,而不是像设计中那样,为了改变滤波器的功能,人为的修改查找表单元。 查找表模块,查找表模块的功能是对输入模块产生的地址码对应成输出值。查找表模块由4个LUT和加法模块组成。4.2.2 FIR滤波器各模块的实现(1)板载频率分频设计所用到的系统板上的晶振频率是50MHz,而设计用到的是10MHz,这样就要进行分频。CycloneII系列FPGA提供两个嵌入式锁相环。在图形编辑模式下输入ALTPLL就可以看到如图4-5(a)所示的界面,设置设计所需的参数就可以实现分频。设计产生的分频模块图标如图4-5(b)所示。图4-5(a)ALTPLL界面 图4-5(b)分频模块(2)数据预处理输入信号转换进程,对输入的二进制原码转换为二进制补码输出。加此进程的目的是方便仿真,硬件实现时不用。 程序代码见附录。(3)输入模块输入模块由移位寄存器和加法器与地址码形成单元组成。移位寄存器单元实现对并行输入信号的延迟输出,其寄存器的个数由FIR滤波器的阶数决定。加法与地址码形成单元首先实现B(i)=X(i)+X(N-i)的运算,即考虑了滤波器系数的对称性,把与相同两个滤波系数相乘的两个采样值预先相加,以减少硬件规模。移位寄存器单元的VHDL代码见附录。(4)查找表模块输入模块形成9组8位地址码,如果直接建立LUT,则LUT的规模较大,为个字,为了节约FPGA资源并且简化表格深度,使用了8位地址线LUT分割技术,分成2个4位地址线的LUT 。加法模块实现高4位LUT与低4位LUT输出值相加后得出8位地址码的输出值。低四位和高四位LUT如表4-2所示:表4-2(a) 地址低4位LUT D3D2D1D0函数值000000001h(0)0010h(1)0011h(0)+h(1)0100h(2)0101h(2)+h(0)1111h(0) +h(1)+h(2)+h(3)表4-2(b) 地址高4位LUT D7D6D5D4函数值000000001h(4)0010h(5)0011h(4)+h(5)0100h(6)0101h(6)+h(4)1111h(4) +h(5)+h(6)+h(7)(5)树状移位加法器模块树状移位加法模块,通过一个树状的移位加法,最后实现卷积运算。设计采用并行移位加法,提高了执行速度,但付出了硬件资源的大量消耗代价。树状移位加法器模块的VHDL设计中,虽然“+”的运算是在signed库中完成的,但仍要关注每个加数的符号位的扩展问题,否则会出错。(6)锁存输出模块DA算法的输出值是多位二进制的结果,设计运算结果是24位,根据要求输出是8位,锁存模块将输出结果进行去舍,以满足设计要求。具体做法是根据逻辑仿真的逻辑图截取最高的8位有效位即可。如果一种仿真时输出如图4-6所示的波形,可知y223 downto 16的位置上都不存在数据。那么所存输出应该是y215 downto 8。4.2.3 FIR滤波器的顶层设计图4-6为FIR滤波器的顶层设计图。图4-6 FIR滤波器的顶层设计文件FIR滤波器的工作过程说明如下:完成一次卷积运算需要7个工作状态,系统状态图如下:S0:输入信号并行进入移位寄存器,实现信号的延迟;S1:根据系数的对称性,实现B(i)=X(i)+X(N-i),并形成8位地址码;其中S0、S1状态是在输入模块完成的。S2:根据地址码对应LUT函数值;S2状态在查找表模块完成的。S3-S6:LUT的输出数值树状移位相加,得出卷积结果;这是个4层次的树状的移位加过程,是在树状移位加法模块中完成。考虑到硬件条件的限制,我们的D/A转换器只有8位,所以还要添加锁存模块,取舍卷积结果,达到设计要求的精度位数输出。完成一次卷积需7个脉冲周期,即从数据输入到数据输出需7个脉冲周期,但采用流水线工作方式,可以认为,每个脉冲上升沿并行8位数据输入,同时并行8位数据输出。所谓流水线技术是针对连续输入数据流的系统而言的。它的主要含义是把整个运算过程分解成若干段,系统在同一个时间可对先后输入的数据流元素进行不同阶段的运算。如设计的FIR滤波器的卷积运算是分成7个时钟脉冲的,系统在进行卷积运算的第3个时钟脉冲的运算同时,也在进行下一个卷积运算的第2个时钟脉冲的运算。这样虽然完成一次卷积是7个时钟脉冲,但2个相临的卷积运算的完成仅相隔1个时钟脉冲,从而大大地提高运算速率,电路的规模也会迅速增大,这是流水线技术为了得到较高地运算速率而付出的代价19。5 FIR滤波器的系统仿真验证5.1各模块的仿真图图5-1 移位寄存器仿真图图5-2 加法与地址码形成单元仿真图图5-3 查找表模块仿真图图5-4 树状累加器模块仿真图图5-5 输出模块仿真图5.2 FIR滤波器的系统仿真验证程序编译通过之后的时序仿真对FPGA设计是十分重要的,仿真可以通过QuartusII软件集成的Simulator Tool完成。系统仿真的主要目的是检验设计是否被真正实现,如果仿真存在问题,就需要返回下层修改设计或修改参数,重新进行编译并再次进行系统仿真,直到得到正确结果。仿真及结果分析:仿真1:设计一个输入信号,其幅值为5的50kHz正弦波,以1MHz的采样频率对其采样,每个周期得到20个以上的采样点,经过A/D采样量化之后的序列为:128 166 200 228 247 255 251 237 213 181 144 106 70 39 16 3 2 12 32 61 96。QuartusII仿真波形如图5-4所示,可以看出,在7个clkin脉冲后,得到滤波结果,且是流水线的输出方式。用Matlab卷积计算并和QuartusII的仿真结果比较,如表5-1所示。表5-1结果的比较,有一定的误差

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论