Questions regarding DSPLIB rfft/cfft

Started by August 3, 2006
Hello,

Background:
I'm designing a FMCW radar with an embedded C5509A DSP. The radar
produces a ramped FM signal, which corresponds to beat frequencies
and thus range. The ramped FM signal is sampled 128 times per period,
and I take 64 periods. Thus I'm left with a 64x128 (8192 words) of
sampled data.

Where rfft/cfft come into play:
I need to perform a 2D FFT on the data so I can extract range and
doppler information. I do the following:

1) Work on rows first. Bit reverse the row's samples. Perform 128-
point rfft across a single row's 128 real samples (columns). This
produces 64 real and imaginary values per row. I'm using SCALING for
the rfft.

2) Then work on columns. Perform 64-bit cfft across rows, for each
column. I'm using SCALING for the cfft. The result is still 64 periods
(rows) of 64 real and 64 imaginary points.

3) Bit reverse the result.

My questions:
A) Since I'm using scaling in the rfft, do I need to "rescale" my 1st
FFT results before performing the 2nd FFT? I believe this to be
necessary because if the scaled results were immediately fed into the
2nd FFT, the dynamic range would be limited. I would think you'd have
to multiply the results of the 1st FFT by 2^log_base2(N) where N is
the number of FFT points. Thus for a 128-point FFT, I'd need to
multiply the 1st FFT results by 128? (Got this from SPRA948, page 10).

B) Does the input to the rfft/cfft functions need to be in Q15
format? I think this is the case since the input is type "DATA" which
is by default Q15 format (I believe).