Clear Filters
Clear Filters

phase information from pwelch or pmtm

24 views (last 30 days)
HenryHoare
HenryHoare on 9 May 2018
Commented: Heinz Krug on 12 May 2020
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!

Answers (2)

Mark Schwab
Mark Schwab on 17 May 2018
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 on 18 May 2018
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 Comment
Heinz Krug
Heinz Krug on 12 May 2020
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?

Sign in to comment.

Community Treasure Hunt

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

Start Hunting!