Expand description
Constant-envelope OFDM (CE-OFDM): the modulator, the phase demodulator and the error rate of its linear regime, after S. C. Thompson, A. U. Ahmed, J. G. Proakis, J. R. Zeidler and M. J. Geile, “Constant envelope OFDM,” IEEE Trans. Commun. 56(8), 2008.
§Model (matrix form)
A block carries $K$ data symbols $\mathbf{d} \in \mathbb{C}^{K}$ (unit mean energy) on the subcarriers $1..K$ of a DFT of size $N = 2J(K + 1)$, with $J \ge 1$ the oversampling factor ($J = 1$ is the smallest DFT that keeps the bins $0$ and $K + 1$ empty). With $\mathbf{F} \in \mathbb{C}^{N \times K}$, $F_{nk} = e^{j2\pi kn/N}$, the real OFDM signal and the transmitted samples are
$$\mathbf{x} = \frac{\mathbf{F}\mathbf{d} + \mathbf{F}^{}\mathbf{d}^{}}{\sqrt{2K}},, \qquad s_{n} = e^{j 2\pi h x_{n}},,$$
so that $\mathbb{E}[\mathbf{x}\mathbf{x}^{T}]$ is circulant with a unit diagonal and the phase $\varphi = 2\pi h x$ has the standard deviation $2\pi h$, $h$ being the modulation index (Sec. II of the paper). An optional cyclic prefix of $N_{\mathrm{cp}}$ samples is prepended. The channel adds $\mathbf{w} \sim \mathcal{CN}(0, \sigma^{2}\mathbf{I})$.
The receiver (Sec. III, Fig. 1 of the paper) takes the phase $\theta = \arg r$,
optionally unwraps it along the stream (Unwrap::Stream, the phase unwrapper of
the paper), removes the prefix and projects on the data bins:
$$\hat{\mathbf{d}} = \frac{\mathbf{G}\boldsymbol{\psi}}{2\pi h},, \qquad \mathbf{G} = \frac{\sqrt{2K}}{N}\mathbf{F}^{H}$$
($\mathbf{G}\mathbf{x} = \mathbf{d}$ because $\mathbf{F}^{H}\mathbf{F} = N\mathbf{I}$ and $\mathbf{F}^{H}\mathbf{F}^{*} = \mathbf{0}$).
§SNR convention
The SNR is $E_{s}/N_{0}$ per data symbol: a block of energy $N + N_{\mathrm{cp}}$ (unit envelope) carries $K$ symbols, so $\sigma^{2} = (N + N_{\mathrm{cp}})/(K \cdot E_{s}/N_{0})$. The results of the linear regime are then independent of the oversampling factor.
§Theory of the linear regime
Above the threshold of the phase demodulator (a carrier-to-noise ratio of about 10 dB, Sec. III-B of the paper), the phase error $\varepsilon = \operatorname{Im}(w e^{-j\varphi}) \sim \mathcal{N}(0, \sigma^{2}/2)$ and $\hat{\mathbf{d}} = \mathbf{d} + \mathbf{G}\boldsymbol{\varepsilon}/(2\pi h)$, so every data subcarrier sees the SNR
$$\mathrm{SNR} = (2\pi h)^{2},\frac{E_{s}}{N_{0}},\frac{N}{N + N_{\mathrm{cp}}},:$$
the error rates are those of the constellation over AWGN with the SNR multiplied by
$(2\pi h)^{2}$ (theory::snr, theory::ser_esn0, theory::ber_esn0). For $M$-PAM data
on every real subcarrier this is eq. (15) of the paper, which keeps the
nearest-neighbour term of the Gray BER; the library uses the exact Gray BER of the
square QAM whose real and imaginary parts are the two PAM symbols (checked against
eq. (15) by the test literature). Below the threshold the demodulator fails and
the error rate stays above this theory, as in Fig. 2 of the paper.
§Receivers
CeOfdm::demodulate_with_receiver takes a Receiver: the arctangent phase demodulator
above, or the low-complexity receivers of Ahmed and Zeidler (2015), which replace
$\arg r$ by $\operatorname{Im} r$ (basic linear receiver) or by
$\operatorname{Im} r \, (2 - \operatorname{Re} r)$ (enhanced receiver) and avoid the
threshold and the wraps of the phase at the price of a distortion. gamp::Gamp is
the near-optimum receiver of López Morales et al. (2022), by message passing, which
decodes beyond $2\pi h \approx 0.7$ where the phase leaves $(-\pi, \pi]$.
theory gives the error rates of the receivers, the spectrum, the optimum
asymptotic gain and the effect of a cycle slip.
§Examples
use comnum_waveform::ce_ofdm::{CeOfdm, Receiver, Unwrap};
use comnum_mapping::constellation::Constellation;
use comnum_core::rng::Rng;
let ce = CeOfdm::new(16, 2, 0.1).unwrap();
let c = Constellation::qam(16).unwrap().normalized();
let (_, d) = comnum_mapping::source::symbols(&c, 64, None, &mut Rng::new(1)).unwrap();
let s = ce.modulate(&d).unwrap();
assert_eq!(s.len(), 4 * ce.n_fft());
assert!(s.iter().all(|v| (v.norm() - 1.0).abs() < 1e-12)); // constant envelope
let e = ce.demodulate_with_receiver(&s, Receiver::Arctangent(Unwrap::None)).unwrap();
assert!(e.iter().zip(&d).all(|(a, b)| (a - b).norm() < 1e-9));Modules§
- gamp
- A near-optimum receiver of CE-OFDM by generalised approximate message passing (GAMP), after M. J. López Morales, R. Dinis and A. García Armada, “Near-optimal detection of CE-OFDM signals with high power efficiency via GAMP-based receivers,” Proc. IEEE Globecom Workshops, 2022, Algorithm 1.
- theory
- The theory of CE-OFDM: the error rates of the receivers, the spectrum, the optimum asymptotic gain and the effect of a cycle slip.
Structs§
- CeOfdm
- A CE-OFDM link (see the module documentation).