基于VerilogHDL的FIR数字滤波器设计与仿真

发布者:anluran最新更新时间:2014-01-04 来源: hqew关键字:VerilogHDL  FIR数字滤波器 手机看文章 扫描二维码
随时随地手机看文章

       引言

      数字滤波器是语音与图像处理、模式识别、雷达信号处理、频谱分析等应用中的一种基本的处理部件,它能满足波器对幅度和相位特性的严格要求,避免模拟滤波器所无法克服的电压漂移、温度漂移和噪声等问题。

     有限冲激响应(FIR)滤波器能在设计任意幅频特性的同时保证严格的线性相位特性。

  一、FIR数字滤波器

  FIR滤波器用当前和过去输入样值的加权和来形成它的输出,如下所示的前馈差分方程所描述的。

       FIR滤波器又称为移动均值滤波器,因为任何时间点的输出均依赖于包含有最新的M个输入样值的一个窗。由于它的响应只依赖于有限个输入,FIR滤波器对一个离散事件冲激有一个有限长非零响应,即一个M阶FIR滤波器对一个冲激的响应在M个时钟周期之后为零。

  FIR滤波器可用图1所示的z域块图来描述。

z域块图

      其中每个标有z-1的方框都代表了有一个时钟周期延时的寄存器单元。这个图中标出了数据通道和必须由滤波器完成的操作。滤波器的每一级都保存了一个已延时的输入样值,各级的输入连接和输出连接被称为抽头,并且系数集合{hk}称为滤波器的抽头系数。一个M阶的滤波器有M+1个抽头。通过移位寄存器用每个时钟边沿n(时间下标)处的数据流采样值乘以抽头,并且求和得到输出yFIR[n]。滤波器的加法和乘法必须足够快,在下一个时钟来到之前形成y[n]。并且在每一级中都必须测量它们的大小以适应他们数据通道的宽度。在要求精度的实际应用中,Lattice结构可以减少有限字长的影响,但增加了计算成本。一般的目标是尽可能快地滤波,以达到高采样率。通过组合逻辑的最长信号通路包括M级加法和一级乘法运算。FIR结构指定机器的每一个算术单元有限字长,并且管理运算过程中数据流。

  二、FIR数字滤波器设计的实现

  目前FIR滤波器的实现方法有三种:利用单片通用数字滤波器集成电路、DSP器件和可编程逻辑器件实现。单片通用数字滤波器使用方便,但由于字长和阶数的规格较少,不能完全满足实际需要。使用DSP器件实现虽然简单,但由于程序顺序执行,执行速度必然不快。FPGA/CPLD有着规整的内部逻辑阵列和丰富的连线资源,特别适合于数字信号处理任务,相对于串行运算为主导的通用DSP芯片来说,其并行性和可扩展性更好。但长期以来,FPGA/CPLD一直被用于系统逻辑或时序控制上,很少有信号处理方面的应用,其原因主要是因为在FPGA/CPLD中缺乏实现乘法运算的有效结构。

  现在的FPGA产品已经能够完全胜任这种任务了。其中Altera公司的Stratix系列产品采用1.5V内核,0.13um全铜工艺制造,它除了具有以前Altera FPGA芯片的所有特性外,还有如下特点:芯片内有三种RAM块,即512bit容量的小RAM(M512)、4KB容量的标准RAM(M4K) 、512KB的大容量RAM(MegaRAM)。内嵌硬件乘法器和乘加结构的DSP块,适于实现高速信号处理;采用全新的布线结构,分为三种长度的行列布线,在保证延时可预测的同时增加布线的灵活性;增加片内终端匹配电阻,提高信号完整性,简化PCB布线;同时具有时钟管理和锁相环能力。

  FIR滤波器的Verilog HDL设计实例

  1、设计意图

  本例主要是在Stratix器件内实现基本有限脉冲响应滤波器。

  FIR的基本结构包括一系列的乘法和加法。FIR的运算可用式(1)的方程描述,现重写如下:

