基于分布式算法的FIR数字滤波器的FPGA实现

  • 格式:pdf
  • 大小:390.60 KB
  • 文档页数:4
GA 的出现 , 克服了上述方案的诸多不足 , 成为 F IR 数字滤波器的优良实现载体 , 相关研究受到
y ( n) =
n =0
∑c[ n ] x [ n ] =c[ 0 ] x [ 0 ]
+ c[ 1 ] x [ 1 ] +
广泛关注
[ 5 26 ]
.
( 1) … + c[N - 1 ] x [N - 1 ] 其中 , y ( n ) 表示滤波器的输出 , x ( n ) 表示输入信 号 , c ( n ) 表示滤波器的系数 , N 表示滤波器的阶 数 . 在 FPGA 中 ,数据采用二进制的补码表示 , 所 以有符号的输入信号 x ( n ) 的表达式如下 :
n =0
式 ( 3 )中的函数 f ( c[ n ], xb [ n ] ) 利用查找表来实 现 , 即把 2 的数据预先存入程序的查找表 , 然后 把一个 N 位的输入向量 xb = [ xb [ 0 ], xb [ 1 ], …, xb [N - 1 ] ] 作为地址 , 输出则为 f ( c[ n ], xb [ n ] ) . 各个映射 f ( c[ n ], xb [ n ] ) 都由相应的二次幂加权 并累加 . 如图 1所示 , 在 N 次查询循环后就完成了 对积 y 的计算 .

86 表 2 查找表 ROM 2
地址
X 15b X 14 b X 13 b X 12b X 11b X 10b X 9b X 8 b








