Hi Andrew,
I suppose that your algorithm is a real input DFT.
Discrete Fourier transform - Wikipedia, the free encyclopedia
look at the
The real input DFT.
In that case for N real samples the DFT returns N/2 real values and N/2 imaginary conjugated values.
I tried also with 0's on the odd indexes for the imaginary part, but I didn't get consistent results.
Could you post your test program with the imaginary input, so I will check if I made a somewhere a mistake or if the results are also not consistent.
When you calculate the FFT in my test program with 3 Sines, you will see that the spectral lines 1,4 and 10 have a value near 1024 for both the real and imaginary value corresponding to the 'frequencies' of the 3 sines. All other values are near 0, as it must be because the sines are pure, only one spectral line per sine. A pure sine means in that case beginning with 0 and with a whole number of periods in the 'window'.
Normally FFT's ampltudes are normalized, when you click onto the A button to calculate the Amplitude of the sine you will see values near 0.707 for the 3 spectral lines (that's the standard normalization in FFT analysers, power spectrum). I have used FFT in the past in one of my programs and normalized the amplitude to get the same amplitude as the original sines wich in the test program is 1.
I had also looked at a Fourier series instead of FFT but it is awfully slow.
The advantage, for redbird, would have been that the bandwidth could probably have been limited to the interesting area.
Best regards.