FIR的运算

        一个L=8的FIR设计如图2,利用了输入的8个样本。因此称之为8抽头滤波器。该结构是有一个移位寄存器,乘法器和加法器组成的,可实现L=8阶的FIR。其数据通道必须足够宽,以适应乘法器和加法器的输出。这些采样值被编码为有限字长的形式,然后通过M个寄存器并行移动。可见用一个MAC级连链就可以构成这种机器。每个寄存器提供一个单位样本内延迟。这些延迟输入与各自的系数相乘,然后叠加得到输出。图2所示为基于MAC的8阶FIR数字滤波器结构[page]

基于MAC的8阶FIR数字滤波器结构

        在该设计中有八个抽头,各抽头有18位输入和滤波器系数。由于一个DSP块可以支持4个18位输入的分支,所以设计需要2个DSP块。输入数据串行加载到DSP块中,DSP内部的移入/移出寄存器链用于产生延迟。滤波器系数从TriMatrix? 的ROM存储器中加载。 [page]

        2、Verilog HDL代码编写风格

  HDL代码编写应该具有很好的易读性和可重用性,而自顶向下的分割方法可以帮助我们达到最佳的结果。HDL代码在达到功能的情况下要尽可能的简洁,尽量避免使用带有特殊库单元的实例,因为这样会使得整个进程变得不可靠。

  在本设计中,我们将设计划分成一个顶级文件和三个次级文件,并且调用了QuartusII中的MegaFunction功能辅助完成整个设计。

FIR滤波器的顶级方块图

图3显示FIR滤波器的顶级方块图

FIR滤波器的设计范例的端口列表

表1:FIR滤波器的设计范例的端口列表

       3、验证仿真

    完全可综合设计的一个优点就是同样的HDL代码能够用于验证和综合。在使用HDL代码之前必须要验证设计的功能,最好且最简单的方法就是利用验证工具,其次是利用仿真工具作有目的的仿真。

  QuartusII内部带有仿真器,只要通过建立正确的Vector Waveform File(向量波形文件)就可以开始仿真了。图4所示为QuartusII内部仿真器得到的8阶FIR的脉冲响应波形。

8阶FIR的脉冲响应波形


  五、结论

  利用Verilog HDL设计数字滤波器的最大优点就是可使设计更加灵活。比较硬件电路图设计,Verilog HDL语言设计的参数可以很容易在Verilog程序中更改,通过综合工具的简化和综合即可以得到电路图,其效率要高出利用卡诺图进行人工设计许多。而且编译过程也非常简单高效。优秀编码风格能够在综合过程中节省芯片使用的单元,从而降低设计成本。

  参考文献:

  [1]. 夏宇闻。VerilogHDL数字系统设计教程,北京航空航天大学出版社,北京. 2003.

  [2]. Altera Corporation. Introduction to QuartusII. 2003

  [3]. Michael D. Ciletti. Advanced Digital Design with Verilog HDL. Prentice Hall, NJ.2005.

  [4].彭保等.基于VerilogHDL的FPGA设计. 微计算机信息, 2004年第20卷第10期

关键字:VerilogHDL  FIR数字滤波器 引用地址:基于VerilogHDL的FIR数字滤波器设计与仿真

上一篇:热泵供热机组控制器的设计
下一篇:模拟电路设计的九个阶段

推荐阅读最新更新时间:2024-03-16 13:33

基于模拟退火神经网络的I型FIR数字滤波器设计
   0 引 言   IIR滤波器不易做成线性相位,FIR滤波器只要满足一定条件就可做成线性相位,而现代图像、语声、数据通信对线性相位的要求是普遍的,因此具有线性相位的FIR数字滤波器得到广泛的发展和应用。   FIR滤波器有传统的设计方法,如窗函数法、频率采样法、切比雪夫逼近法等;之后也有一些优化设计算法,如Remez交换算法、线性规划算法、加权最小二乘法、递推最小二乘法。虽然这些算法在一定程度上改善了传统方法的局限性,但这些方法自身也存在着一些不足。之后,曾喆昭等人提出了一种基于余弦基神经网络的算法,给出了该算法的收敛条件,并将其应用到高阶多通带FIR滤波器中,用实例说明了该算法在精度、计算速度等方面的优越性。基于这种算法
[模拟电子]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved