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

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

4.8 Twiddle Factors and<br />

On-Chip ROM<br />

4.8.1 Twiddle Factors for<br />

Decimati<strong>on</strong>-in-Time<br />

Twiddle factors, Wk N<br />

e j2πk N<br />

, are coefficients<br />

used in FFT calculati<strong>on</strong>s. For normal order input radix-2<br />

decimati<strong>on</strong>-in-time FFT, the twiddle factors<br />

are always fetched in bit-reversed order, i.e.<br />

⁄ – =<br />

0 ( N2 ⁄ ) – 1 N4 ⁄ N8 ⁄ ( 3N)<br />

⁄ 8 N4 ⁄<br />

W ,<br />

N<br />

WN , W<br />

N<br />

,W ,<br />

N<br />

WN , …, WN<br />

Note that for an N point radix-2 FFT, two input data<br />

words share <strong>on</strong>e twiddle factor, and the bit-reversed<br />

order of the twiddle factor is based <strong>on</strong> N/2<br />

points.<br />

4.8.2 Sine Table <strong>on</strong> the DSP56001/2<br />

When the data-ROM-enable (DE) bit in the OMR<br />

register of the DSP56001/2 is set, the Y memory<br />

from $100 to $1FF c<strong>on</strong>tains a 256-point full cycle<br />

sine-wave, and each data entry has 24-bit accuracy.<br />

As menti<strong>on</strong>ed in the last subsecti<strong>on</strong>, for an N<br />

point FFT, N/2 complex coefficient twiddle factors<br />

are required, and these N/2 twiddle factors are a<br />

half cycle of the sine and cosine waveforms. Since<br />

<strong>on</strong>ly a 256-point full cycle sine-wave is stored in the<br />

DSP56001/2 data ROM, the maximum FFT length<br />

utilizing <strong>on</strong>ly internal twiddle factors is <strong>on</strong>e full cycle<br />

( ) – 1<br />

MOTOROLA 4-23

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

Saved successfully!

Ooh no, something went wrong!