当前位置:首页 > EDA > 电子设计自动化
[导读]IIR数字滤波器设计-在FPGA上实现任意阶IIR数字滤波器摘 要:本文介绍了一种采用级联结构在FPGA上实现任意阶IIR数字滤波器的方法。此设计扩展性好,便于调节滤波器的性能,可以根据不同的要求在不同规模的FPGA上加以实

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

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

IIR数字滤波器在很多领域中有着广阔的应用。与FIR数字滤波器相比,它可以用较低的阶数获得高选择性,所用存储单元少,经济而效率高,在相同门级规模和相同时钟速度下可以提供更好的带外衰减特性。下面介绍一种在FPGA上实现IIR数字滤波器的方法。

IIR数字滤波器的结构 任意阶的IIR滤波器可通过数学分解,表示为:

 

采用这种级联结构实现IIR滤波器的优点是每一个基本节只是关系到滤波器的某一对极点和一对零点,调整系数a0i、a1i、a2i,只单独地调整了滤波器第i对零点而不影响其他任何零、极点。同样,调整b1i、b2i系数、也只单独调整了第i对极点。因此,这种结构便于准确地实现滤波器的零、极点,也便于调整滤波器的频率响应性能。这种结构的另一个优点是存储单元需要较少,在硬件实现时,可以用一个二阶节进行时分复用,从而降低对FPGA硬件资源的要求。

IIR数字滤波器的设计

利用MATLAB信号处理工具箱中的滤波器设计和分析工具(EDATool)可以很方便地设计出符合应用要求的未经量化的IIR滤波器。需要将MATLAB设计出的IIR滤波器进一步分解和量化,从而获得可用FPGA实现的滤波器系数。

由于采用了级联结构,因此如何将滤波器的每一个极点和零点相组合,从而使得数字滤波器输出所含的噪声最小是个十分关键的问题。为了产生最优的量化后的IIR数字滤波器,采用如下步骤进行设计:

首先计算整体传递函数的零极点;

选取具有最大幅度的极点以及距离它最近的零点,使用它们组成一个二阶基本节的传递函数;

对于剩下的极点和零点采用与(2)相类似的步骤,直至形成所有的二阶基本节。

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

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

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

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可以灵活修改滤波器系数,改变滤波器的频率响应,满足特定的应用要求。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

Arm 控股有限公司(纳斯达克股票代码:ARM,以下简称 Arm)今日宣布推出全新 Arm® Lumex™ 计算子系统 (Compute Subsystem, CSS) 平台,这是一套专为旗舰级智能手机及下一代个人电脑加...

关键字: CPU AI 消费电子

Arm 控股有限公司(纳斯达克股票代码:ARM,以下简称 Arm)今日宣布推出全新 Arm® Lumex™计算子系统 (Compute Subsystem, CSS) 平台,这是一套专为旗舰级智能手机及下一代个人电脑加速...

关键字: 消费电子 CPU AI

8位单片机在嵌入式设计领域已经成为半个多世纪以来的主流选择。尽管嵌入式系统市场日益复杂,8位单片机依然不断发展,积极应对新的挑战和系统需求。如今,Microchip推出的8位PIC®和AVR®单片机系列,配备了先进的独立...

关键字: 单片机 嵌入式 CPU

上海2025年8月15日 /美通社/ -- 在数字化转型浪潮与数据安全需求的双重驱动下,澜起科技今日重磅推出第六代津逮® 性能核 CPU (以下简称 C6P )。这款融合突破性架构、全栈兼容性与芯片级安全防护的高性能服...

关键字: CPU BSP 数字化 AI

在数字化浪潮席卷全球的今天,FPGA技术正成为驱动创新的核心引擎。2025年8月21日,深圳将迎来一场聚焦FPGA技术与产业应用的盛会——2025安路科技FPGA技术沙龙。本次沙龙以“定制未来 共建生态”为主题,汇聚行业...

关键字: FPGA 核心板 开发板

在现代电子系统中,现场可编程门阵列(FPGA)凭借其开发时间短、成本效益高以及灵活的现场重配置与升级等诸多优点,被广泛应用于各种产品领域。从通信设备到工业控制,从汽车电子到航空航天,FPGA 的身影无处不在。为了充分发挥...

关键字: 可编程门阵列 FPGA 数字电源

采用分离式架构,充分利用主机 CPU 和 PCIe® 基础设施,克服传统存储瓶颈

关键字: CPU 数据中心 服务器

2025年8月4日 – 提供超丰富半导体和电子元器件™的业界知名新品引入 (NPI) 代理商贸泽电子 (Mouser Electronics) 即日起开售Altera®的Agilex™ 3 FPGA C系列开发套件。此开...

关键字: FPGA 边缘计算 嵌入式应用

受生成式 AI 驱动, RISC-V 芯片市场快速发展。预计到2030年,RISC-V SoC出货量将达到1618.1亿颗,营收将达到927亿美元。其中,用于AI加速器的RISC-V SoC出货量将达到41亿颗,营收将达...

关键字: RISC-V CPU AI CUDA ARM 推理
关闭