Fast Fourier Transform in C

95 Views Asked by At

I have a time domain data of an electric field(windowed) at a point, say $(x,y)$. The time is around 33 picoseconds and sampled at 20,000 points.

To convert this data to frequency domain I am using FFT. The steps I follow are:

1) I take the Fourier transform of the electric field in a frequency range (say $f_1$ to $f_2$ in 20,000 points) and over the time interval of 33 picoseonds and get complex amplitude from this step.

2) Now I take the norm of the complex amplitude to get the magnitude of complex amplitude.

3) I find the phase$(-\pi, \pi)$ using real and imaginary parts of the complex amplitude in the defined frequency range.

4) Now I multiply the cosine of the phase with the magnitude of the complex amplitude to get the real part of the complex amplitude.

5) Then I plot the absolute value of the real amplitude versus frequency.

However, after doing all of this, I don't obtain the right frequency spectrum. I don't know whether my procedure is correct or not. I guess, the problem might be with sampling.

Can someone comment on it.