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]


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.

| improve this answer | |
  • $\begingroup$ thanks for the response! the system is floating point with an ARM-Cortex M4F $\endgroup$ – Luke Gary Jul 15 '18 at 0:22
  • $\begingroup$ then just use Direct Form 2, i s'pose. $\endgroup$ – robert bristow-johnson Jul 15 '18 at 6:43

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.