版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 基于FPGA的改进型FIR滤波器的实现 黄晓红,蔡江利 时间:2009年07月02日 字 体: 大 中 小 关键词: ? 摘? 要:? 关键词: FPGA;分布式算法;拆分查找表;FIR滤波器?1 FIR数字滤波器的直接型
2、结构? FIR数字滤波器的输入与输出可以用下式表示:? ?式中:N为滤波器的阶数(或抽头数);x(k)为第k时刻的输入样本值;h(k)为第k级抽头系数。FIR因为其单位脉冲响应h(n)是有限长而得名,即h(n)是一个有限长序列,对h(n)做Z变换就得到FIR数字滤波器的系统函数H(z):? 由此可以得到FIR数字滤波器直接型的结构图如图1所示。?2 改进型FIR数字滤波器算法?2.1 分布式算法的原理? 分布式算法是一种重要的FPGA技术,广泛应用在计算乘积和之中。除了卷积之外,相关、DFT计算和RNS反演映射等都可以转化为乘积和(sum of products)的形式。? (1)无符号分布式
3、算法? 假设N项的乘积和表示为:? 又设系数h(n)是已知的常系数,x(n)是变量,设x(n)的表达式如下:?其中xb(n)表示x(n)的第b位,x(n)是x的第n次采样,则y又可以表示为:? (2)有符号分布式算法? 对于有符号数补码数采用补码的表示方法。需要注意的是,在补码中,最高有效位是用来区别正数和负数的。将采用(B+1)位表达式:? 要实现有符号分布式系统,通常采用“带有加/减控制器的累加器”实现此系统,当xb(n)为0时进行加法运算,为1时进行减法运算。?2.2 串行分布式算法? 串行分布式算法结构如图2所示。利用一个LUT实现映射,即2N字宽,预先编写好程序的xb=xb(0),x
4、b(1),xb(N-1)的映射,经查找表查找后输出,N次查询循环后就完成了计算结果。? 以三阶四位有符号的数字滤波器为例,令滤波器的系数为-2,1,3,LUT可采用基于FPGA的逻辑查找表或利用FPGA自带的ROM实现。用case表实现的核心代码如下:? Process (table_ in)? Begin? ? Case table_ in is? when “000”=>? table_ out<=0;? when “001”=>? table_ out<=-2;? when “010”=>? table_ out<=3;? when “011”=>
5、;? table_ out<=1;? when “100”=>? table_ out<=1;? when “101”=>? table_ out<=-1;? when “110”=>? table_ out<=4;? when “111”=>? table_ out<=2;? when? others=>? table_ out<=0;? ? end? case;? end? process;?2.3 并行分布式算法? 并行分布式算法结构如图3所示,图中虚线代表流水线寄存器,输入采用逐次采样(每次一个字)、位并行的形式。将每个
6、数据的相同位递给LUT,对于输入的每一位都需要配置相应单独的表,且表的规模不固定(输入位宽等于滤波器抽头的数量),但表的内容相同。且不同的位对应不同的值,然后将从LUT中读取的数据经过处理后送入加法器中,每级的加法运算都是并行的。?2.4 拆分查找表? 并行分布式算法虽然能够有效提高系统运算的速度,但是占用的资源太大。串行分布式算法占用的资源小,但系统的运算速度慢。而且当N很大时,即在FIR滤波器中如果阶数很高时,作为查找表的ROM将很大,例如:假定N=16,输入LUT的位宽为16,则ROM的大小为16×216 bit,即1 Gbit。N每增加一位,ROM容量就增加一倍,这种以2的幂
7、次递增的资源占用是硬件资源不可接受的。? 当系统对速度要求不太高、而滤波器的阶数很高时,可以采用拆分表减少ROM容量并将结果累加。如果再加上流水线寄存器,这个改进并没有降低速度,却可以极大减少LUT的设计规模。? 假设长度为LN的内积:?可以用一个DA结构实现。将和分配到L个独立的N阶并行DA的LUT之中,结果如下:? 例如:实现一个4N的DA设计需要3个次辅助加法器。而表格的规模从一个4N×2B的LUT降低到4个N×2B表。图4是拆分查找表的硬件结构图。?3 基于FPGA实现的改进型FIR滤波器结构性能?3.1 16阶8位FIR滤波器的实现及仿真? 本设计采用Altera
8、公司的Cyclone II EP2C35F672C8器件,在Quartus II 5.0下仿真,FIR滤波器为16阶,输入数据为8位(最高位代表符号位)。如果采用单个查找表的面积为28×16 bit,面积太大。采用拆分查找表的结构能减少面积,在Altera公司的一系列FPGA中LUT查找表采用四输入查找表,因此单个表可以拆分为2个四输入的查找表。因为设计的是线性相位滤波器,这样单个表的面积就得到了最优化。同时单个查找表的连线是LUT查找表的内部连线,减少了互联的资源和连线的延迟。查找表计算方法如表1所示。? 设输入序列为99,0,0,0,70,0,0,0,99,0,0,0,70,0,
9、0,0,滤波器的系数为-12 -18 13 29 -13 -52 14 162 242 14 -52 -13 29 13 -18。仿真结果如图5所示。?本设计的时钟主频可达73.49 MHz,占用了236个逻辑单元,占整个LC(Logic cell)的2%。可见拆分查找表的方式实现FIR滤波器速度较快,占用的资源少。?若要实现更高阶的滤波器,拆分查找表法的优势将更加明显。另外,如果是线性相位的滤波器,表的个数将能缩小一倍。本设计即为线性相位滤波器。?3.2 改进型FIR滤波器在FPGA中实现的特点分析? 为了分析改进型FIR滤波器在FPGA中实现的特点,利用VHDL语言程序分别设计了16阶的串
10、行、并行及直接型FIR滤波器,并与相应的拆分查找表法FIR滤波器进行比较,其各自的运行速度及占用FPGA资源的情况如表2所示。? 本设计采用了拆分查找表方法,影响系统速度的是加法器组,可以对滤波器进一步改进,如对加法器组利用流水线、编码等技术可以提高工作速度。? 通过以上的理论分析和仿真结果表明,基于FPGA器件的拆分查找表FIR算法,占用资源少、运算速度快,在资源允许的条件下可根据实际应用任意确定滤波器的长度和阶数,是一种比较实用可靠的高效设计方法。?参考文献?1 PARHI K K.VLSI digital signal processing systems:Design?and implementationS.John Wiley
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026届湖南省怀化三中高二化学第一学期期中考试模拟试题含解析
- 2026届福建莆田秀屿下屿中学化学高二上期中考试试题含解析
- 2025年煤矿安全培训安全生产权利试卷及答案
- 2025工伤预防培训试题及答案
- 2025年检验科危急值考核试题及答案
- 2025年生产安全培训试卷及答案
- 2026届云南省昆明市化学高二第一学期期末考试试题含答案
- 重庆市第三十中学2026届高三化学第一学期期末质量检测模拟试题含解析
- 湖南师大附中思沁中学2026届高三上化学期中综合测试试题含解析
- 燃气诈骗面试题及答案
- 企业财务管理中的流动性风险评估与应对策略
- 变电站GIS组合电器安装工程风险识别及预防措施
- 某管理咨询公司薪酬管理制度
- 物业管家管理课件
- TCACM 1460-2023 成年人中医体质治未病干预指南
- 三人合租房协议合同
- 大学生职业生涯规划书模板范文:市场营销篇
- 卧式蒸汽锅炉蒸汽锅炉安全操作规程
- 2025年内蒙古包钢集团招聘笔试参考题库含答案解析
- 安置房工程装配式预制混凝土构件安装施工方案
- 直立性低血压诊断与处理中国多学科专家共识(2024版)解读
评论
0/150
提交评论