

The Goertzel Algorithm - dhotson
http://www.eetimes.com/design/embedded/4024443/The-Goertzel-Algorithm

======
wbhart
Shouldn't this be "faster tone detection algorithm".

I don't see how to perform a convolution with this algorithm, which I would be
able to do if it was an FFT.

There are many algorithms for FFT that are faster, e.g. the split radix FFT,
Gentleman and Sande's approach, the Matrix Fourier Algorithm and scores of
variations on a theme. The article doesn't make clear whether this is one of
them.

~~~
colanderman
You are correct. The title is very misleading.

~~~
dhotson
My apologies, this stuff is still pretty new to me.

~~~
wbhart
Thanks for changing the title.

------
mdda
Not explicitly stated in the article : The reason this is so fast is that
you're only detecting a single frequency. If you wanted to detect a few (M,
say), you'd have to keep updating M sets of Qs. While M<<N this is really
efficient (and each one looks like a notch filter, or something).

But for larger M, it's better to do the FFT, since that gives you back O(N)
frequencies in O(NlogN) time - because of the tricks it can do with N if it's
a power of 2.

~~~
shasta
If you only want to detect one frequency, can't you jut use the "slow" fourier
transform?

~~~
mahadri
Yes, the discrete Fourier transform (DFT) detects N frequencies in parallel,
where N is the block size, and you can disregard the uninteresting
frequencies. The fast Fourier transform (FFT) is an efficient algorithm that
computes the DFT. For detecting M frequencies where M << N, the Goertzel
algorithm requires less computation than the FFT. Also, the Goertzel algorithm
allows targeting more exact frequencies regardless of the sampling rate (Fs),
while the FFT's bins have a fixed spacing of ±Fs/N.

As with everything, there are trade-offs associated with these three options.

------
shollos
You can find C code for the Goertzel algorithm at:
<http://www.exstrom.com/journal/sigproc/index.html>

------
Thrymr
Cool, but news? Article is from 2002.

~~~
3oheme
Well, it's some kind of news because I've never heard about that :-D

I find it really interesting

~~~
tef____
How about this then? <http://en.wikipedia.org/wiki/Discrete_Hartley_transform>

