没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论













基于基于FPGA的的FIR数字滤波器设计与仿真数字滤波器设计与仿真
采用改进并行分布式算法设计了一种16抽头FIR数字低通滤波器,首先用Matlab工具箱中的FDATool设计滤波器
系数,然后使用硬件描述语言Verilog HDL和原理图,实现了子模块和系统模块设计,在Matlab与QuartusII中对
系统模块进行联合仿真。仿真结果表明,设计系统性能稳定,滤波效果良好,且实用性较强。
数字滤波器分为有限冲激响应(FIR)和无限冲激响应(IIR)两种。其中,FIR数字滤波器在实现任意幅频特性的同时能够保证严格
的线性相位特性。由于其单位冲激响应是有限的,没有输出到输入的反馈,因此系统是稳定系统。FIR数字滤波器在通信、图
像处理、模式识别等领域有着广泛应用。
在实时性要求较高的应用场合,相比于DSP芯片或专用芯片,采用可编程芯片FPGA实现FIR数字滤波器具有高速、高精度、
高灵活性的优点。数字滤波器的设计方法有多种,常用的有窗函数法、频率抽样法和最佳一致逼近法,但这些设计方法在设计
滤波器尤其是高阶滤波器时工作量较大。而利用Matlab信号处理工具箱进行数字滤波器的设计,能够减少工作量,提高设计效
率。文中首先使用Matlab设计滤波器系数,然后利用FPGA实现系统。
在FPGA中,进行传统乘法运算占用大量的硬件资源,分布式算法利用ROM查找表将固定系数的乘累加运算转换成查表操
作,避免了乘法运算,查表后的数据执行的都是简单的加法运算,可以较大程度地提高运算速度。分布式算法分为全串行分布
式算法和全并行分布式算法,全串行分布式算法资源消耗少但运算速度慢,全并行分布式算法资源消耗少但运算速度快。兼顾
运算速度与资源消耗,本文采用改进并行分布式算法进行FIR数字滤波器设计。
1 FIR数字滤波器基本理论数字滤波器基本理论
对于FIR数字滤波器系统,其冲激响应是有限长的,系统函数可记为
式中,x(n)是采样输入序列;h(i)是滤波器系数;N是滤波器抽头数;y(n)是滤波器输出序列。
2 分布式算法分布式算法
分布式算法(Distributed Arithmetic,DA)是一项重要的FPGA技术,广泛地应用在卷积、相关、DFF计算和RNS反演映射等乘
积和中。有关DA算法的讨论可以追溯到1973年Croisier发表的论文,而DA算法的推广工作则由Peled和Liu完成。虽然DA算法
较早被提出,但是一直到可编程门阵列的查找表结构出现,这种算法才重新受到重视,成为一种重要的FIR数字滤波器设计方
法。
DA算法是一种以实现乘加运算为目的的运算方法,其与传统实现乘加运算算法的不同之处在于执行部分积运算的先后顺序不
同。DA算法在完成乘加功能时是通过将各输入数据每一位产生的部分积预先进行相加形成相应部分积,然后再对相应部分积
进行加权累加形成最终结果;而传统算法是等到所有乘积产生之后再进行相加来完成乘加运算。与传统算法相比,DA算法可以
大幅减少硬件电路规模,易实现流水线处理,提高了电路的执行速度。DA算法原理如下。
对于有符号系统,采用补码实现,输入序列x(n)表示为
式中,y(n)是输出序列;x(n)是输入序列;h(i)是滤波器系数;B是x(n)二进制补码的位数;xb(n)是x(n)的第6位,N是滤波器抽头数。
本文采用改进并行DA算法进行FIR数字滤波器设计,通过引入倍频模块减少LUT的个数来节省资源消耗,同时保证运算速度。
该算法仅使用一个LUT并结合流水线寄存器的使用来提高系统运算速度。算法原理是让输入数据每一个相同位同时寻址,将寻
址内容进行相应的移位累加操作得到最终输出,算法如图1所示。
资源评论


weixin_38645379
- 粉丝: 6
- 资源: 924
上传资源 快速赚钱
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助


安全验证
文档复制为VIP权益,开通VIP直接复制
