14.08.2013 Views

Fast Fourier Transforms on Motorola's Digital Signal Processors

Fast Fourier Transforms on Motorola's Digital Signal Processors

Fast Fourier Transforms on Motorola's Digital Signal Processors

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

6.4 The Goertzel Algorithm<br />

Previous FFT algorithms compute all or half of the<br />

frequency points in the range equaling half of the<br />

sampling rate. For some applicati<strong>on</strong>s, such as single<br />

frequency detecti<strong>on</strong>, <strong>on</strong>ly <strong>on</strong>e or several<br />

frequency points are of interest. Using FFT to find<br />

these frequencies is no l<strong>on</strong>ger cost effective in the<br />

sense of computati<strong>on</strong>al complexity.<br />

The Goertzel algorithm (see reference 3) can be implemented<br />

by a sec<strong>on</strong>d order IIR filter for each DFT<br />

coefficient. The transfer functi<strong>on</strong> for the IIR filter is:<br />

H<br />

k<br />

( Z)<br />

k – 1<br />

1– W<br />

N<br />

Z<br />

1 2cos( 2πk ⁄ N)<br />

Z 1 –<br />

– Z 2 –<br />

= -----------------------------------------------------------------------<br />

+<br />

Eqn. 6-14<br />

k – 2 π kj N<br />

where: W<br />

N<br />

e<br />

N = the length of input sequence, which<br />

depends <strong>on</strong> the resoluti<strong>on</strong> of two<br />

c<strong>on</strong>secutive frequencies to be<br />

detected<br />

k = the index of DFT coefficient<br />

⁄<br />

=<br />

Also note that <strong>on</strong>ly three real coefficients are required<br />

in the IIR filter. Naturally, the IIR filter<br />

recursively works <strong>on</strong> input samples and output results,<br />

so no input data buffer is needed; and <strong>on</strong>ly<br />

two memory locati<strong>on</strong>s are used for storing internal<br />

states of the IIR filter. Figure 6-6 shows an implementati<strong>on</strong><br />

of the Goertzel algorithm by a sec<strong>on</strong>d<br />

order IIR filter. In c<strong>on</strong>trast, an IIR filter calculates<br />

6-18 MOTOROLA

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!