phase information from pwelch or pmtm

18 次查看(过去 30 天)
When using the cross power spectral density ( cpsd) of two signals x and y , one obtains a complex output, describing the phase shift between both signals. cpsd is based on Welch's method. However, if I am just using pwelch to get the power spectral density of one of the signals, I am loosing the phase information (i.e. the output is real). Same applies for the multitaper techniques using pmtm.
Does somebody know how to get the phase information from pwelch or pmtm?
Thanks a lot!

回答(2 个)

Mark Schwab
Mark Schwab 2018-5-17
In the calculation of the Power Spectral Density, you take the magnitude of the product of the summation or integral of the elements of your signal and some complex number. Since we take the magnitude, the Power Spectral Density will always be real valued. The equation for the Cross-Spectral Density is the fourier transform of the cross-correlation function which explains how you can obtain complex numbers. So to answer your question directly, there is no way obtain the phase information from pwelch or pmtm as these two functions can only produce real valued results.

HenryHoare
HenryHoare 2018-5-18
Thanks for your reply, Mark! The cross-spectral density is based on Welch's method and in fact, it is implemented as the convolution of the two signals (see line 72 in computeperiodogrom.m), i.e. as the cross-correlation of the spectra. But this should be equivalent to the definition in the cpsd-documentation (i.e. equal to the Fourier transform of the cross-correlation, right?).
However, the problem is indeed the magnitude. So to preserve the phase while using pwelch or pmtm I just modified a copy of the source-code in a way that it also keeps the spectrum before auto-correlating it.
  1 个评论
Heinz Krug
Heinz Krug 2020-5-12
Very interested in your modification, Henry. I have a problem where I also need the phase information. Is your code modification publicly available? Any links? Or would you be willing to email it to me?

请先登录,再进行评论。

类别

Help CenterFile Exchange 中查找有关 Spectral Estimation 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by