Here's my problem. The input signals $x$ and $y$ will be having the time value aligned with each other. However, the data are not evenly sampled. I would like to calculate CPSD of both signals.

The solution comes to my mind is as follow

  1. $R_{xy}$ = cross correlation of $x$ and $y$ (I'm not sure how to do it with unevenly sampled data)
  2. Use Lomb Periodogram to estimate the CPSD of Rxy

Is there anything I miss? And what is the right way to do it?


Sam Maloney suggested to use interpolation to fill the gap to produce evenly sampled data. This solution is good.

However, the data I obtained may have some missing data / long gap. Interpolating the data may "predict" the data wrongly and produce undesired end result.

As quoted in Numerical Recipes (Spectral Analysis of Unevenly Sampled Data)

However, the experience of practitioners of such interpolation techniques is not reassuring. Generally speaking, such techniques perform poorly. Long gaps in the data, for example, often produce a spurious bulge of power at low frequencies (wavelengths comparable to gaps)

This is the reason why I choose Lomb Periodogram over FFT in Step 2 without interpolating the data. However, I'm unable to figure out how to solve the Step 1. Is there any way to calculate the cross correlation of 2 signals without interpolating them?


One way would be to interpolate the signals to produce evenly-spaced samples and then calculate the CPSD as normal.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.