7

我有这 6 个用于峰值 EQ 的系数:

b0 = 1 + (α ⋅ A)
b1 = −2⋅ωC
b2 = 1 - (α ⋅ A)
a0 = 1 + (α / A)
a1 = −2 ⋅ ωC
a2 = 1 − (α / A)

使用这些中间变量:

ωc = 2 ⋅ π ⋅ fc / fs
ωS = sin(ωc)
ωC = cos(ωc)
A = sqrt(10^(G/20))
α = ωS / (2Q)

vDSP_deq22()应该通过“5个单精度输入,滤波器系数”的文档,但我有6个系数!另外,我以什么顺序将它们传递给vDSP_deq22()

更新(17/05):我建议大家使用我在 github 上发布的 DSP 类:https ://github.com/bartolsthoorn/NVDSP它可能会为您节省很多工作。

4

1 回答 1

8

二阶滤波器可以表示为以下差分方程(a并且b可以根据您定义它们的方式互换):

a0.y[n] = b0.x[n] + b1.x[n-1] + b2.x[n-2] - a1.y[n-1] - a2.y[n-2]

您可以通过除以a0得到 的表达式y[n],然后您只需要 5 个系数。

我在此处找到的文档指定了顺序(请参阅给出的等式)。看起来顺序是:

{ b0/a0, b1/a0, b2/a0, a1/a0, a2/a0 }
于 2012-04-29T19:49:05.353 回答