I am implementing a non-coherent receiver for DBPSK. I have a computer science background with little knowledge of DSP so my questions here may seem obvious. The design of the receiver I am trying to implement is the following: Design of DPSK receiver

And what I am doing right now is:

On the tx side

  1. Differentially encoding my bit sequence
  2. BPSK modulating it
  3. Applying a high-pass filter

On the rx side

  1. Applying a band-pass filter around the carrier frequency
  2. Delaying (by one bit worth of data) and multiplying the data by itself
  3. Applying a low-pass filter
  4. Integrating over one bit worth of data (i.e. sum the sample values)
  5. Making the decision depending on the sign of my integral

By 'data' I mean samples at 44.1kHz. When I simulate this on Octave, it works (i.e. I can detect the bit sequence even with high AWGN). The problem is I am trying to move to an infinitely long data sequence (i.e. I do not know the exact moment where the tx began). So here are my questions:

  • How can I achieve time and frame synchronization ? (I tried with a barker code but I am not sure I am getting it right) This is the thing that's most confusing to me. My guess is you'd have to get time synced before the integration block, and frame synced after the decision block.

  • How can I express the bandwidth in function of carrier frequency f and bit rate ?

  • Does the relation between bit rate and carrier frequency have any influence on the receiver ?
  • What are the optimal values for the filters ? (number of taps)
  • How do I calculate Eb/N0 for in my case ? (I want to compare my BER curve with others to see how good is my receiver)
  • $\begingroup$ While your 2. on the rx side is much beloved of textbook writers, it is in fact a suboptimal method of implementing a noncoherent DBPSK receiver and it is only when the SNR is quite high will you get anything close to the theoretical performance. $\endgroup$ Feb 21, 2013 at 21:00

1 Answer 1


1) A typical approach would be to have a frame alignment word (and by "word" I mean bit sequence) at the beginning of every frame. You could time synchronize by looking for that FAW through cross-correlations. Barker codes are a good choice because they have good autocorrelation properties.

The problem with the approach is that the data, being random, can look like the FAW sometimes. You can use the periodicity of the FAW to screen out those false positives. For instance, if your frame is 1000 bits long, you would look for multiple hits spaced 1000 bits apart. Once you have found them you have both time and frame synchronization.

2) There is not a direct relationship between carrier frequency and bandwidth. There is a direct relationship between bit rate and bandwidth, but there are other factors involved. The easiest way to determine your bandwidth is to take an FFT of your signal and measure it.

3) Your question is unclear.

4) You haven't provided enough information, and "optimal" can mean a lot of different things. If you want a good answer to this you should start a new thread with more details.

5) It sounds like you are adding noise via AWGN, so you know what your SNR is. With BPSK Eb/No is equal to the SNR.


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.