IIR数字滤波器设计-在FPGA上实现任意阶IIR数字滤波器

发布者:PositiveVibes最新更新时间:2012-02-11 来源: elecfans关键字:IIR数字滤波器  fpga 手机看文章 扫描二维码
随时随地手机看文章
  

IIR数字滤波器设计-在FPGA上实现任意阶IIR数字滤波器

摘 要:本文介绍了一种采用级联结构在FPGA上实现任意阶IIR数字滤波器的方法。此设计扩展性好,便于调节滤波器的性能,可以根据不同的要求在不同规模的FPGA上加以实现。

   IIR数字滤波器在很多领域中有着广阔的应用。与FIR数字滤波器相比,它可以用较低的阶数获得高选择性,所用存储单元少,经济而效率高,在相同门级规模和相同时钟速度下可以提供更好的带外衰减特性。下面介绍一种在FPGA上实现IIR数字滤波器的方法。
   IIR数字滤波器的结构 任意阶的IIR滤波器可通过数学分解,表示为:
 
其中为如下的二阶形式:
 
    这样就可以将任意阶的IIR滤波器通过若干二阶网络(也称为滤波器的二阶基本节)级联起来构成,其结构如图1所示。其中,代表第i级的二阶网络。
 
    对于每一个二阶基本节,可以转置直接II型结构加以实现,如图2所示。
 
    采用这种级联结构实现IIR滤波器的优点是每一个基本节只是关系到滤波器的某一对极点和一对零点,调整系数a0i、a1i、a2i,只单独地调整了滤波器第i对零点而不影响其他任何零、极点。同样,调整b1i、b2i系数、也只单独调整了第i对极点。因此,这种结构便于准确地实现滤波器的零、极点,也便于调整滤波器的频率响应性能。这种结构的另一个优点是存储单元需要较少,在硬件实现时,可以用一个二阶节进行时分复用,从而降低对FPGA硬件资源的要求。[page]

IIR数字滤波器的设计 
      利用MATLAB信号处理工具箱中的滤波器设计和分析工具(EDATool)可以很方便地设计出符合应用要求的未经量化的IIR滤波器。需要将MATLAB设计出的IIR滤波器进一步分解和量化,从而获得可用FPGA实现的滤波器系数。
     由于采用了级联结构,因此如何将滤波器的每一个极点和零点相组合,从而使得数字滤波器输出所含的噪声最小是个十分关键的问题。为了产生最优的量化后的IIR数字滤波器,采用如下步骤进行设计:

  1. 首先计算整体传递函数的零极点;
  2. 选取具有最大幅度的极点以及距离它最近的零点,使用它们组成一个二阶基本节的传递函数;
  3. 对于剩下的极点和零点采用与(2)相类似的步骤,直至形成所有的二阶基本节。

   通过上面三步法进行的设计可以保证IIR数字滤波器中N位乘法器产生的量化舍入误差最小。 为了设计出可用FPGA实现的数字滤波器,需要对上一步分解获得的二阶基本节的滤波器系数进行量化,即用一个固定的字长加以表示。量化过程中由于存在不同程度的量化误差,由此会导致滤波器的频率响应出现偏差,严重时会使IIR滤波器的极点移到单位圆之外,系统因而失去稳定性。为了获得最优的滤波器系数,采用以下步骤进行量化:

  1. 计算每个系数的绝对值;
  2. 查找出每个系数绝对值中的最大值;
  3. 计算比此绝对值大的最小整数;
  4. 对(3)的结果取反获得负整数;
  5. 计算需要表示此整数的最小位数;
  6. 计算用于表示系数值分数部分的余下位数。

     除了系数存在量化误差,数字滤波器运算过程中有限字长效应也会造成误差,因此对滤波器中乘法器、加法器及寄存器的数据宽度要也进行合理的设计,以防止产生极限环现象和溢出振荡。

