基于CPLD的IIR滤波器的实现

  • 格式:pdf
  • 大小:183.45 KB
  • 文档页数:4

= (
j= - c
∑ ∑
2
i =0
bi xj ( n - i ) - 2
i =0
∑b x
i
d
( n - i) )
© 1994-2009 China Academic Journal Electronic Publishing House. All rights reserved.
第 3 期 张莉 ,杨永明 : 基于 CPLD 的 IIR 滤波器的实现 231
k
r
( n - k)
( 7)
式中 , r = - v , - v + 1 , …, u 。从而可将式 ( 5 ) 改写 为:
d=1
y ( n) = [
d
j= - c
2 F ( x ( n) , x ( n ∑
j j
j
1) , …, x j ( n - M ) )
- 2 F ( x d ( n) , x d ( n - 1) , …, x d ( n - M ) ) ]
( n ) , x ( n - 1) , …, x ( n - M ) 这 M + 1 输入数据的第
j 位 bit 值 ,以此为变量定义函数 : F ( x j ( n ) , x j ( n - 1 ) , …, x j ( n - M ) )
M
y ( n) =
i =0
∑b x ( n -
i) +
u- 1
+ [
r= - v u
∑2 G ( y
r
r
( n - 1) , y r ( m - 2) , …, y r ( n - N ) )
- 2 G ( y u ( n - 1) , y u ( n - 2) , …, y u ( n - N ) ]
( 8)
x ( n - i) =
j= - c
+ (
r= - v k =1
∑∑
ak y r ( n - k ) - 2
u
k=1
∑a y
k
u
( n - k) ) ( 5)
3 IIR 滤波器的硬件实现方案设计
IIR 数字滤波器时域差分方程描述如下 :
M N i
xj ( n) , xj ( n - 1 ) , …, xj ( n - M ) 是分别对应于 x
基于 CPLD 的 IIR 滤波器的实现
张 莉 ,杨永明
( 重庆大学电气工程学院 ,重庆市 ,400044)

摘要 : 本文介绍了 IIR 滤波器的硬件实现技术 ,结合复杂可编程逻辑器件 CPLD 提出了实现 IIR 滤波器硬件电路的 方案 ,给出了采用 VHDL 硬件描述语言设计的 IIR 陷波滤波器电路实例 。最后将设计配置到 ALTERA 公司的 ACEX
j
d
从式 ( 8) 可以看出 ,只要能计算出函数 F 和 G 的值 , 然后移位相加Π 减 ,即可得到 y ( n ) 。由于 F 、 G 的自 变量仅取 0 或 1 ,因此具有 M + 1 个二进制自变量 xj ( n ) , xj ( n - 1) , …, xj ( n - M ) 的函数 F 有 2 M + 1 个取 值 ;具有 N 个二进制自变量 y r ( n - 1) , y r ( n - 2 ) , N …, y r ( n - N ) 的函数 G 有 2 个取值 。把这些值可 以事先固化在存储器中 , 然后根据 xj ( n ) , xj ( n 1) , …, xj ( n - M ) 和 y r ( n - 1) , , y r ( n - 2 ) , …, y r ( n - N ) 的值 ( 作为存储器的地址线) 获取相应函数 F 和 G 的值 ,对获取的函数值再进行进一步的移位和 加Π 减运算处理 ,就可得到经过滤波后的输出信号 y ( n ) ,于是复杂的乘法运算就简化为查表 、 移位和加Π 减运算 。需要注意的是 , 在获取符号位对应的函数 值 F ( x d ( n ) , x d ( n - 1) , …, x d ( n - M ) 和 G ( y r ( n 1) , y r ( n - 2) , …, y r ( n - N ) ) 后 ,应执行减法运算而 不是进行加法运算 , 用前面得到的函数值累加结果 减去符号位对应的函数值 。
1 引 言
数字信号处理是最近二三十年来发展最为迅速 的新兴学科之一 ,进入 20 世纪 70 年代以来 ,大规模 集成电路和计算机技术的飞跃发展 , 促进了数字信 号处理 ,在科学和工程技术的诸多领域中得到广泛 的应用 。数字滤波技术作为数字信号处理的重要组 成部分 , 从实现方法上分为 IIR 滤波器和 FIR 滤波 [1] 器 。 本文对 IIR 陷波滤波器的硬件实现进行探讨。
( n - k ) 为小数位 ,当 r = 0 , …, u - 1 时 , y r ( n - k ) 为
整数位 。 将式 ( 3) 和式 ( 4) 代入式 ( 1) 可得 :
M d- 1
y ( n) =
i =0 N
x (n ∑ ∑ bi (
j j= - c u- 1
i) 2 - xd ( n - i) 2 )
1K 系列芯片之中 ,并放入实际的电路中 ,以验证其滤波性能 。
关键词 :CPLD ;VHK L ; IIR 滤波器 ; 陷波滤波器 中图分类号 :TN713 文献标识码 :A 文章编号 :1005 - 9490 (2002) 03 - 0229 - 04
机 (MCU) 是难于直接参与高速处理工作的 。由于
k=1
∑a y ( n k
k)
( 1)
式中 : x ( n - i ) 为输入信号 , y ( n - k ) 为输出信号 , ak 和 bi 是滤波器的系数 , k = 1 , …, N , i = 0 , …, M 。 由上式可以知道 IIR 数字滤波器涉及到大量的 卷积运算 ,如果直接按照上述结构通过设计乘法器 来实现 ,那么不仅会耗费大量的时间 ,导致处理速度 变慢 ,而且在使用硬件来实现时 ,将占用大量的器件 资源 。考虑到我们选用的器件是 ALTERA 公司的 ACEX 1K 系列芯片 , 它具有嵌入式阵列块 EAB 和 LUT 查找表结构 , 因此可以充分利用芯片所具有的 结构 ,设计出一个优化的硬件实现方案 。 对于式 ( 1) 所描述的系统 ,将输入信号 x ( n - i ) 采用补码形式的定点二进制数表示如下 : x d ( n - i ) x d- 1 ( n - i ) …x0 ( n - i ) ( 2) ・x - 1 ( n - i ) x - 2 ( n - i ) …x - c ( n - i ) xj ( n - i ) 表示信号的第 j 位二进制码 ( j = - c , …, - 1 ,0 , …, d) ,取值可为 0 或 1 , 最高位 x d ( n - i ) 代 表符号位 , 当 x d ( n - i ) 为 0 时 , x ( n - i ) ≥ 0 ; 当 xd ( n - i ) 为 1 时 , x ( n - i ) < 0 。 x d - 1 ( n - i ) …x0 ( n i ) 表示 d 位整数位 , x - 1 ( n - i ) …x - c ( n - i ) 表示 c 位小数位 , 那么输入信号 x ( n - i ) 的十进制数值可 以表达为 :
x (n ∑
j
i) 2 - xd ( n - i) 2
j
d
( 3)
同理将 y ( n - k ) 采用补码形式的定点二进制数表 示 ,可得式 ( 4) :
u- 1
y ( n - k) =
r= - v
y ∑
r
( n - k) 2 r - yu ( n - k) 2 u
( 4)
式中 , y u ( n - k ) 为符号位 ,当 r = - v , …, - 1 时 , y r
2 滤波器的硬件实现技术
滤波器功能的实现实际上是通过大量的加法和 乘法运算来完成的 ,因此在进行实时滤波处理时 ,必 须解决乘法和累加运算的耗时问题 , 使运算速度尽 可能的快以满足实时处理的要求 。微处理器或单片
① 来稿日期 :2002201205
© 1994-2009 China Academic Journal Electronic Publishing House. All rights reserved.
+
d- 1
k=1
y ∑ ∑ ak (
r=r - yu ( n - k) 2 u )
M d
4 IIR 滤波器的设计及实现
IIR 数字滤波器的设计方法分为模拟转换法和 直接法两种 。前者是借助于已经成熟的模拟滤波器

d- 1
=
i =0
∑b x ( n i j
i)
( 6)
式中 j = - c , - c + 1 , …, d 。 同时以 N 个输出数据的第 r 位 bit 值为变量定 义函数 : G ( y r ( n - 1) , y r ( n - 2) , …, y r ( n - N ) )
N
=
k=1
∑b y
的设计方法 ,利用模拟滤波器完整的设计公式和数 据图表进行设计 , 然后再将模拟滤波器转换成数字 滤波器 ,后者可分为直接在频域和直接在时域进行 设计 ,包括在频域设计的 z 平面零极点法 、 频域的 l p 优化设计法 、 时域的 pade 逼近设计法和最小平方逆 [3 ] 设计法 。本设计中采用了在频域进行直接设计的 z 平面零极点法 , 设计的滤波器是一个二阶的陷波 滤波器 ,其传递函数如下所示 。 -1 -2 1 - 1. 9021 z + z ( 9) H ( z) = -1 -2 1 - 1. 8831 z + 0. 9801 z 根据前面的硬件实现方案设计的二阶 IIR 滤波 器的硬件实现结构图如图 1 所示 。由图可知 , 实现