I'm trying to estimate the power spectrum and time delay for random signals. the signals were taken from two sensors, 10 cm apart. My aim is to estimate the PSD first then estimate the time delay in order to obtain the structure velocity. I've tried the traditional way by using matlab built-in functions like fft, xcorr. however the results were not as I expected. is there a better way to analyse the attached signals please? Does it need filtering?

The signals represent the void fraction data that was measured for 60s with sampling frequency of 1000hz. the time delay expected to be in ms( around 500ms). SIGNAL1 SIGNAL2

1.Cross Correlation CROSSCORELATION 2.AUTO_CORRELATION enter image description here

  1. PSD enter image description here

4.Cross Correlation after subtracting the average 60000 points enter image description here

2000 points enter image description here




  • $\begingroup$ You've not provided enough information. What kind of sensors? What sampling rate? What is the speed of propagation for your signal (how long would it take to travel between the two sensors?) What is the time scale in the provided diagrams? What did you expect to see? (provide a diagram) What results did you see? (provide a diagram.) $\endgroup$ – JRE Aug 11 '14 at 15:02
  • $\begingroup$ @JRE the post's updated!!.The sensors measures the void fraction in a pipe, the sampling rate is 1000khz, the time expected to be in ms, may be around 500ms. The time scale is ms. the data was collected for 60seconds with sampling rate of 1000 kHz. $\endgroup$ – Rajab Aug 11 '14 at 17:26
  • $\begingroup$ OK. The cross correlation and your two original diagrams show the problem. Cross correlating two signals with a DC component gives the result you've gotten. You need to run your data through a high pass filter to get rid of the DC. It might be simpler, though, to take the average of the data points for each sensor and subtract that from each data point for that sensor. $\endgroup$ – JRE Aug 11 '14 at 19:49
  • $\begingroup$ @JRE I’ve never used filters in signal processing; actually I'm beginner in signal processing. Would you please help me to apply the high pass filter for my signal in Matlab. Which frequencies should be cut off?? $\endgroup$ – Rajab Aug 12 '14 at 9:37
  • $\begingroup$ Easiest is to do as I described above: Computer the average for a data set and subtract that average from each point in the data set. Do that for each data set and you should be good to go. $\endgroup$ – JRE Aug 12 '14 at 9:59

Your Answer

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

Browse other questions tagged or ask your own question.