Expand description
Differential coding of M-PSK (DBPSK, DQPSK, D8PSK, …): encoding and decoding of the
phase indices, noncoherent detection, and the Gray-labelled link Dpsk.
§Model
The information is carried by the phase transitions. With $a_{k} \in \{0, \dots, M - 1\}$ the differential phase index of the symbol $k$ and $c_{-1} = 0$ the reference,
$$ c_{k} = (a_{k} + c_{k-1}) \bmod M, \qquad x_{k} = e^{j 2 \pi c_{k} / M}, $$
so a sequence of $n$ information symbols is transmitted as $n + 1$ PSK symbols
(encode). Decoding is the difference $a_{k} = (c_{k} - c_{k-1}) \bmod M$
(decode). The noncoherent detector (detect) needs no carrier phase: it decides
the differential phase nearest to
$$ \arg \left(r_{k} \, r_{k-1}^{\ast}\right), $$
which a constant rotation $e^{j \phi}$ of the received symbols leaves unchanged. With
coherent decisions on every symbol followed by decode, one wrong symbol spoils two
differences: the bit error rate of DBPSK becomes $2p(1 - p)$ with $p =
Q(\sqrt{2 E_{b}/N_{0}})$ (crate::theory::ber_dbpsk_coherent); the noncoherent
detector gives $\frac{1}{2} e^{-E_{b}/N_{0}}$ for DBPSK and the integral of Pawula,
Rice & Roberts for M-DPSK (crate::theory::ber_dpsk).
Dpsk maps bits to differential phase indices with the Gray labelling of
crate::constellation (the bits of a symbol are the Gray label of its phase
transition), so that the nearest wrong transitions differ by one bit.
§Square QAM with a differential quadrant
A carrier recovery of square QAM, such as the blind phase search, leaves an ambiguity
of a multiple of $\pi/2$. QuadrantQam removes it as Pfau, Hoffmann and Noé (2009,
Sec. III-A, Fig. 5): the two bits that select the quadrant are the Gray label of a
differential quadrant index (encode with $M = 4$), and the other $\log_{2} M - 2$
bits select the point inside the quadrant, Gray-labelled along each axis, the pattern
of the first quadrant rotated with the quadrant. A rotation of the received symbols by
$j$ moves every symbol to the next quadrant with the same inner label, so the
differential decoding of the quadrants returns the same bits. The labelling is no
longer Gray across the axes, which costs about 3 dB of SNR for QPSK at a given bit
error rate (every symbol error spoils two quadrant differences), and less and less
for larger constellations.
§Examples
use comnum_mapping::differential::{Dpsk, decode, detect, encode};
use comnum_core::rng::Rng;
let a = vec![0, 1, 3, 2, 1];
let c = encode(&a, 4)?;
assert_eq!(c, vec![0, 0, 1, 0, 2, 3]);
assert_eq!(decode(&c, 4)?, a);
let dqpsk = Dpsk::new(4)?;
let bits = comnum_mapping::source::bits(200, &mut Rng::new(1));
let x = dqpsk.map_bits(&bits)?;
assert_eq!(x.len(), 101);
// a constant phase rotation does not change the decoded bits
let rotated: Vec<_> = x.iter().map(|v| v * comnum_math::cis(1.234)).collect();
assert_eq!(dqpsk.demap_bits(&rotated)?, bits);
assert_eq!(detect(&rotated, 4)?, detect(&x, 4)?);§References
- J. G. Proakis and M. Salehi, Digital Communications, 5th ed., McGraw-Hill, 2008, §3.2-2 (differentially encoded PSK) and §4.5 (noncoherent detection, DPSK).
- R. F. Pawula, S. O. Rice and J. H. Roberts, “Distribution of the phase angle between two vectors perturbed by Gaussian noise,” IEEE Trans. Commun., 30(8), 1828–1841, 1982.
- T. Pfau, S. Hoffmann and R. Noé, “Hardware-efficient coherent digital receiver concept with feedforward carrier recovery for M-QAM constellations,” J. Lightw. Technol., 27(8), 2009.
Structs§
- Dpsk
- Differential M-PSK with Gray-labelled phase transitions: the differential phase
index $k$ carries the label $g(k)$ (
comnum_math::gray). - Quadrant
Qam - Square M-QAM whose quadrant is differentially encoded and whose points inside a quadrant are Gray-labelled (Pfau et al. 2009, Sec. III-A; see the module): the bits are read by a coherent receiver after a carrier recovery with an ambiguity of a multiple of $\pi/2$.
Enums§
- Detection
- The detection of a differential PSK signal.
Functions§
- decode
- Differential decoding: the
ndifferences $a_{k} = (c_{k} - c_{k-1}) \bmod M$ ofn + 1phase indices. - detect
- Noncoherent detection: the differential phase index nearest to $\arg(r_{k}
r_{k-1}^{\ast})$ for every pair of consecutive received symbols (
ndecisions forn + 1symbols). - detect_
coherent - Coherent decisions: the phase index nearest to every received symbol (the hard
decision of M-PSK on the absolute phase);
decodethen removes the differential encoding. - encode
- Differential encoding: the
n + 1phase indices $c_{-1} = 0, c_{0}, \dots, c_{n-1}$ with $c_{k} = (a_{k} + c_{k-1}) \bmod M$.