question is about XMOS DSP library v3.0.0 and FFT function.
I was comparing the old library which uses two complex arrays to store FFT results and the new one (v3.0.0), which uses only one array, since I want to use the new one, because of the less memory usage.
As an example I used two real signals sig1(x) = 0.75*sin(x) and sig2(x) = 0.75 * cos(x).
- When old library was used, the function lib_dsp_fft_forward_tworeals transformed two real signals in frequency domain and results were :
FFT output spectrum of signal 1:
re, im
0.0000000000, 0.0000000000
0.0000000000, -0.3749999991
0.0000000000, 0.0000000000
0.0000000000, 0.0000000000
0.0000000000, 0.0000000000
0.0000000000, 0.0000000000
0.0000000000, 0.0000000000
0.0000000000, 0.3749999991
FFT output spectrum of signal 2:
re, im
-0.0000000009, 0.0000000000
0.3749999991, 0.0000000000
-0.0000000009, 0.0000000000
0.0000000000, 0.0000000000
-0.0000000009, 0.0000000000
0.0000000000, 0.0000000000
-0.0000000009, 0.0000000000
0.3749999991, 0.0000000000
-
When the new version of the library was used, functions dsp_fft_bit_reverse and dsp_fft_forward were used to save FFT results in one complex array:
FFT output spectrum of signals
re, im
0.0000000000, -0.0000000009
0.0000000000, 0.0000000000
0.0000000000, -0.0000000009
0.0000000000, 0.0000000000
0.0000000000, -0.0000000009
0.0000000000, 0.0000000000
0.0000000000, -0.0000000009
0.0000000000, 0.7499999981
What's bugging me is the following (what I would expect): Every signal after FFT holds N samples of information. FFT results of the first signal should be in [0, N/2 -1] and of the second signal in [N/2, N-1] samples and in this case it doesn't look so or am I missing something ?
So the question is how (in what order) are stored FFT results, when doing FFT on two real signals simultaneously ?
Thank you