I'm trying to detect a sync word in a signal using Symmetrical Differential PSK (bit 0 = +90° phase, bit 1 = -90° phase).

Given the signal is encoded in the phase difference between two symbols, the absolute phase is irrelevant. How would I go about using cross-correlation to detect the sync word?

I have four possible orientations for the sequence considering the absolute phase, but for performance reasons, I would prefer not to run the cross-correlation more than once. Should I calculate the phase difference of each symbol with the previous (i.e. extract the bits) and correlate on that or is there a way to do it without first converting the signal to bits?

  • 1
    $\begingroup$ Ignore the Symmetric Differential PSK for now and assume that it is straight DPSK. One cannot avoid repeated crosscorrelations if one wishes to detect the start of a known sync sequence of bits. Whether you extract the bits and then search for the start of the sync sequence or process the data as is, is a matter of taste, what the performance criteria are, how much it costs, how much time it takes etc. $\endgroup$ Commented Jun 13, 2020 at 23:06
  • $\begingroup$ Please post that as an answer :) $\endgroup$
    – Signal
    Commented Jun 14, 2020 at 5:04

1 Answer 1


Convert your input signal to an analytic signal with a Hilbert transformer, if your input signal is real. Then run a single complex cross correlation filter. Assuming no frequency offset, the phase of the correlator output at the correlation peak will be the input signal's phase shift from your reference signal.

  • $\begingroup$ Assuming no frequency offset, if my signal is in phase, the correlation peak will be maximum and positive. If the signal is 180° out of phase, the correlation peak will be maximum and negative. If the phase difference is +/- 90°, the correlation will be zero due to orthogonality. I'm not sure how you would get the phase shift from this without testing 0/180 and +90/-90, which goes back to the statement in the question where I don't want to do more than one correlation, given SDPSK has 4 possible orientations. $\endgroup$
    – Signal
    Commented Jun 14, 2020 at 5:15
  • $\begingroup$ You are assuming a real input signal and a real correlation filter. In that case, sure, the orthogonality of sine and cose will give you 0. However, my answer specifically states that you have to convert a real input signal into an analytic signal (a signal with both I & Q components) using a Hilbert transformer. The complex cross-correlation envelope will not be impacted by the orthogonality of sine and cosine. $\endgroup$
    – Andy Walls
    Commented Jun 14, 2020 at 19:55
  • $\begingroup$ Thanks, I'll give it a try on Monday. It might even help my QPSK receiver acquire the phase faster. $\endgroup$
    – Signal
    Commented Jun 15, 2020 at 0:56
  • $\begingroup$ That works beautifully. Thank you so much! $\endgroup$
    – Signal
    Commented Jun 15, 2020 at 14:55

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

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