DSPRelated.com
Forums

Is there a way to reduce the number of operations in this FFT procedure?

Started by Luna Moon August 9, 2007
Hi all,

Suppose my signal is a complex valued signal, and it is complex conjugated 
with respect to the center t=0.

That's to say f(-t)=f(t)*, where "*" denotes the complex conjugate.

Suppose now I do the truncation of above signal into between [-B, B),

and I sample it using stepsize dB,

then in Matlab, the sampling points are cfs=[-B:dB:B-dB],

which has 2B/dB data points, e.g. -B, -B+dB, -B+2*dB, ... , 0, dB, 2*dB, ... 
B-dB.

Let's assume 2B is divisable by dB.

I found out that I have to do fftshift(cfs) before feeding into fft 
function, then I will obtain my desired output:

so,

output = fft(fftshift(cfs)),

and the output are all real numbers. This is our desired output.

Now I want to ask: is there some trick in FFT that I can use to further 
reduce computations?

Let's say, since my output is going to be real, and my input is complex 
conjugate, is there a way to throw away the real part, and only do the FFT 
on the real part, or something like that? I saw somewhere on the web that 
there is a special program for real input and real output FFT which can be 
even faster than a standard complex FFT.

Moreover, my input is complex conjugate, is there a way that I can throw 
away the f(t)'s for t<0, and thus only do fft on half of the orginal data 
sequence?

Thanks a lot!