FFT
Time-to-Frequency DSP C Code
Description:
this routine performs the tasks involved in FFT spectral analysis ie a
complete time-to-frequency FFT on an N = 2M time sample array in
one call. The FFT conversion is programmable from 4- to 16384-points.
The FFT decimates in time, the computations being done in place with full
intermediate scaling and 0.5lsb rounding. The main FFT routine is also
programmable for FFT conversion in stages. This can be useful for spreading
the processing load in a real-time system.
Routine calls are provided for:
zeroing the FFT array, pre-computing the "twiddle factors",
loading the array with bit-reversed addressing, performing the FFT, and
converting the output spectra real and imag parts to magnitudes. Optionally,
the FFT computation may be done on: real and imag time samples or on real
samples only, both with pre-stored twiddle factors, or on real and imag
time samples with twiddle factors calculated on-the-fly. These options
give various trade-offs between cycles taken, data memory required, and
program memory used.
The C code is suitable for any
processor with an ANSI-compliant C compiler. It is designed especially
for efficient operation on low-cost fixed-point DSP- and general-purpose
micro-processors. All data memory is specified as 16-bit integer words.
Multiplies are integer 16x16-bit with 32-bit products.
The code is re-entrant so multiple
channels can readily be processed. A comprehensive user's guide, together
with test results and an example application file, is provided with the
code.
Processor
Load:
FFT
mode setting |
N-point
|
Cycles#
|
Data
memory (words)
|
Prog
memory (bytes)#
|
Re,Im
samples, pre-stored twiddle factors |
16
|
1252
|
48
|
842
|
256
|
33487
|
768
|
4096
|
770347
|
12288
|
Re-only
samples, pre-stored twiddle factors |
16
|
719
|
48
|
1043
|
256
|
24775
|
768
|
4096
|
630066
|
12288
|
Re,
Im samples, twiddle factors computed |
16
|
2004
|
32
|
829
|
256
|
49649
|
512
|
4096
|
1073500
|
8192
|
-
#example figures from compiling for the TI TMS320C5000(C55x) DSP processor
Availability:
NOW, sale is under licence - integration support offered
|
|