How to create the complex representation from magnitude and phase information to perform an inverse fast fourier transformation (IFFT)?
25 views (last 30 days)
Show older comments
Hello all!
I have a problem with converting amplitude and phase data into the complex form, which is required to perform an IFFT. (inverse fast fourier transformation). This is the only data I have. (See two pictures below)
My frequency range goes from 0.1 to 2.6 and, with 200 samples. I would like to use IFFT to obtain a time signal. Furthermore, can anyone advise me how to choose a time domain and sampling time in order to get useful results?
I have never used IFFT (Or fft) before, so some helpful insights would be very helpful!
<<


>>
0 Comments
Answers (1)
Walter Roberson
on 10 Aug 2015
Presuming that you want a real result after ifft:
The first value of the array should be the desired mean, multiplied by the total number of samples in the array.
The 2nd through N+1'st values should be complex values whose abs() is the desired magnitude and whose complex part is the desired phase.
After that there may be one real value
The remaining values should be the complex conjugates of the N+1'st through 2nd values (that is, take the N complex value and take conj(fliplr(X))
The total number of entries in the array will be even if you had that one real value, and will be odd if it was not present.
The number of points of output from the ifft will be the same as the length of the input.
3 Comments
Walter Roberson
on 12 Aug 2015
The amplitude in the frequency domain is complex, and you need to take its abs() to get the magnitude.
Possibly I do not understand your question. An example might help.
See Also
Categories
Find more on Fourier Analysis and Filtering in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!