【问题标题】:calculating w coefficients for iir filter计算 iir 滤波器的 w 系数
【发布时间】:2013-11-29 04:06:42
【问题描述】:

我正在尝试将我在 Matlab 中设计的 IIR 滤波器实现到 C++ 程序中,以从波形文件中过滤掉不需要的信号。 Matlab 中的 fdatool 生成了这个 C 头文件来使用(它是一个带阻滤波器):

#include "tmwtypes.h"
/* 
 * Expected path to tmwtypes.h 
 * C:\Program Files (x86)\MATLAB\R2013a Student\extern\include\tmwtypes.h 
 */
const int al = 7;
const real64_T a[7] = {
     0.9915141178644,   -5.910578456199,    14.71918523779,   -19.60023964796,
      14.71918523779,   -5.910578456199,   0.9915141178644
};
const int bl = 7;
const real64_T b[7] = {
                   1,   -5.944230431733,    14.76096188047,   -19.60009655976,
      14.67733658492,   -5.877069568864,   0.9831002459245
};

经过数小时的深入研究,我仍然无法找出使用这些值来确定 W 值的正确方法,以及如何使用这些 W 值来正确计算我的 Y 输出。如果有人对这些值应该用于进行所有这些转换的顺序有任何见解,那将是一个很大的帮助。

到目前为止,我开发和尝试的所有方法都不会生成有效的波形文件,标头值都可以正确转换,但媒体播放器无法评估除此之外的所有内容。

谢谢。

【问题讨论】:

  • 也许这会有所帮助。 mathworks.com/help/matlab/ref/filter.html 或者您是否希望在 C++ 中实现它,因此不能使用 MATLAB 的内置函数?在这种情况下,您需要找到一个与 filter() 类似的 C++ IIR 库
  • 我必须为这个项目用 C++ 实现它
  • 我已经看过这些链接,但没有一个回答我的问题。一个已经工作的 c++ 程序可能会有所帮助,但我还没有找到任何有意义的高阶 IIR 滤波器的代码。我真的只是在寻找如何使用系数来查找 W 值以及如何使用这些系数来查找 Y(输出)值而不是一个正常运行的程序

标签: c++ matlab


【解决方案1】:

IIR 过滤器以这种方式工作: 假设一个样本数组 A 和一个名为 'c' 的 ceof 数组,结果数组 B 将是: B[i] = (A[i] * c[0]) + (B[i-1] * c[1]) + ... + (B[n] * c[n])

请注意,只有最新的元素取自 A。 这更容易就地完成,只需在移动时更新 A 即可。 这些过滤系数非常暴力,你确定你没看错吗? 第一个也是对称的,这可能表明它是一个 FIR 滤波器。

【讨论】:

    【解决方案2】:

    在我看来,您有一个 3 极 IIR 滤波器,其系数为 N 阶实现(而不是一系列 2 阶部分)。由于这是带阻(或带通),多项式阶数是极数的两倍。

    我不确定您所说的 W 值是什么意思,除非您尝试评估此滤波器的频率响应。

    如您所说,要计算 Y 值,请参阅此链接以获取有关实现 IIR 滤波器的代码。具体见第 N 阶实现代码。

    http://www.iowahills.com/A7ExampleCodePage.html

    顺便说一句:我假设这些是 N 阶系数并模拟了它们。我在 0.05 Pi 处获得了 10 dB 的缺口。听起来对吗?

    在哪里 B6 = 0.9915141178644 . . . b0 = 0.9915141178644

    a6 = 0.9831002459245 . . . a0 = 1

    另外,您可能想在以下位置发布这样的问题:

    https://dsp.stackexchange.com/

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-11-27
      • 2012-04-06
      • 2016-07-30
      • 2021-08-12
      • 1970-01-01
      • 1970-01-01
      • 2014-04-26
      相关资源
      最近更新 更多