Confused about a few topics w.r.t. differential encoding/decoding. First, consider the below BER curve taken from wikipedia ( https://en.wikipedia.org/wiki/Phase-shift_keying ) comparing BPSK/QPSK and DBPSK, DQPSK
I ran some simulations in matlab and found that by including standard differential encoding of my QPSK that my error rate was approx 2x higher than normal QPSK (which seemed correct given the error propagation of the differential coder). However according to this curve, the penalty for DQPSK appears much worse, am I missing something or is there a mistake in this graphic?
EDIT: I'm going to answer this first question - I've conflated terms. The performance in the graph for DQPSK i.e. differential QPSK, is different than differentially encoded QPSK (which is the system I've described in my post). In differential QPSK, I believe the transmitter I described using modulo-M differential encoding is still correct (in that it encodes the information into the phase transitions of the constellation) - however the key difference is that DQPSK at the RX side is assumed to be operating differentially and so detection of the data is done by comparing the current and prev phase of the constellation.
It's clear now my questions are not about DQPSK but instead about differentially encoded QPSK. In this case, we demodulate using a coherent receiver (i.e. including a costas loop) and the differential encoding is only used to resolve the 2*pi/M phase ambiguity. Thus we only get a small BER penalty from the error propagation in the differential encoding.
I'm still interested in the subsequent questions below on the topic of differential encoding schemes.
Secondly, I want to understand two forms of differential encoding for M-PSK that I am aware of. The traditional way as I know it is shown below (assuming perfect timing/freq sync already) where it takes a stream of input bits, groups them into log2(M) chunks, re-maps them via a grey code, differentially encodes them (modulo M), and then maps to symbols (not shown in the flowgraph but the constellation here must be natural, i.e. no mapping). In other words this encodes the data into the transitions of the constellation as opposed to the absolute phase. For QPSK this allows us to correct the 90 degree phase ambiguity problem as seen in the costas loop for example.
The alternate method I am aware of for example with M=4 involves taking the stream of input bits, deinterleaves them (even and odd bit indices) and differentially encodes each stream separately modulo-2, interleaves them back up, groups into chunks of 2-bits, re-maps them via a grey code, and then maps to symbols. This essentially is treating it as two independent DBPSK streams. This is as shown below:
- Is there a common name for the alternate encoding scheme or other reference material on it? I've found none.
- EDIT: I have since found that the interleaved scheme does not appear to handle 90 degree ambiguity (only 180deg) as I had originally thought. In fact I came across a paper that seemed to state as much as well https://ieeexplore.ieee.org/document/1632094 I still am unclear why exactly this is the case however.. I had originally thought that since each stream could separately handle a 180 degree offset, combined they could handle 90 as well.
- Is this alternate method acceptable for higher order M-ary PSK?