FFT - Single sided phase?

9 ビュー (過去 30 日間)
Mark Thompson
Mark Thompson 2020 年 7 月 10 日
コメント済み: Star Strider 2020 年 7 月 10 日
Hi there,
I'm familiar with the process of calculating a single-sided magnitude after computing the fft in MATLAB (or any other package).
However, do we have to multiply the phase values by 2 for non-DC fft values? OR, do I simply just keep n/2+1 phase values returned from the raw fft vector?
I've seen examples on MATLAB Answers that show:
  1. just use n/2+1 phase values to represent the final phase response of an fft calculation, and another that shows:
  2. truncate the phase vector to n/2+1 values as per previous, and then doubling all of the of the phase values (except DC value).
Hence my confusion as to which is correct. Would love to know what is the best way to represent the single-sided phase response following the fft process.
Thank you!

採用された回答

Star Strider
Star Strider 2020 年 7 月 10 日
It is not necessary (or advisable) to multiply the phase values by 2, particularly because it doesn’t matter. The phase values are the arctangent (actually atan2) of the imaginary divided by the real part of the complex Fourier transform, so the multiplication would be irrelevant. The multiplication by 2 applies to the magnitude values because a one-sided Fourier transform represents only half the energy in the signal. It would be worthwhile to use the unwrap function for the phase angles, however.
  2 件のコメント
Mark Thompson
Mark Thompson 2020 年 7 月 10 日
Thank you! Great to have some clear direction! And I totally agree.
I was just confused by the code provided for variable phase_singe in this post: Extracting phase which was doubling the phase value!
Cheers!
Star Strider
Star Strider 2020 年 7 月 10 日
As always, my pleasure!
That post confuses me as well. Multiplying the phase by 2 may make some sense in that particular application (although I still don’t understand the logic behind it), however it makes no sense generally.

サインインしてコメントする。

その他の回答 (0 件)

カテゴリ

Help Center および File ExchangeFourier Analysis and Filtering についてさらに検索

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by