2

首先,这是对未来应用的一些研究。

我希望能够从 Matlab 滤波器设计和分析工具 (FDATool) 生成的 ac 头文件中提取系数。

fdatool 设置 http://dl.dropbox.com/u/39710897/fdatool.png

我为 FDATool 使用了上述设置,然后生成了以下 C 头文件: http ://dl.dropbox.com/u/39710897/fdacoefs.h

据我了解,我可以通过使用直接形式的差分方程来实现过滤器。我相信方程是 y(n) = b 0 x(n) + b 1 x(n–1) + b 2 x(n–2) – a 1 y(n–1) – a 2 y(n –2)

其中 b 0 -b 2系数是零点,a 1和 a 2系数是极点。

这里的问题是我不完全确定头文件中的内容。这些信息似乎很难找到,这可能意味着我错过了一些非常明显的东西......

这是我认为我已经能够提取的信息:

  • 过滤器由 3 个双二次(称为“双二次”)部分组成。
  • 第 1 节的系数为:
    • b0:0.129355475306511
    • b1:-1.997004866600037
    • b2:1.000000000000000
    • a1:-1.995552659034729
    • a2:0.996141731739044
  • 第 2 节的系数为:
    • b0:0.129355475306511
    • b1:-1.999969959259033
    • b2:1.000000000000000
    • a1:-1.997882604598999
    • a2:0.998035132884979
  • 第 3 节的系数为:
    • b0:0.011426069773734
    • b1:0.000000000000000
    • b2:-1.000000000000000
    • a1:-1.993502736091614
    • a2:0.993802070617676

问题:

  1. 我的差分方程是否适合与头文件中的系数一起使用?
  2. 我从头文件中提取的信息是否正确?
4

1 回答 1

1

查看屏幕截图,您似乎正在使用 Direct Form II biquad 部分(又名 Canonical Form) - 请参阅 Wikipedia 页面:https ://en.wikipedia.org/wiki/Digital_biquad_filter并注意 Direct Form II 的差分方程(您似乎使用上面直接形式 I 的差分方程)。

在此处输入图像描述

在此处输入图像描述

请注意,维基百科页面上的图表上没有标记 w 术语,但它们是中间的延迟术语。

于 2012-04-24T16:23:24.793 回答