I am looking at the structure of the Goertzel Filter, and it seems like I can map its coefficients to the standard implementation of the CMSIS DSP Biquad Cascade IIR Filter. Is this possible or should I give up and implement my own? The benefit here is the CMSIS Library can be had in a certified form for my application (I believe it just got rolled in). I believe I can compose the Goertzel response by cascading the Biquad with a Comb network, is this correct? I suppose my main point of confusion is centered from my inexperience in matters such as these, and if the Transposed Direct Form II of the cmsis biquad can demonstrate total equivalence to the Direct Form II suggested by this particular paper [edit]
1 Answer
try it, you'll like it.
the form in the Jocobson & Lyons paper is Direct Form II, with the coefficients explicit. the form in the CMSIS source is a transpose of a Direct Form I, i believe, and the one in the Lyons & Bell paper is a Direct Form II (not transposed, but set $a_0=1$ because they should not have had that $a_0$ gain block in the path.). the $b_0, b_1, b_2$ coefs come from the numerator and the $a_1, a_2$ come from the denominator and need to have their signs changed (since the scaled feedback signals are added and not subtracted in the feedback).
are you floating-point or fixed-point? if the latter, the untransposed Direct Form I will serve you better.
-
$\begingroup$ thanks for the response! the system is floating point with an ARM-Cortex M4F $\endgroup$ Jul 15, 2018 at 0:22
-
$\begingroup$ then just use Direct Form 2, i s'pose. $\endgroup$ Jul 15, 2018 at 6:43