***23

Coherent demodulation of DBPSK

In a previous post, we discussed about a probable first order digital PLL for tracking constant phase offset. The assumption was that as the phase offset is small and the bits gets decoded correctly, the phase difference between the ideal and actual constellation gives the initial value of phase. However, in typical scenarios it may be possible that the above assumption may not be valid, resulting in phase ambiguity.


To handle such scenario’s it may be pertinent to differentially encode the transmit signal. Quoting from Section 4.5.1 of [DIG-COMM-SKLAR] - “The term differential encoding refers to the procedure of encoding the data differentially; that is, the presence of a binary one or zero is manifested by the symbols similarity or difference compared with the previous signal.”

The encoding method for a differentially encoded binary phase shift keying (DBPSK) can be as follows:

Bit input,

x[n]

Phase change, degrees

Table: Differentially encoded BPSK (DBPSK)

In equations, DBPSK can be represented as

where

is the input binary sequence and

is the modulo-2 addition.

The binary sequence is then BPSK modulated and used for transmission.

Demodulation scheme

The received sequence is coherently demodulated (as explained for coherent BPSK demodulation). Then the resulting binary sequence and the delayed version of it is modulo-two subtracted for extracting the bit sequence.

Typical transmit-receiver block diagram can be as follows:

tx_rx_coherent_demod_dbpsk

Figure: Transmit receive block diagram for coherent demodulation of DBPSK

The probability of error for a coherently detected, differentially encoded BPSK is given by (from Sec4.7.2 [DIG-COMM-SKLAR])

.

Notice that the bit error probability for coherent demodulation of DBPSK is typically double when compared to the bit error probability for coherent BPSK demodulation. This is because, due to differential encoding each decision error during coherent demodulation will cause two bits to be in error.

However, note that argument is not so straightforward for low SNR regions which I presume the reference [TEL-SYS-ENG-LINDSEY-SIMON] details about.

% Simple Matlab/Octave code for coherent demodulation of
% differentially encoded binary phase shift keying (DBPSK)
clear
N = 10^6 % number of bits or symbols
rand(’state’,100); % initializing the rand() function
randn(’state’,200); % initializing the randn() function
ip = rand(1,N)>0.5; % generating 0,1 with equal probability

ipD = mod(filter(1,[1 -1],ip),2); % %differential encoding y[n]=y[n-1]+x[n]
s = 2*ipD-1; % BPSK modulation 0 -> -1; 1 -> 0
n = 1/sqrt(2)*[randn(1,N) + j*randn(1,N)]; % white gaussian noise, 0dB variance

Eb_N0_dB = [-3:10]; % multiple Eb/N0 values
for ii = 1:length(Eb_N0_dB)
y = s + 10^(-Eb_N0_dB(ii)/20)*n; % additive white gaussian noise

ipDHat_coh = real(y) > 0; % coherent demodulation
ipHat_coh = mod(filter([1 -1],1,ipDHat_coh),2); %differential decoding
nErr_dbpsk_coh(ii) = size(find([ip - ipHat_coh]),2); % counting the number of errors
end
simBer_dbpsk_coh = nErr_dbpsk_coh/N;

theoryBer_dbpsk_coh = erfc(sqrt(10.^(Eb_N0_dB/10))).*(1 - 0.5*erfc(sqrt(10.^(Eb_N0_dB/10))));

close all
figure
semilogy(Eb_N0_dB,theoryBer_dbpsk_coh,’b.-’);
hold on
semilogy(Eb_N0_dB,simBer_dbpsk_coh,’mx-’);
axis([-2 10 10^-6 0.5])
grid on
legend(’theory’, ’simulation’);
xlabel(’Eb/No, dB’)
ylabel(’Bit Error Rate’)
title(’Bit error probability curve for coherent demodulation of DBPSK’)

dbpsk_ber_coh_demod_sim_theory

Figure: Bit error curve for coherent demodulation of DBPSK

Hope this helps.

Reference

[DIG-COMM-SKLAR] Digital Communications: Fundamentals and Applications (2nd Edition), Bernard Sklar

Please click here to SUBSCRIBE to newsletter and download the FREE e-Book on probability of error in AWGN. Thanks for visiting! Happy learning.

1 Star2 Stars3 Stars4 Stars5 Stars (No Ratings Yet)
Loading ... Loading ...

If you liked this post, you may leave a comment below, or subscribe to the RSS feed.

You may also find these posts relevant...
  • Articles
  • Simulating Minimum Shift Keying Transmitter
  • Bit Error Rate (BER) for frequency shift keying with coherent demodulation
  • Symbol Error Rate (SER) for 4-PAM
  • First order digital PLL for tracking constant phase offset
  • Comments

    Is it called coherent because it is mixed with a reference signal?

    I know for DBPSK there are two demodulation schemes (coherent -optimal) and (noncoherent-suboptimal).

    Does this scheme require a frequency tracking? to my understanding the answer is Yes but I would like to confirm that :)

    @Yahia:
    It is called coherent, because the receiver need to align the phase prior to demodulation. Yes, as you correctly mentioned, this requires the receiver to do the frequency tracking.

    Thank you

    What you described here is BPSK with differential encoding and decoding.

    Real DBPSK is the same at Tx, but Rx side differs in the sense that the phases of two successive demodulated complex symbols (I/Q) are directly subtracted to get the output symbol estimate. i.e. x[n]= (real(y[n]*conj(y[n-1]))<0)

    This works much better in the presence of significant phase drift and jitter.

    @Iggy: Yes, I agree.that the post describes coherent deomdulation of differential PSK. For differential demodulation, where one avoids phase tracking, one can use phase of y[n]*conj(y[n-1]) (as you suggested). However note that there is a 3dB penality in differential detection (when compared to coherent detection).

    I have to disagree:

    Differentially Encoded BPSK (that you described) is close to BPSK itself for high E_b/N_0 (> 10 dB), but DBPSK (that I described) is less than 0.5 dB below.
    http://en.wikipedia.org/wiki/Phase-shift_keying

    If you include effects like significant phase jitter and phase drift (which is very common in real-life systems, especially if you have some spread spectrum modulation on top of (D)BPSK), then, DBPSK will outperform Differentially Encoded BPSK.

    @Iggy: For completeness, may I summarize the error rates in AWGN alone for the three approaches:
    (a) BPSK (normal) : 1/2*erfc(sqrt(Eb/No));
    (b) DBPSK (coherent aka Differentially encoded BPSK) : ~= erfc(sqrt(Eb/No));
    (c) DBPSK (noncoherent) : 1/2*exp(-Eb/No);
    If we plot the curves, we can see that performance of (a) > (b) > (c). As you said, the difference is small though.

    As I see, the advantage of using option (c) enables us to avoid a phase tracking circuit at the receiver (under the assumption that phase does not change too much from between two symbols). Reduction in complexity albeit with a (small) performance loss.

    When you mentioned (c) outperforms (b), did you consider the presence of phase tracking circuit in the receiver for (b)?
    Further, in the presence of frequency offset, which causes a linear change in phase, I would think that the performance of DBPSK (non-coherent) becomes shaky.

    Leave a comment

    (required)

    (required)