Hi, I'm working on a C5515 with the using the HWAFFT coprocessor for FFTs. I was wondering about if its worth it to make a real FFT out if half size complex FFT (see "A Different DIT" at http://www.engineeringproductivitytools.com/stuff/T0001/PT10.HTM). You have to do a final step then, and I'm wondering if this could be done with HWAFFT coprocessor instructions, or if I might as well forget it and use complex ffts since they are hardware accelerated?
I did this in matlab just to verify (the equivalent for a IFFT is very similar):
function [X] = realfft(x)
N = length(x);
even = 1:2:N; % Note that the even pins is "odd" in matlab because of the matlab indexing from 1
odd = 2:2:N;
z = x(even) + i*x(odd);
Z = fft(z);
Z = [Z Z(1)]; % Can't use circular buffers in matlab
X = .5*((Z(1:((N/2)))+conj(Z(((N/2)+1):-1:2))) - i*exp(-i*2*pi*(0:((N/2)-1))/N).*(Z(1:((N/2)))-conj(Z(((N/2)+1):-1:2))));
X = [X .5*((Z(1)+conj(Z(1))) + i*(Z(1)-conj(Z(1))))];
Thanks, Stefan Gram