CIC滤波器的原理及FPGA实现
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
3. 2 抽取器的 FPGA 实现 实现抽取器的最简单的一种方法是, 从 x (n) 中 每 R 个采样点抽取一个, 重新组成一个新的序列 x ’(n) , 即
x ’(n) = x (R n) , n = - ∞~ + ∞ 因此, 可以通过分频的方法用 FPGA 实现。V HDL 代码示例如下:
DC 频率 (也就是 z = 1)。 最大动态范围增长是:
B grow = (RM ) N 或
bgrow = lo g2B grow = N lo g2RM 通过观察梳状滤波器和积分器的结构, 可以发 现: 无须乘法运算。 事实上, 在积分器的反馈回路中 有一个乘 1 操作, 在梳状滤波器的前馈回路中也有 一个乘- 1 的操作, 但这可以通过简单的取反实现。 由于无乘法器, 使得电路复杂性大大降低, 从而与一 般的F IR 和IIR 相比节省很多资源, 这也是C IC 滤波 器受到广泛应用的原因之一。
Ξ 作者简介: 盖鹏翱, 男, 1975 年 12 月生, 工程师, 中国空间技术研究院在读硕士研究生。 主要研究方向: 中频数字化、嵌入式系统。
— 52 —
《无线通信技术》2005 年第 4 期
2 C IC 滤波器的基本原理
2. 1 C IC 抽取滤波器 N 级C IC 抽取滤波器的基本框图如图 1 所示。 从图中可知, C IC 抽取滤波器主要由 N 级积分器 ( In teg ra to r)、抽取器 (D ecim a t ion) 和N 级梳状滤波 器 (Com b F ilter) 三部分组成。其中, N 级积分器工 作在高采样频率 f s 下。每级积分器都是一个反馈系 数为 1 的单极点 IIR 滤波器, 其传递函数为:
T he R ea liza t ion of Ca scaded In teg ra to r Com b F ilter W ith FPGA
GA I Peng2ao, ZHAO D i (Shandong A ero sp ace E lect ron ic T echno logy In st itu te, Shandong Yan ta i 264000, Ch ina)
Abstract: T he filter of ca scaded in teg ra to r com b is becom ing m o re im po rtan t in the
app lica t ion of d ig ita l dow n converter (DDC ). F irst ly, it is u sed to decim a te the sam p le
抽取滤波器的频率响应。
《无线通信技术》2005 年第 4 期
— 53 —
图 5 C IC 抽取滤波器的频率响应
3 C IC 抽取滤波器的 F PGA 实现
对于一个 R = 32、M = 1、N = 4 的C IC 抽取滤 波器来说, 它包括一个四阶积分器和一个四阶梳状 滤波器, 并且采样速率降低了32 倍。用FPGA 实现, 首先要实现所有的积分器, 然后是抽取器, 最后是实 现梳状部分。 3. 1 积分器的 FPGA 实现 由式 (1) 推出单级积分器的差分方程 y (n) = x (n) + y (n - 1) , 可以看出用累加器即可实现。对 于一个8 位输入的4 阶C IC 滤波器, 为了保证运行时 间不会产生溢出, 需要的内部字宽为 W = B in + B grow = 8 + 4lo g232 × 1 = 28 位, 因此需要将输入进 行符号扩展。V HDL 代码示例如下:
H l (z ) =
1 1 - z- 1
(1)
单级积分器基本实现框图如图 2 所示。
图 1 N 级C IC 抽取滤波器基本框图
图 2 单级积分器的基本实现框图
C IC 抽取滤波器的梳状部分工作在较低的频率 f s R (R 是整数倍的频率变换因子)。梳状部分由 N 级梳状滤波器组成, 以 f s R 为参照, 每级微分延迟 M 个样本。M 影响滤波器频率响应, 工程实现中一 般取值为 1 或 2。以 f s 为参照, 单级梳状滤波器的传 递函数为
Fra Baidu bibliotek
以 f s 为参照, 由式 (1) 和 (2) , 推出整个 C IC 滤 波器的传递函数为
H
(z ) =
H
N l
(z
)H
N c
(z )
=
(1 - z - RM ) N (1 - z - 1)N
RM - 1
∑ = [
z - k ]N
(4)
k= 0
从 (4) 式可以看出, H (z ) 有 RM N 个零点和N
3. 3 梳状滤波器的 FPGA 实现 由式 (3) 推出单级梳状滤波器的差分方程 y (n) = x (n) - y (n - 1) , 可以看出用减法器即可实现。 对于C IC 滤波器来说, 正常的输出字宽一般都明显 比W 小, 比如 9 位。V HDL 代码示例如下:
com ber: p rocess (clk_ com b) b eg in if (clk_ com b’even t and clk_ com b= ’1’) then
frequency. Second ly , it can be u sed a s a low p a ss filter. T he C IC filter is a flex ib le,
m u lt ip lier2free filter w h ich includes adders, sub t racters and reg isters, so it u ses less
H c (z ) = 1 - z - RM
(2)
当M = 1, 以 f s R 为参照时, 传递函数为
H c (z ) = 1 - z - 1
(3)
单级梳状滤波器基本实现框图如图 3 所示。
图 3 单级梳状滤波器的基本实现框图
在积分器和梳状滤波器之间是一个速率转换器 (抽取器) , 转换器将最后一级积分器的输出数据速 率从 f s 降到 f s R (将多余的样本丢弃)。
p ackage da ta_ vecto r_ 28 is sub typ e w o rd28 is in teger range 0 to 23 3 28- 1; - 设置 28 位的数据变量 end p ackage da ta_ vecto r_ 28; - - 对输入进行符号扩展 Signa l sx tx : std_ logic_ vecto r (27 dow n to 0) ; A : p rocess (x) b eg in sx tx < = sx t (x, 28) ; end p rocess A ; - - 4 级积分器 in tegra to r: p rocess (clk) b eg in if (clk’even t and clk= ’1’) then
图 4 C IC 内插滤波器
2. 3 C IC 抽取滤波器的频率响应
C IC 抽取滤波器具有低通滤波的特性。 如果令
z = ej2Πf R (f 是相对于 f s R )
代入式 (4) , 则得到C IC 抽取滤波器的幅频响应:
H (f ) =
sinΠM f N sin (Πf R )
(5)
图 5 表示了一个 R = 32,M = 1, N = 4 的C IC
个极点。RM 个零点是由 (1 - z - RM ) 产生的, 处于
2Π (RM ) (或 f s RM 频率) 弧度处, 圆心起始于 z =
1。每个不同的零点都重复 N 次。H (z ) 的 N 个极点
位于 z = 1 处, 可以看出这些极点已经被C IC 滤波器
的N 个零点抵消掉了。其最大动态范围增长出现在
resou rces and can p lay w ell in h igher frequency. B a sed on the theo ry of C IC filter, I have
sim u la ted and syn thesized the filter w ith the FPGA , and rea lized it in the circu it of DDC
x ≤x_ in; - - x_ in 是 8 位输入 i0 ≤i0+ conv_ in teger (sx tx) ; i1 ≤i1+ i0; - - 累加 i2 ≤i2+ i1; i3 ≤i3+ i2; - - i3 为第四级积分器输出
……… End if; End p rocess in tegra to r;
Ξ
C IC 滤波器的原理及 F PGA 实现
盖鹏翱, 赵笛 (山东航天电子技术研究所, 烟台 264000)
摘要: 在数字下变频 (DDC) 中, C IC (级联积分梳状) 滤波器起着重要的作用。 它主要用于 采样速率的抽取, 同时具有低通滤波的作用。C IC 滤波器的主要特点是, 仅利用加法器、减法器 和寄存器 (无需乘法器) , 因此占用资源少、实现简单且速度高。本文在分析C IC 滤波器原理的 基础上, 用V HDL 语言在 FPGA 上进行了仿真、综合, 并成功的应用于DDC 芯片的开发中。 关键词: 数字下变频; FPGA ; C IC 抽取滤波器; V HDL 中图分类号: TN 713+ . 6 文献标识码: A 文章编号: 100328329 (2005) 0420052204
- - - - - - - signa l coun t: in teger range 0 to 31; - - 计数器 signa l clk_ com b: std_ logic; - - 梳状部分时钟 - - - - - - - if (coun t > 8) and (coun t < 16) then clk_ com b≤ ’1’; e lse clk_ com b≤’0’; end if;
2. 2 C IC 内插滤波器 通过改变 C IC 抽取滤波器的结构, 可以实现 C IC 内插滤波器, 应用在数字上变频中。 如图 4 所 示, 在 C IC 内插滤波器中, 梳状滤波器工作在低的 f s R , 积 分 器 工 作 在 高 的 f s 频 率 下, 内 插 器 ( In terpo la tion) 将最后一级梳妆滤波器的输出数据 速率从 f s R 升到 f s 。
大。鉴于此, 当前的专用DDC 芯片中, 都采用了一种 高 效的滤波器—— C IC 滤波器 (C IC 滤 波 器 是 由 Hogenauer E. B. 于 1981 年提出的, 因此又被称为 Hogenauer 滤波器) 作为第一级滤波器, 实现抽取、 低 通滤波; 第二级则采用一般的 F IR 或者 F IR 实现 的特殊滤波器 (如半带滤波器) , 此时它们工作在较 低的频率下, 且滤波器的参数得到了优化, 因此更容 易以较低的阶数实现, 节省资源, 降低功耗。 本文在研究C IC 滤波器基本原理的基础上, 对 其进行了 FPGA 仿真、综合, 并最终应用在工程中, 达到了设计要求。
successfu lly.
Key words: DDC; FPGA ; the decim a t ion filter of C IC; V HDL
1 前 言
在软件无线电中, 数字下变频器接收经过高速 采样的中频数字信号, 将所需的频带下变到基带。它 一般位于信号处理链的前端, 靠近A D。它主要由数 字振荡器、数字乘法器、数字滤波器三部分组成。 DDC 中数字滤波器的主要作用是抽取、低通滤 波, 一般由F IR 滤波器实现。但F IR 滤波器需要大量 的乘法器, 且一般DDC 中的采样速率很高, 因此F IR 滤波器需要工作在很高的频率, 使用资源多、功耗
x ’(n) = x (R n) , n = - ∞~ + ∞ 因此, 可以通过分频的方法用 FPGA 实现。V HDL 代码示例如下:
DC 频率 (也就是 z = 1)。 最大动态范围增长是:
B grow = (RM ) N 或
bgrow = lo g2B grow = N lo g2RM 通过观察梳状滤波器和积分器的结构, 可以发 现: 无须乘法运算。 事实上, 在积分器的反馈回路中 有一个乘 1 操作, 在梳状滤波器的前馈回路中也有 一个乘- 1 的操作, 但这可以通过简单的取反实现。 由于无乘法器, 使得电路复杂性大大降低, 从而与一 般的F IR 和IIR 相比节省很多资源, 这也是C IC 滤波 器受到广泛应用的原因之一。
Ξ 作者简介: 盖鹏翱, 男, 1975 年 12 月生, 工程师, 中国空间技术研究院在读硕士研究生。 主要研究方向: 中频数字化、嵌入式系统。
— 52 —
《无线通信技术》2005 年第 4 期
2 C IC 滤波器的基本原理
2. 1 C IC 抽取滤波器 N 级C IC 抽取滤波器的基本框图如图 1 所示。 从图中可知, C IC 抽取滤波器主要由 N 级积分器 ( In teg ra to r)、抽取器 (D ecim a t ion) 和N 级梳状滤波 器 (Com b F ilter) 三部分组成。其中, N 级积分器工 作在高采样频率 f s 下。每级积分器都是一个反馈系 数为 1 的单极点 IIR 滤波器, 其传递函数为:
T he R ea liza t ion of Ca scaded In teg ra to r Com b F ilter W ith FPGA
GA I Peng2ao, ZHAO D i (Shandong A ero sp ace E lect ron ic T echno logy In st itu te, Shandong Yan ta i 264000, Ch ina)
Abstract: T he filter of ca scaded in teg ra to r com b is becom ing m o re im po rtan t in the
app lica t ion of d ig ita l dow n converter (DDC ). F irst ly, it is u sed to decim a te the sam p le
抽取滤波器的频率响应。
《无线通信技术》2005 年第 4 期
— 53 —
图 5 C IC 抽取滤波器的频率响应
3 C IC 抽取滤波器的 F PGA 实现
对于一个 R = 32、M = 1、N = 4 的C IC 抽取滤 波器来说, 它包括一个四阶积分器和一个四阶梳状 滤波器, 并且采样速率降低了32 倍。用FPGA 实现, 首先要实现所有的积分器, 然后是抽取器, 最后是实 现梳状部分。 3. 1 积分器的 FPGA 实现 由式 (1) 推出单级积分器的差分方程 y (n) = x (n) + y (n - 1) , 可以看出用累加器即可实现。对 于一个8 位输入的4 阶C IC 滤波器, 为了保证运行时 间不会产生溢出, 需要的内部字宽为 W = B in + B grow = 8 + 4lo g232 × 1 = 28 位, 因此需要将输入进 行符号扩展。V HDL 代码示例如下:
H l (z ) =
1 1 - z- 1
(1)
单级积分器基本实现框图如图 2 所示。
图 1 N 级C IC 抽取滤波器基本框图
图 2 单级积分器的基本实现框图
C IC 抽取滤波器的梳状部分工作在较低的频率 f s R (R 是整数倍的频率变换因子)。梳状部分由 N 级梳状滤波器组成, 以 f s R 为参照, 每级微分延迟 M 个样本。M 影响滤波器频率响应, 工程实现中一 般取值为 1 或 2。以 f s 为参照, 单级梳状滤波器的传 递函数为
Fra Baidu bibliotek
以 f s 为参照, 由式 (1) 和 (2) , 推出整个 C IC 滤 波器的传递函数为
H
(z ) =
H
N l
(z
)H
N c
(z )
=
(1 - z - RM ) N (1 - z - 1)N
RM - 1
∑ = [
z - k ]N
(4)
k= 0
从 (4) 式可以看出, H (z ) 有 RM N 个零点和N
3. 3 梳状滤波器的 FPGA 实现 由式 (3) 推出单级梳状滤波器的差分方程 y (n) = x (n) - y (n - 1) , 可以看出用减法器即可实现。 对于C IC 滤波器来说, 正常的输出字宽一般都明显 比W 小, 比如 9 位。V HDL 代码示例如下:
com ber: p rocess (clk_ com b) b eg in if (clk_ com b’even t and clk_ com b= ’1’) then
frequency. Second ly , it can be u sed a s a low p a ss filter. T he C IC filter is a flex ib le,
m u lt ip lier2free filter w h ich includes adders, sub t racters and reg isters, so it u ses less
H c (z ) = 1 - z - RM
(2)
当M = 1, 以 f s R 为参照时, 传递函数为
H c (z ) = 1 - z - 1
(3)
单级梳状滤波器基本实现框图如图 3 所示。
图 3 单级梳状滤波器的基本实现框图
在积分器和梳状滤波器之间是一个速率转换器 (抽取器) , 转换器将最后一级积分器的输出数据速 率从 f s 降到 f s R (将多余的样本丢弃)。
p ackage da ta_ vecto r_ 28 is sub typ e w o rd28 is in teger range 0 to 23 3 28- 1; - 设置 28 位的数据变量 end p ackage da ta_ vecto r_ 28; - - 对输入进行符号扩展 Signa l sx tx : std_ logic_ vecto r (27 dow n to 0) ; A : p rocess (x) b eg in sx tx < = sx t (x, 28) ; end p rocess A ; - - 4 级积分器 in tegra to r: p rocess (clk) b eg in if (clk’even t and clk= ’1’) then
图 4 C IC 内插滤波器
2. 3 C IC 抽取滤波器的频率响应
C IC 抽取滤波器具有低通滤波的特性。 如果令
z = ej2Πf R (f 是相对于 f s R )
代入式 (4) , 则得到C IC 抽取滤波器的幅频响应:
H (f ) =
sinΠM f N sin (Πf R )
(5)
图 5 表示了一个 R = 32,M = 1, N = 4 的C IC
个极点。RM 个零点是由 (1 - z - RM ) 产生的, 处于
2Π (RM ) (或 f s RM 频率) 弧度处, 圆心起始于 z =
1。每个不同的零点都重复 N 次。H (z ) 的 N 个极点
位于 z = 1 处, 可以看出这些极点已经被C IC 滤波器
的N 个零点抵消掉了。其最大动态范围增长出现在
resou rces and can p lay w ell in h igher frequency. B a sed on the theo ry of C IC filter, I have
sim u la ted and syn thesized the filter w ith the FPGA , and rea lized it in the circu it of DDC
x ≤x_ in; - - x_ in 是 8 位输入 i0 ≤i0+ conv_ in teger (sx tx) ; i1 ≤i1+ i0; - - 累加 i2 ≤i2+ i1; i3 ≤i3+ i2; - - i3 为第四级积分器输出
……… End if; End p rocess in tegra to r;
Ξ
C IC 滤波器的原理及 F PGA 实现
盖鹏翱, 赵笛 (山东航天电子技术研究所, 烟台 264000)
摘要: 在数字下变频 (DDC) 中, C IC (级联积分梳状) 滤波器起着重要的作用。 它主要用于 采样速率的抽取, 同时具有低通滤波的作用。C IC 滤波器的主要特点是, 仅利用加法器、减法器 和寄存器 (无需乘法器) , 因此占用资源少、实现简单且速度高。本文在分析C IC 滤波器原理的 基础上, 用V HDL 语言在 FPGA 上进行了仿真、综合, 并成功的应用于DDC 芯片的开发中。 关键词: 数字下变频; FPGA ; C IC 抽取滤波器; V HDL 中图分类号: TN 713+ . 6 文献标识码: A 文章编号: 100328329 (2005) 0420052204
- - - - - - - signa l coun t: in teger range 0 to 31; - - 计数器 signa l clk_ com b: std_ logic; - - 梳状部分时钟 - - - - - - - if (coun t > 8) and (coun t < 16) then clk_ com b≤ ’1’; e lse clk_ com b≤’0’; end if;
2. 2 C IC 内插滤波器 通过改变 C IC 抽取滤波器的结构, 可以实现 C IC 内插滤波器, 应用在数字上变频中。 如图 4 所 示, 在 C IC 内插滤波器中, 梳状滤波器工作在低的 f s R , 积 分 器 工 作 在 高 的 f s 频 率 下, 内 插 器 ( In terpo la tion) 将最后一级梳妆滤波器的输出数据 速率从 f s R 升到 f s 。
大。鉴于此, 当前的专用DDC 芯片中, 都采用了一种 高 效的滤波器—— C IC 滤波器 (C IC 滤 波 器 是 由 Hogenauer E. B. 于 1981 年提出的, 因此又被称为 Hogenauer 滤波器) 作为第一级滤波器, 实现抽取、 低 通滤波; 第二级则采用一般的 F IR 或者 F IR 实现 的特殊滤波器 (如半带滤波器) , 此时它们工作在较 低的频率下, 且滤波器的参数得到了优化, 因此更容 易以较低的阶数实现, 节省资源, 降低功耗。 本文在研究C IC 滤波器基本原理的基础上, 对 其进行了 FPGA 仿真、综合, 并最终应用在工程中, 达到了设计要求。
successfu lly.
Key words: DDC; FPGA ; the decim a t ion filter of C IC; V HDL
1 前 言
在软件无线电中, 数字下变频器接收经过高速 采样的中频数字信号, 将所需的频带下变到基带。它 一般位于信号处理链的前端, 靠近A D。它主要由数 字振荡器、数字乘法器、数字滤波器三部分组成。 DDC 中数字滤波器的主要作用是抽取、低通滤 波, 一般由F IR 滤波器实现。但F IR 滤波器需要大量 的乘法器, 且一般DDC 中的采样速率很高, 因此F IR 滤波器需要工作在很高的频率, 使用资源多、功耗