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. Between 4-point and 32768-point FFTs may be performed, the upper
limit depending on data-memory availability. The FFT decimates in time,
the computations being done in place with full intermediate scaling and
0.5lsb rounding.
Routine calls are provided for:
zeroing the FFT array, pre-computing the "twiddle factors",
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 example application files are provided with the code. Test results
are available.
Processor
Load:
| FFT
mode setting |
N-point |
Cycles# |
Data
memory (words) |
Prog
memory (bytes)# |
| Re,Im
samples, pre-stored twiddle factors |
16 |
1239 |
48 |
853 |
| 256 |
33215 |
768 |
| 4096 |
766231 |
12288 |
| Re-only
samples, pre-stored twiddle factors |
16 |
685 |
48 |
1000 |
| 256 |
24249 |
768 |
| 4096 |
614693 |
12288 |
| Re,
Im samples, twiddle factors computed |
16 |
2512 |
32 |
901 |
| 256 |
57548 |
512 |
| 4096 |
1212744 |
8192 |
-
#example figures from compiling for the TI TMS320C5000(C55x) DSP processor
Availability:
NOW, sale is under licence - integration support offered
|
|