第 30 卷
存储数据
0
h ( 8) h ( 9) h ( 8) + h ( 9)
00000000 00000001 00000010 00000011
N
由于该滤波器的系数是偶对称的 , 所以本文 根据图 2 所示的线性相位 F IR 滤波器的结构来设 计该滤波器 . 首先将相同滤波器系数相乘的两个 输入数据预先相加 ,也就是把 32 个输入信号等效 为 16 个输入信号 , 即 X 1 = x0 + x31, X 2 = x1 + x30, …, X 16 = x15 + x16, 为了防止相加时产生溢 出 , 将 12 bit的输入扩展为 13 bit,然后把这 16 个 输入信号作为 ROM 的地址线 . 这样相当于减小 了滤波器的阶数 ,从而减小了硬件规模 .
FI R 滤波器的 FPGA 实现方式主要有乘累加
3收稿日期 :
2008 211 206 作者简介 : 薛严冰 ( 1973 - ) ,女 ,副教授 ,博士研究生 ,主要从事电路设计和信号处理的研究 E2 ma il: dlxyb@ djtu. edu. cn.
© 1994-2010 China Academic Journal Electronic Publishing House. All rights reserved.
……
11111111
……
h ( 7) + h ( 6) + h ( 5) + h ( 4) + h ( 3) + h ( 2) + h ( 1) + h ( 0)
© 1994-2010 China Academic Journal Electronic Publishing House. All rights reserved.
基于分布式算法的 F I R数字滤波器的 FPGA 实现
薛严冰 ,韩雪 ,邵远
3
(大连交通大学 电气信息学院 , 辽宁 大连 116028 )
摘 要 : 根据基于查找表结构的分布式算法的基本原理 ,提出了基于分布式算法的有限脉冲响应数字滤波 器 ( F IR )的实现方法 . 用 FPGA 设计并实现了一个 32 阶低通有限脉冲响应数字滤波器 . 利用有限脉冲响应 数字滤波器线性相位的特性减小了电路规模 ,采用分割查找表的方法减小了存储空间 ,采用并行分布式算 法结构和流水线技术提高了滤波器的速度 . 对滤波器性能进行了分析 . 关键词 : F IR 滤波器 ; 分布式算法 ; 查找表 ; FPGA 中图分类号 : TN713. 7 文献标识码 : A
- 0. 707 1 ] ,对 其 量 化 后 为 [ 0 , 1 4 4 7 , 2 0 4 7 , 1 447, 0, - 144 7, - 2 047, - 144 7 ]. 取四个周期 的信号作为输入信号 ,根据式 ( 1 ) 计算理论值 , 即
……
11111111
……
h ( 15 ) +h ( 14 ) +h ( 13 ) +h ( 12 ) + h ( 11 ) +h ( 10 ) +h ( 9 ) +h ( 8 )
为了提高滤波器的速度 , 本文采用了并行分 布式算法结构 ,即将 13 bit的输入信号并行输入 ; 同时采用了流水线技术来提高运行速度 . 首先把 查表后的结果寄存 ,把寄存的结果对应相加 ,再把 相加后的和寄存 ,寄存的和乘以相应的二次幂 ,最 后将部分积相加或相减 ,得到最终结果 ,该设计的 总体结构如图 3 所示 . 2. 3 仿真结果及分析 在 A ltera 公司的 Quartus Ⅱ 5. 0 的软件环境 下 ,采用 StratixⅡ 系列的 EP2S15F672 I4 器件进行 了综合仿真 . 用 MATLAB 软件设计了一个幅度为 1,频率为 50 Hz的正弦波 , 并用 400 Hz的采样频 率对其进行采样 , 得到一个周期正弦信号的采样 值为 [ 0, 0. 707 1, 1, 0. 707 1, 0, - 0. 707 1, - 1 ,
[8]
.
FI R 滤波器的实现方法有 : 利用专用的集成
[2] [3] 电路 ( ASIC ) 、 DSP 器 件 和 可 编 程 逻 辑 器
1 分布式算法
分布式算法是一项重要的 FPGA 技术 ,广 泛地应用在计算乘积和之中 . 一个 N 阶的 F IR 滤 波器的表达式如下 :
N-1

[4]
. 尽管 DSP处理器具有通过软件设计实现不
存储数据
0
h ( 0) h ( 1) h ( 0) + h ( 1)
00000000 00000001 00000010 00000011
根据设计指标 ,使用 MATLAB 软件中的数字 信号处理工具箱 , 用 Kaiser窗设计出符合本文条 件的 F IR 滤波器的系数 . 由于 FPGA 中的数据是 用定点数表示的 ,所以需要对系数进行量化 ,本文 采用 MATLAB 中的取整函数对系数进行量化 ,量 化后的系数如下 :
h ( 7 ) 组成 , 供 ( X0 b X1 b …X 7 b ) 寻址 ; 而 ROM2 由系
16
数 h ( 8 ) ~ h ( 15 ) 组成 , 供 ( X 8 b X9 b …X15 b ) 寻址 .
表 1 查找表 ROM 1
地址
X 7b X 6b X 5b X 4b X 3b X 2b X 1b X 0b

第 4期
薛严冰 ,等 : 基于分布式算法的 F IR 数字滤波器的 FPGA 实现
B-1
85
x [ n ] = - 2 ×xb [ n ] +
b
b =0
∑x
b
[ n ] ×2 ,
b
h ( 0 ) = h ( 31 ) = - 12, h ( 1 ) = h ( 30 ) = - 25 ( 2) h ( 2 ) = h ( 29 ) = - 3, h ( 3 ) = h ( 28 ) = 44 h ( 4 ) = h ( 27 ) = 52, h ( 5 ) = h ( 26 ) = - 24 h ( 6 ) = h ( 25 ) = - 109, h ( 7 ) = h ( 24 ) = - 69 h ( 8 ) = h ( 23 ) = 106, h ( 9 ) = h ( 22 ) = 214 h ( 10 ) = h ( 21 ) = 43, h ( 11 ) = h ( 20 ) = - 311 ( 3) h ( 12 ) = h ( 19 ) = - 402, h ( 13 ) = h ( 18 ) = 153 h ( 14 ) = h ( 17 ) = 1 200, h ( 15 ) = h ( 16 ) = 2 047
第 30 卷 第 4期 2009 年 8 月
大 连 交 通 大 学 学 报 JOURNAL OF DAL I AN J I AOTONG UN I V ERSITY
Vol . 30 No. 4 Aug . 2009
文章编号 : 1673 29590 (2009) 04 20084 204
2. 2 滤波器的设计
按照图 2 所示的结构 , 需要 2 × 16 bit大小 的查找表 ,为了减小存储滤波器系数所需空间 ,利 16 用分割查找表的方法将 2 × 16 bit大小的查找表 8 分割为两个 2 × 16 bit大小的查找表 ,即表 1 和表 2 所示的 ROM1 和 ROM2. ROM1 由系数 h ( 0 ) ~
[1]
器 MAC
[7]
(M ultip lier Add Cell) 结构和分布式算
法 DA ( D istributed A rithmetic ) 结构两种 . 采用 大规模的乘累加 (MAC ) 运算来实现高阶 F IR 滤 波器会耗费有限的硬件资源 , 因此利用 ROM 查 询表将固定系数的乘累加运算转换成查表操作的 [9] DA 结构成为设计的首选 . 在本文中 ,基于分布式算法设计了一种低通 F IR 滤波器 ,利用线性相位 F IR 滤波器的对称性 减小了硬件规模 , 利用分割查找表的方法减小了 存储空间 ,采用并行分布式算法结构和流水线技 术提高滤波器的速度 , 最后在 FPGA 上实现了该 滤波器 . 经过验证 ,该滤波器的滤波效果良好 .