Construct phase spectrum before IFFT
Afficher commentaires plus anciens
Dear all,
I would like to produce a signal in time domain from a given set of regular waves in the frequency domain. Say 4 regular waves with known wave frequency, amplitude and phase.
To understand how the commands work, I plotted all four waves in a time sequence, used FFT on this time sequence and plotted the amplitude (abs(FFT_output)*2/length(time_series)) and phase spectrum (angle(FFT_output)*2/length(time_series)), both scaled by 2/length(time_series). Building up the amplitude spectrum from my known frequencies and amplitudes in the frequency domain, I insert the amplitudes in a vector with the same length as the frequency vector, at the positions of the corresponding frequency and use fliplr to make the spectrum symmetric. This works fine and corresponds exactly to the outputted amplitude spectrum from the FFT command.
For the phase spectrum I perform the same trick, insert all known phases into a vector at the positions of the frequency they belong to. This constructed phase spectrum however does in no way correspond to the phase spectrum constructed from the FFT output. The phase spectrum outputted by the FFT command contains phase information for all frequencies in the spectrum, though it is only an addition of 4 waves. How should I interpret this?
2 commentaires
David Goodmanson
le 12 Avr 2017
Hi Roderick, could you provide an example of your code including the time domain input?
One thing going on for sure is that you don't want to divide the angle by 2*length(...) but your second-to-last sentence means that the nature of the input signal is of interest.
Roderick
le 13 Avr 2017
Réponse acceptée
Plus de réponses (0)
Catégories
En savoir plus sur Matched Filter and Ambiguity Function dans Centre d'aide et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!