Im reading https://en.wikipedia.org/wiki/Goertzel_algorithm, when we want to discover the amplitude of a some frequency in a given signal what is the difference between applying Goertzel algorithm and doing cross-correlation in time between our signal and a complex exponential with the desired frequency. It seems like in the button line Goertzel algorithm does exactly that, then why couldn't we apply the correlation in the first place and instead used the IIR filter ?

enter image description here

Thank you.

  • $\begingroup$ a) This isn't an IIR filter. b) just because it's called Goertzel, it doesn't mean it's not a correlation! $\endgroup$ Commented Jan 22, 2021 at 16:21
  • $\begingroup$ But when we come to implement it, we don't simple do correlation in the sense of doing sum over the signal and the exponent but rather apply the Goertzel filter. $\endgroup$
    – Dannynis
    Commented Jan 22, 2021 at 16:32
  • $\begingroup$ I don't understand your point "applying the Goertzel filter" is doing the sum over the signal and the exponent?! $\endgroup$ Commented Jan 22, 2021 at 16:33
  • $\begingroup$ I claim "applying the Goertzel filter" and "doing the sum over the signal and the exponent" are NOT the same (the "algorithm" is different, but as explained in Wikipedia their result would be almost equal, so why using the first is preferable ? $\endgroup$
    – Dannynis
    Commented Jan 22, 2021 at 16:38
  • $\begingroup$ but it is the same. Please explain how they are different. The result is literally the same. $\endgroup$ Commented Jan 22, 2021 at 16:48

1 Answer 1


The Goertzel algorithm gets away without calculating a complex product with $e^{j\pi lk}$ n times; thus drastically reducing the computational complexity.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

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