IIR数字滤波器的VHDL描述 
    由上一节设计出来的IIR数字滤波器可以进一步用VHDL语言加以描述,通过编译、功能仿真、综合和时序仿真之后就可以在FPGA上实现了。由于采用了级联结构,每一个二阶基本节的VHDL描述都是类似的,只是滤波器的系数有所不同,下面着重讨论二阶基本节的VHDL描述。
     采用VHDL描述的二阶基本节的顶层结构如图3所示。数据在执行单元内进行处理。执行单元内部包含算术和逻辑单元以及一些寄存器;算术和逻辑单元主要由串行乘法器和累加器组成;存储器包括工作RAM和系数ROM两部分,分别用于存放计算的中间结果和滤波器的系数;存储器和执行单元通过内部总线相连接;控制模块包括程序ROM和程序控制单元,程序ROM中存放有滤波算法的程序,程序控制单元用于解释指令并为数据处理模块产生控制信号。
 
    此结构既可以接收串行输入的数据,也可以接收并行输入的数据,通过SEL进行设置。外部CPU可以通过READ信号来访问滤波器的计算结果,另外,外部CPU也可以通过地址总线A[3:0]对内部的存储器进行访问,用WRITE信号对滤波器系数进行写操作,这样外部CPU就可以根据自己的需要对滤波器进行配置,灵活地实现各种功能。 各信号的含义如下:

  • CLK:系统时钟;
  • RES:异步全局复位信号,低有效;
  • SDATA:串行输入数据;
  • PDATA:并行输入数据;
  • SEL:设置输入数据为并行还是串行;
  • READ:读信号,低有效;
  • WRITE:写信号,低有效;
  • SRES:同步复位信号,高有效;
  • CLKI:外部CPU时钟;
  • A[3:0]:外部CPU访问内部寄存器的地址总线;
  • OUT:输出数据。

    内部算术与逻辑单元是整个滤波器的核心,它的结构如图4所示。
 
    计算过程是,X、Y为输入数据,通过选择器进入乘法器,算术与逻辑单元从系数ROM中读取滤波器的系数用以输入数据相乘,相乘的结果与前一步的结果相加进入累加器,累加器读取上一步计算的中间结果A并计算,最后将此步计算的结果M存入到RAM中去。

结语 
   本文介绍了一种采用级联结构在FPGA上实现IIR数字滤波器的方法。在实际使用中,可以根据不同精度要求,方便地对该IIR滤波器进行修改以满足不同的指标要求,灵活地组成任意阶不同类型的滤波器。同时,在系统运行中,外部CPU可以灵活修改滤波器系数,改变滤波器的频率响应,满足特定的应用要求。

关键字:IIR数字滤波器  fpga 引用地址:IIR数字滤波器设计-在FPGA上实现任意阶IIR数字滤波器

上一篇:fpga是什么意思 ASIC是什么意思
下一篇:TFT-LCD系统时序控制模块的设计

推荐阅读最新更新时间:2024-05-02 21:54

单片机与FPGA在信号测试中的重要作用解析方案
1 引言 在学习《电子线路》、《信号处理》等电子类课程时,高校学生只是从理论上理解真正的信号特征。不能真正了解或观察测试某些信号。而幅频特性和相频特性是信号最基本的特征.这里提出了基于单片机和FPGA的频率特性测试仪的设计方案,可使学生在实践中真正观察和测试信号的频率特性。 2 设计方案 该系统设计采用扫频测试法。设频率响应为H(jω),实系数线性时,不变系统在正弦信号x(n)=Acos(ω0n+ψ)的激励下的稳态输出为y(n)。利用三角恒等式,将输入x(n)表示为两个复数指数函数之和: 若输入为exp(jω0n),线性时不变系统稳态输出为H(exp(jω0n))exp(jω0n)。根据线性性质可知,输入g(n)的
[嵌入式]
单片机与<font color='red'>FPGA</font>在信号测试中的重要作用解析方案
光电靶的基本原理
1 基于FPGA的嵌入式系统开发流程  设计一个嵌入式系统,主要包括硬件平台搭建和应用软件编写。基于FPGA技术,硬件平台搭建和软件编写都可在相应的软件平台上完成。EDK(Embedded Development Kit)是Xilinx公司开发嵌入式系统的套件工具。EDK套件工具主要包括硬件平台产生器、软件平台产生器、仿真模型生成器和软件编译调试等工具,利用其集成开发环境XPS(platform studio)可以方便地完成嵌入式系统的开发设计 ,设计流程如图1所示。 2 硬件平台搭建过程  分析系统需求中,铁轨检测主要是进行图像的分析处理,包括三个主要部分:图像输入、图像处理和结果显示。本项目使用依元素公司生产的Xilin
[嵌入式]
光电靶的基本原理
FPGA中SPI复用配置的编程方法的研究
  SPI(Serial Peripheral Inte RF ace,串行外围设备接口)是一种高速、全双工、同步的通信总线,在芯片的引脚上只占用4根线,不仅节约了芯片的引脚,同时在PCB的布局上还节省空间。正是出于这种简单、易用的特性,现在越来越多的芯片集成了这种通信协议。    1 SPI配置介绍   1.1 Spantan-3E SPI配置流程   SPI方式是通过符合SPI接口时序的第三方SPI Flash对FPGA进行加载。它适合作为FPGA硬件结构的bit文件保存介质,如果应用软件工程编译后的代码较小,保存在同一片SPI FLash中(即复用SPI Flash)无疑是可行的最廉价方案。   由于本没计软件工程
