基于DSP的IIR数字滤波器的设计与实现
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
低 通 IIR 数 字 滤 波 器 的 参 数 如 下 : 采 样 率 为 16000Hz, 截 止 频 率 为 500Hz, 采 用 butterworth 模 型 设 计 时 阶 数 为 7 阶 , 在 MATLAB6.5 环 境 下 得 到 的 b 系 数 和 a 系 数 如 表 1 所示。
表 1 7 阶 IIR 滤 波 器 系 数
借 助 于 计 算 机 强 大 的 仿 真 功 能 , 在 MATLAB 环 境 下 设 计 一 个 IIR 数 字 滤 波 器 变 得 十 分 容 易 [5]。但 是 要 在 DSP 上 实 现 此 滤 波 器 功 能 , 则 需 要 对 滤 波 器 的 结 构 、系 数 等 参
* 本 项 目 是 广 西 大 学 科 研 基 金 资 助 项 目 ( 编 号 : X061027 )
等 也 有 所 不 同 [3]。 其 中 直 接 Ⅱ 型 仅 需 要 N 级 延 迟 单 元 ,
且可作为级联型和并联型结构中的基本单元, 是最常用
的 IIR 数 字 滤 波 器 结 构 之 一 。
IIR 数 字 滤 波 器 的 设 计 方 法 有 两 类 [4], 一 类 是 借 助 于
Байду номын сангаас
模拟滤波器的设计方法设计出模拟滤波器, 利用冲激响
个滤波器级联的形式, 每个滤波器的系数如表 2 所示。
TMS320VC5416 是 16 位 DSP 。在 CCS 下 , 它 的 浮 点 数
格 式 占 用 两 个 字 , 即 32bit 。通 过 CCS 的 数 据 输 入 输 出 功
能 和 RTDX 功 能 , 可 以 随 时 观 察 DSP 结 果 和 理 论 仿 真 结
数 进 行 改 进 。 下 面 以 一 个 低 通 IIR 数 字 滤 波 器 在 DSP 芯
116 欢迎网上投稿 www.aetnet.cn www.aetnet.com.cn 《电子技术应用》2006 年第 11 期
集成电路应用
片 TMS320VC5416 上 的 实 现 为 例 , 叙 述 其 实 现 过 程 。 TMS320VC5416 是 DSP 芯 片 的 主 要 供 应 商 TI 公 司 最
表 2 7 阶 IIR 数 字 滤 波 器 级 联 后 每 个 滤 波 器 的 系 数
序号
1
2
b0 (×5 . 778077826811e - 008 ) 1 1 . 010132489788
b1 (×5 . 778077826811e - 008 ) 1 1 . 981768788915
b2 (×5 . 778077826811e - 008 ) 1 1 . 995477430485
实 现 数 字 信 号 处 理 的 重 要 途 径 [2]。 目 前 所 见 文 献 , 多 数 2 IIR 数 字 滤 波 器 在 DSP 上 的 实 现 方 法 及 实 现 过 程
为 滤 波 器 的 模 型 设 计 , 所 得 结 果 也 是 在 MATLAB 等 实 验 2 . 1 IIR 数 字 滤 波 器 在 DSP 上 的 实 现 步 骤 和 条 件
a 系数 1
- 6 . 117811660271 16 . 0899498180 - 23 . 57740707988 20 . 78595964009 - 11 . 0232899884 3 . 255644863757 - 0 . 4130381974442
从 理 论 上 说 , 可 以 用 高 阶 IIR 数 字 滤 波 器 实 现 良 好
b 系数 5 . 778077826811e - 008 4 . 044654478768e - 007 1 . 21339634363e - 006 2 . 022327239384e - 006 2 . 022327239384e - 006 1 . 21339634363e - 006 4 . 044654478768e - 007 5 . 778077826811e - 008
程序流 程如 图 2。采用 间接 寻址 指向数 据存 储 单 元 , 主 要 指 令 为 加 法 、乘 法 和 循 环 实 现 , 这 些 都 可 以 通 过 MAC 等 指 令 直 接 实 现 。 需 注 意 的 是 要 对 乘 法 运 算 结 果 进行溢出保护。另外, 因为主程序框架采用 C 结构, 而 算法由汇编语言实现, 所以要注意不同环境下寻址方式 的 区 别 , 当 从 C 环 境 进 入 直 接 寻 址 时 , 要 先 确 定 DP 值 , 以 免 带 来 不 确 定 的 计 算 结 果 。数 据 采 集 时 要 先 通 过 DSP 的 DMA 功 能 将 输 入 数 据 保 存 在 外 部 SRAM 中 , 采 样 结 束 后 再 将 要 滤 波 的 数 据 通 过 DMA 载 入 内 部 RAM 中 , 从 而 提 高 处 理 速 度 。 考 虑 到 IIR 数 字 滤 波 器 的 运 算 特 点 , 某一时刻的输入数据参加一次运算后不再参与下次运 算, 只有各级滤波器输出结果需要参与多次运算, 因此 滤波结果和输入数据可以共用同一存储地址, 从而节省 存储空间。
的 滤 波 效 果 。 但 由 于 DSP 本 身 有 限 字 长 和 精 度 的 因 素 ,
加 上 IIR 滤 波 器 在 结 构 上 存 在 反 馈 回 路 , 是 递 归 型 的 ,
再 者 高 阶 滤 波 器 参 数 的 动 态 范 围 很 大 。这 样 一 来 造 成 两
个后果: 结果溢出和误差增大, 从而导致算法无法在
实 现 较 好 的 选 频 特 性 等 特 点 [1], 得 到 了 广 泛 应 用 。 DSP 芯片有适合于数字信号处理的软件资源和硬件资源, 是
关 系 和 物 理 上 可 实 现 的 系 统 传 递 函 数 H(z), 使 其 频 率 响 应 H(ej!)能 够 满 足 所 希 望 得 到 的 频 域 指 标 。
集成电路应用
基于 DSP 的 IIR 数字滤波器的设计与实现
杨达亮, 王巨丰 ( 广 西 大 学 电 气 工 程 学 院 , 广 西 南 宁 530004)
摘 要 : 叙 述 了 IIR 数 字 滤 波 器 的 设 计 原 理 及 其 在 DSP 上 的 实 现 思 路 , 并 对 用 DSP 实 现 IIR 数 字 滤 波 的 方 法 进 行 了 分 析 。 用 MATLAB 计 算 出 IIR 数 字 滤 波 器 的 系 数 , 考 虑 到 溢 出 问 题 , 采 用 级 联 的 形 式 对 滤 波 器 进 行 分 解 , 最 后 在 TMS320VC5416 DSP 上 得 以 实 现 , 并 通 过 CCS(come composer studio)的 输 入 输 出 功 能 和 RTDX(real- time data exchange)的 功 能 保 证 实 现 结 果 和 仿 真 结 果 的 一 致 性 。
b3 (×5 . 778077826811e - 008 ) 1 2 . 012621290811
a0
1 - 0 . 820678790209
a1
1 - 1 . 879958406667
果之间的差异, 及时发现数据的溢出和计算误差。对表
2 的 系 数 取 7 个 有 效 位 ( 在 CCS 下 浮 点 数 的 有 效 位 为 7 位) , 计算结果如图 1 所示。
图 中 为 输 入 和 滤 波 后 的 波 形 , 信 号 频 率 为 500Hz。从 图中可以看出, 滤波没有产生溢出现象且滤波效果满足 设计要求。
! 1 - ak z- k
(2)
器 , 其 中 IIR 数 字 滤 波 器 因 具 有 结 构 简 单 、占 用 存 储 空 间
k=0
少 、运 算 速 度 快 、较 高 的 计 算 精 度 和 能 够 用 较 低 的 阶 数 的 IIR 数 字 波 滤 器 来 说 , 设 计 的 任 务 就 是 寻 求 一 种 因 果
DSP 上 实 现 。
解 决 此 问 题 的 有 效 方 法 是 把 高 阶 IIR 数 字 滤 波 器 简
化成几个 2 阶滤波器来设计, 即采用级联结构。因此系
统函数为:
H(z)=H1(z)H2(z)… Hn(z)
(3)
上 述 7 阶 IIR 数 字 滤 波 器 采 用 级 联 的 结 构 后 变 成 4
环境下模拟仿真完成的, 带有很大的局限性。本文讨论
IIR 数 字 滤 波 器 在 DSP 上 的 设 计 过 程 如 下 :
IIR 数 字 滤 波 器 在 DSP 上 的 实 现 思 路 , 并 对 其 实 现 方 法
(1)根 据 指 标 确 定 滤 波 器 的 类 型 , 设 计 出 滤 波 器 的 参
近 推 出 的 5000 系 列 中 的 高 性 能 DSP , 该 处 理 器 为 16 位 定 点 DSP , 最 高 运 算 速 度 可 达 160MIPS, 内 带 256KB 的 RAM, 有 128KB 的 数 据 空 间 , 最 大 程 序 容 量 高 达 16MB, 有 3 个 McBSP 和 6 个 DMA 通 道 并 且 支 持 外 部 DMA, 内 核 电 压 低 至 1.5V。其 CPU 由 于 运 算 速 度 快 、内 部 资 源 充 足 、接 口 灵 活 、功 耗 低 , 非 常 适 合 做 复 杂 算 法 运 算 。
关 键 词 : IIR 数字 滤波器 DSP 算 法
数字滤波器在各种数字信号处理中发挥着十分重
M
要的作用, 数字滤波器设计一直是信号处理领域的重要 研 究 课 题 。 常 用 的 数 字 滤 波 器 有 FIR 滤 波 器 和 IIR 滤 波
! bi z- i
H(z)=
i=0 N
= Y(z) X(z)
应不变法或双线性变换法转换成数字滤波器, 然后用硬
件或软件实现; 另一类是直接在频域或时域中进行设
计, 设计时需要计算机作辅助工具。对系统传递函数为
定 点 DSP 芯 片 , 既 可 以 做 定 点 运 算 , 也 可 以 做 浮 点 运 算 。一 个 算 法 , 既 可 以 用 汇 编 语 言 编 程 实 现 , 也 可 以 用 高 级 语 言 ( C, C++ ) 实 现 。而 一 个 IIR 数 字 滤 波 器 是 否 可 以 在 DSP 上 实 现 , 最 终 要 看 此 算 法 是 否 满 足 两 个 条 件 : 执行时间和精度。一个算法的精度再高, 如果做不到实 时, 也没有实用价值; 相反, 如果执行时间很快, 但精度 满 足 不 了 要 求 , 也 就 无 从 实 现 滤 波 功 能 。IIR 数 字 滤 波 器 在 DSP 上 的 实 现 思 路 , 应 该 是 在 满 足 上 面 两 个 条 件 的 前 提下, 找到尽可能简易的实现方法。 2 . 2 IIR 数 字 滤 波 器 在 TMS320VC5416 DSP 上 的 实 现 过程
进行了分析。
数;
1 数 字 IIR 滤 波 器 的 理 论 设 计 分 析
(2) 根 据 DSP 的 特 点 ( 字 长 、精 度 等 ) 对 参 数 进 行 取
数 字 滤 波 器 实 际 上 是 一 个 采 用 有 限 精 度 算 法 实 现 舍 、量 化 , 然 后 进 行 仿 真 ;
的线性非时变离散系统, 滤波器的功能实现实际上是通
(3)根 据 仿 真 结 果 对 滤 波 器 的 结 构 、参 数 再 次 进 行 调
过 大 量 的 加 法 运 算 和 乘 法 运 算 完 成 的 。 IIR 数 字 滤 波 器 整 , 直 到 满 足 要 求 为 止 ;
差分方程的一般形式为:
(4)在 DSP 上 用 语 言 实 现 滤 波 器 功 能 。
M
N
y(n)=!bix(n- i)+!aky(n- k)
(1)
i=0
k=0
从 IIR 数 字 滤 波 器 的 实 现 来 看 , 有 直 接 型 、级 联 型 、
并 联 型 和 格 型 等 基 本 网 络 结 构 。不 同 的 结 构 形 式 会 有 不
同 的 运 算 误 差 , 其 稳 定 性 、运 算 速 度 、所 占 用 的 存 储 空 间
表 1 7 阶 IIR 滤 波 器 系 数
借 助 于 计 算 机 强 大 的 仿 真 功 能 , 在 MATLAB 环 境 下 设 计 一 个 IIR 数 字 滤 波 器 变 得 十 分 容 易 [5]。但 是 要 在 DSP 上 实 现 此 滤 波 器 功 能 , 则 需 要 对 滤 波 器 的 结 构 、系 数 等 参
* 本 项 目 是 广 西 大 学 科 研 基 金 资 助 项 目 ( 编 号 : X061027 )
等 也 有 所 不 同 [3]。 其 中 直 接 Ⅱ 型 仅 需 要 N 级 延 迟 单 元 ,
且可作为级联型和并联型结构中的基本单元, 是最常用
的 IIR 数 字 滤 波 器 结 构 之 一 。
IIR 数 字 滤 波 器 的 设 计 方 法 有 两 类 [4], 一 类 是 借 助 于
Байду номын сангаас
模拟滤波器的设计方法设计出模拟滤波器, 利用冲激响
个滤波器级联的形式, 每个滤波器的系数如表 2 所示。
TMS320VC5416 是 16 位 DSP 。在 CCS 下 , 它 的 浮 点 数
格 式 占 用 两 个 字 , 即 32bit 。通 过 CCS 的 数 据 输 入 输 出 功
能 和 RTDX 功 能 , 可 以 随 时 观 察 DSP 结 果 和 理 论 仿 真 结
数 进 行 改 进 。 下 面 以 一 个 低 通 IIR 数 字 滤 波 器 在 DSP 芯
116 欢迎网上投稿 www.aetnet.cn www.aetnet.com.cn 《电子技术应用》2006 年第 11 期
集成电路应用
片 TMS320VC5416 上 的 实 现 为 例 , 叙 述 其 实 现 过 程 。 TMS320VC5416 是 DSP 芯 片 的 主 要 供 应 商 TI 公 司 最
表 2 7 阶 IIR 数 字 滤 波 器 级 联 后 每 个 滤 波 器 的 系 数
序号
1
2
b0 (×5 . 778077826811e - 008 ) 1 1 . 010132489788
b1 (×5 . 778077826811e - 008 ) 1 1 . 981768788915
b2 (×5 . 778077826811e - 008 ) 1 1 . 995477430485
实 现 数 字 信 号 处 理 的 重 要 途 径 [2]。 目 前 所 见 文 献 , 多 数 2 IIR 数 字 滤 波 器 在 DSP 上 的 实 现 方 法 及 实 现 过 程
为 滤 波 器 的 模 型 设 计 , 所 得 结 果 也 是 在 MATLAB 等 实 验 2 . 1 IIR 数 字 滤 波 器 在 DSP 上 的 实 现 步 骤 和 条 件
a 系数 1
- 6 . 117811660271 16 . 0899498180 - 23 . 57740707988 20 . 78595964009 - 11 . 0232899884 3 . 255644863757 - 0 . 4130381974442
从 理 论 上 说 , 可 以 用 高 阶 IIR 数 字 滤 波 器 实 现 良 好
b 系数 5 . 778077826811e - 008 4 . 044654478768e - 007 1 . 21339634363e - 006 2 . 022327239384e - 006 2 . 022327239384e - 006 1 . 21339634363e - 006 4 . 044654478768e - 007 5 . 778077826811e - 008
程序流 程如 图 2。采用 间接 寻址 指向数 据存 储 单 元 , 主 要 指 令 为 加 法 、乘 法 和 循 环 实 现 , 这 些 都 可 以 通 过 MAC 等 指 令 直 接 实 现 。 需 注 意 的 是 要 对 乘 法 运 算 结 果 进行溢出保护。另外, 因为主程序框架采用 C 结构, 而 算法由汇编语言实现, 所以要注意不同环境下寻址方式 的 区 别 , 当 从 C 环 境 进 入 直 接 寻 址 时 , 要 先 确 定 DP 值 , 以 免 带 来 不 确 定 的 计 算 结 果 。数 据 采 集 时 要 先 通 过 DSP 的 DMA 功 能 将 输 入 数 据 保 存 在 外 部 SRAM 中 , 采 样 结 束 后 再 将 要 滤 波 的 数 据 通 过 DMA 载 入 内 部 RAM 中 , 从 而 提 高 处 理 速 度 。 考 虑 到 IIR 数 字 滤 波 器 的 运 算 特 点 , 某一时刻的输入数据参加一次运算后不再参与下次运 算, 只有各级滤波器输出结果需要参与多次运算, 因此 滤波结果和输入数据可以共用同一存储地址, 从而节省 存储空间。
的 滤 波 效 果 。 但 由 于 DSP 本 身 有 限 字 长 和 精 度 的 因 素 ,
加 上 IIR 滤 波 器 在 结 构 上 存 在 反 馈 回 路 , 是 递 归 型 的 ,
再 者 高 阶 滤 波 器 参 数 的 动 态 范 围 很 大 。这 样 一 来 造 成 两
个后果: 结果溢出和误差增大, 从而导致算法无法在
实 现 较 好 的 选 频 特 性 等 特 点 [1], 得 到 了 广 泛 应 用 。 DSP 芯片有适合于数字信号处理的软件资源和硬件资源, 是
关 系 和 物 理 上 可 实 现 的 系 统 传 递 函 数 H(z), 使 其 频 率 响 应 H(ej!)能 够 满 足 所 希 望 得 到 的 频 域 指 标 。
集成电路应用
基于 DSP 的 IIR 数字滤波器的设计与实现
杨达亮, 王巨丰 ( 广 西 大 学 电 气 工 程 学 院 , 广 西 南 宁 530004)
摘 要 : 叙 述 了 IIR 数 字 滤 波 器 的 设 计 原 理 及 其 在 DSP 上 的 实 现 思 路 , 并 对 用 DSP 实 现 IIR 数 字 滤 波 的 方 法 进 行 了 分 析 。 用 MATLAB 计 算 出 IIR 数 字 滤 波 器 的 系 数 , 考 虑 到 溢 出 问 题 , 采 用 级 联 的 形 式 对 滤 波 器 进 行 分 解 , 最 后 在 TMS320VC5416 DSP 上 得 以 实 现 , 并 通 过 CCS(come composer studio)的 输 入 输 出 功 能 和 RTDX(real- time data exchange)的 功 能 保 证 实 现 结 果 和 仿 真 结 果 的 一 致 性 。
b3 (×5 . 778077826811e - 008 ) 1 2 . 012621290811
a0
1 - 0 . 820678790209
a1
1 - 1 . 879958406667
果之间的差异, 及时发现数据的溢出和计算误差。对表
2 的 系 数 取 7 个 有 效 位 ( 在 CCS 下 浮 点 数 的 有 效 位 为 7 位) , 计算结果如图 1 所示。
图 中 为 输 入 和 滤 波 后 的 波 形 , 信 号 频 率 为 500Hz。从 图中可以看出, 滤波没有产生溢出现象且滤波效果满足 设计要求。
! 1 - ak z- k
(2)
器 , 其 中 IIR 数 字 滤 波 器 因 具 有 结 构 简 单 、占 用 存 储 空 间
k=0
少 、运 算 速 度 快 、较 高 的 计 算 精 度 和 能 够 用 较 低 的 阶 数 的 IIR 数 字 波 滤 器 来 说 , 设 计 的 任 务 就 是 寻 求 一 种 因 果
DSP 上 实 现 。
解 决 此 问 题 的 有 效 方 法 是 把 高 阶 IIR 数 字 滤 波 器 简
化成几个 2 阶滤波器来设计, 即采用级联结构。因此系
统函数为:
H(z)=H1(z)H2(z)… Hn(z)
(3)
上 述 7 阶 IIR 数 字 滤 波 器 采 用 级 联 的 结 构 后 变 成 4
环境下模拟仿真完成的, 带有很大的局限性。本文讨论
IIR 数 字 滤 波 器 在 DSP 上 的 设 计 过 程 如 下 :
IIR 数 字 滤 波 器 在 DSP 上 的 实 现 思 路 , 并 对 其 实 现 方 法
(1)根 据 指 标 确 定 滤 波 器 的 类 型 , 设 计 出 滤 波 器 的 参
近 推 出 的 5000 系 列 中 的 高 性 能 DSP , 该 处 理 器 为 16 位 定 点 DSP , 最 高 运 算 速 度 可 达 160MIPS, 内 带 256KB 的 RAM, 有 128KB 的 数 据 空 间 , 最 大 程 序 容 量 高 达 16MB, 有 3 个 McBSP 和 6 个 DMA 通 道 并 且 支 持 外 部 DMA, 内 核 电 压 低 至 1.5V。其 CPU 由 于 运 算 速 度 快 、内 部 资 源 充 足 、接 口 灵 活 、功 耗 低 , 非 常 适 合 做 复 杂 算 法 运 算 。
关 键 词 : IIR 数字 滤波器 DSP 算 法
数字滤波器在各种数字信号处理中发挥着十分重
M
要的作用, 数字滤波器设计一直是信号处理领域的重要 研 究 课 题 。 常 用 的 数 字 滤 波 器 有 FIR 滤 波 器 和 IIR 滤 波
! bi z- i
H(z)=
i=0 N
= Y(z) X(z)
应不变法或双线性变换法转换成数字滤波器, 然后用硬
件或软件实现; 另一类是直接在频域或时域中进行设
计, 设计时需要计算机作辅助工具。对系统传递函数为
定 点 DSP 芯 片 , 既 可 以 做 定 点 运 算 , 也 可 以 做 浮 点 运 算 。一 个 算 法 , 既 可 以 用 汇 编 语 言 编 程 实 现 , 也 可 以 用 高 级 语 言 ( C, C++ ) 实 现 。而 一 个 IIR 数 字 滤 波 器 是 否 可 以 在 DSP 上 实 现 , 最 终 要 看 此 算 法 是 否 满 足 两 个 条 件 : 执行时间和精度。一个算法的精度再高, 如果做不到实 时, 也没有实用价值; 相反, 如果执行时间很快, 但精度 满 足 不 了 要 求 , 也 就 无 从 实 现 滤 波 功 能 。IIR 数 字 滤 波 器 在 DSP 上 的 实 现 思 路 , 应 该 是 在 满 足 上 面 两 个 条 件 的 前 提下, 找到尽可能简易的实现方法。 2 . 2 IIR 数 字 滤 波 器 在 TMS320VC5416 DSP 上 的 实 现 过程
进行了分析。
数;
1 数 字 IIR 滤 波 器 的 理 论 设 计 分 析
(2) 根 据 DSP 的 特 点 ( 字 长 、精 度 等 ) 对 参 数 进 行 取
数 字 滤 波 器 实 际 上 是 一 个 采 用 有 限 精 度 算 法 实 现 舍 、量 化 , 然 后 进 行 仿 真 ;
的线性非时变离散系统, 滤波器的功能实现实际上是通
(3)根 据 仿 真 结 果 对 滤 波 器 的 结 构 、参 数 再 次 进 行 调
过 大 量 的 加 法 运 算 和 乘 法 运 算 完 成 的 。 IIR 数 字 滤 波 器 整 , 直 到 满 足 要 求 为 止 ;
差分方程的一般形式为:
(4)在 DSP 上 用 语 言 实 现 滤 波 器 功 能 。
M
N
y(n)=!bix(n- i)+!aky(n- k)
(1)
i=0
k=0
从 IIR 数 字 滤 波 器 的 实 现 来 看 , 有 直 接 型 、级 联 型 、
并 联 型 和 格 型 等 基 本 网 络 结 构 。不 同 的 结 构 形 式 会 有 不
同 的 运 算 误 差 , 其 稳 定 性 、运 算 速 度 、所 占 用 的 存 储 空 间