Tutorials#

These tutorials are meant to be read in order. Each one introduces the tools the next one uses, so that nothing is ever used before it has been explained, and nothing is explained twice.

#

Tutorial

What it introduces

0

First Simulation

The Sequential chain, the blocks it is made of, an observation to look inside it, and one error rate.

1

Monte Carlo Simulation over AWGN Channel

A Monte Carlo study: first as an ordinary for loop, then the same thing with monte_carlo, read against a closed form written out in NumPy, and ending on four QAM orders at equal energy per bit. Also seed, set_params and plot_error_rate.

2

OFDM Tutorial

A frequency-selective channel, and the two ways to equalize it: one matrix inversion, or one division per subcarrier.

3

PAPR in OFDM Communication

What an OFDM waveform costs the amplifier, and the CCDF that measures it.

4

MIMO Chain Tutorial

Several antennas, and the five detectors that separate the streams – from the pseudo-inverse to the sphere decoder.

5

Alamouti Space-Time Coding Tutorial

Diversity without channel knowledge at the transmitter: space-time coding, measured against its closed form.

6

Channel Coding

Redundancy: convolutional codes and the Viterbi trellis, the union bound, and an LDPC waterfall.

7

Probabilistic Shaping

Sending some constellation points more often than others, and the 1.53 dB it recovers.

8

Nonlinear Performance and the Gaussian Noise Model

A nonlinear channel: how much noise the fibre’s nonlinearity makes, in closed form, and the launch power that minimizes it – checked against a split-step simulation.

9

Polarization Demultiplexing: CMA and Blind Phase Search

The blind coherent receiver: a fibre that mixes the two polarizations (PMDEmulator), the CMA butterfly that unmixes them, and blind phase search against the laser.

9

Digital Back-Propagation

The performance the previous tutorial predicted, improved: digital back-propagation undoes the nonlinearity instead of budgeting for it.

If you are looking for one specific thing rather than a course, every page is self-contained enough to be read alone – it will simply point back at the tutorial where a tool was introduced instead of explaining it again.

The scripts behind these pages are also available on GitHub: vincentchoqueuse/comnumpy.