[嵌入式]
对<font color='red'>FPGA</font>中SPI复用配置的编程方法的研究
基于FPGA的数字式心率计
摘要:介绍了一种基于现场可编程门阵列(FPGA)的数字式心率计。该仪器采用FPGA和VHDL语言实现时钟分频、波形变换、心率测量、告警控制及数码转换等功能,能够实时测量瞬时心率和平均心率,并能提供心率异常告警信息。该仪器使用元器件数量少、工作稳定可靠、显示直观,测量范围为20~200跳/分钟,测量误差小于1%。 关键词:心率计 瞬时心率 平均心率 FPGA VHDL语言 心率计是常用的医学检查设备,实时准确的心率测量在病人监控、临床治疗及体育竞赛等方面都有着广泛的应用。心率测量包括瞬时心率测量和平均心率测量。瞬时心率不仅能够反映心率的快慢。同时能反映心率是否匀齐;平均心率虽只能反映心率的快慢,但记录方便,因此这两个参数在测量
[半导体设计/制造]
Altera实现了28-nm FPGA与PCIe Gen3交换机的互操作
   Altera公司日前宣布,成功实现28-nm Stratix® V GX FPGA与PLX®技术公司ExpressLane™ PCI Express® (PCIe®) Gen3的互操作。Stratix V GX FPGA具有硬核PCIe Gen3 IP模块,是目前发售的能够与PCIe Gen3交换机实现互操作的唯一一款FPGA。 Altera元器件市场资深总监Patrick Dorsey评论说:“业界性能最好的28-nm FPGA与业界第一款PCIe Gen3交换机实现互操作后,用户能够将精力集中在设计问题上,而不是器件之间电信号兼容性的验证问题,因此,显著缩短了开发时间。在高性能前沿应用中,Stratix V中的硬核PCIe
[工业控制]
多分辨率图像实时采集系统的FPGA逻辑设计
摘要:提出了一种基于FPGA的实时、多分辨率图像采集系统的控制逻辑设计方案;并对其中的图像数据预处理和帧存乒乓刷新机制这两个关键技术进行了阐述;为了验证图像采集系统在整个图像处理系统中所起的作用,还对图像压缩系统的帧率进行了比较实验。实验结果表明,设计并实现的图像采集系统不仅运行稳定,而且显著提高了图像处理系统的整体性能。 关键词:FPGA 图像采集 图像压缩 随着数字多媒体技术的不断发展,数字图像处理技术被广泛应用于可视电话、电视会议、监控系统等各种民用、商用及工业生产领域中。但在这些数字图像处理系统中,一个突出的问题就是数据量庞大,特别是在图像帧率及分辨率要求比较高的场合下,仅用专用的视频压缩芯片(Video ASIC)、专用的
[半导体设计/制造]
Microchip推出集成微型FPGA的PIC16 微控制器,售价不到 50 美分
编译自EEJOURNAL Microchip 现在提供一款基于闪存的微控制器,集成可编程逻辑块,其售价不到50美分。 Microchip PIC16F13145 系列的九个新产品,与其他型号16F系列采用相同的 8 位 RISC 微处理器架构,但它们还集成了一个新的可编程逻辑块,称为可配置逻辑块 (CLB)。 PIC16F13145 微控制器系列中的器件采用 8、14 和 20 引脚封装,具有 3.5 至 14 KB 闪存和 256 至 1024 字节 RAM。 Microchip PIC1613145 微控制器系列的九个成员具有相同的内部架构,但具有不同数量的 RAM 和闪存,并提供不同的封装,具体取决于您应用的 I/O
[单片机]
Microchip推出集成微型<font color='red'>FPGA</font>的PIC16 微控制器,售价不到 50 美分
Achronix FPGA增加基于Linux的RISC-V软处理器的支持,以实现可扩展数据处理
Achronix FPGA增加对Bluespec提供的基于Linux的RISC-V软处理器的支持,以实现可扩展数据处理 Bluespec支持加速器功能的RISC-V处理器将Achronix的FPGA转化为可编程SoC 加利福尼亚州和马萨诸塞州,2024年4月—— 高性能FPGA芯片和嵌入式FPGA(eFPGA)硅知识产权(IP)领域的领先企业Achronix半导体公司,以及RISC-V工具和IP领域的行业领导者Bluespec有限公司,日前联合宣布推出一系列支持Linux的RISC-V软处理器,这些处理器都可用于Achronix FPGA产品Speedster®7t系列中 。这是业界首创,Bluespec的RISC-V处理器现
[嵌入式]
Achronix <font color='red'>FPGA</font>增加基于Linux的RISC-V软处理器的支持,以实现可扩展数据处理
小广播
最新嵌入式文章
何立民专栏 单片机及嵌入式宝典

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

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