Motorola DSP Developer's Kit    
fft-r.asm

MATLAB Usage

Description

This function returns the discrete Fourier transform (DFT) of the input for real vector X

Input/Output

Input: Vector Xe (even index input data, located in X memory), and vector Xo (odd index input data, located in Y memory)

Output: Complex Vector Y (includes real output data of vector Yr, and imaginary data output of vector Yi)

Algorithm

First, use algorithm in FFT-C.ASM to calculate length/2 complex data FFT.

Then use split algorithm to calculate final result.

No scaling is required for the input data. The output data should be scaled up by 2^(r2+1).

For example, to get true FFT values, after the FFT is done and r2=7, every output item has to be shifted left 8 bits.

The split algorithm is described below:

Memory & Register

Memory allocation:

Register usage:

Status Register

The assembly function fft-r.asm does not set any status registers/bits during the function execution.

Data Size Limit

The length of vector X can't be larger than the continuous available data memory size.

Data Range Limit

The value of input vector X must be between -1.0 and +1.0.


 diff-c.asm fft-c.asm