Examples#
This gallery walks through every public feature of
engineeringkit.communications, one breakthrough per script: decibels,
radio propagation and link budgets, antennas, thermal noise, analog
modulation and its noise performance, information, pulse shaping and
capacity, optimum detection, digitization, source and channel codes,
fading and diversity, and OFDM.
Units, assumptions and numerical validation
gives the physical validity limits. Each script is self-contained and can be
run directly with python examples/communications/<section>/<script>.py.
Sections#
decibels – the Bell System transmission unit.
propagation – Hertz’s waves, the Friis transmission formula and the Telstar link budget.
antennas – Friis’s effective aperture and Carter’s half-wave dipole.
noise – Johnson-Nyquist noise and Friis’s cascaded noise factor.
modulation – Fessenden’s AM, Carson’s suppressed carrier, Armstrong’s FM and Crosby’s noise analysis of FM against AM.
information – Nyquist’s signalling rate and raised-cosine pulses, Hartley’s law, Shannon’s entropy and capacity, and Huffman’s code.
detection – Kotel’nikov’s optimum BPSK receiver, quadrature (QPSK) modulation, North’s matched filter, Cahn’s M-PSK and square QAM.
digitization – Reeves’s pulse-code modulation and delta modulation.
coding – the Hamming(7,4) code, Elias’s convolutional codes, the cyclic redundancy check and Viterbi decoding.
fading – Rayleigh’s random phasors and diversity combining.
multiplexing – DFT-based OFDM with a cyclic prefix.
Antennas#
Gain and effective aperture, and the half-wave dipole.
Coding#
Channel codes: Hamming’s block code, cyclic redundancy checks, and convolutional codes with Viterbi decoding.
Peterson and Brown’s cyclic redundancy check (1961)
Decibels#
Logarithmic power ratios.
The decibel: the Bell System’s transmission unit (1924-1929)
Detection#
The matched filter, and error rates of coherent BPSK, QPSK, M-PSK and M-QAM in Gaussian noise.
Kotel’nikov’s optimum receiver: BPSK in white Gaussian noise (1947)
Quadrature modulation: QPSK doubles the rate at the same error rate (1960)
Digitization#
Pulse-code modulation and delta modulation: turning a waveform into bits.
Fading#
Rayleigh fading from many scattered paths, and diversity combining.
Kahn and Brennan’s diversity combining (1954-1959)
Information and capacity#
Signalling rate and pulse shaping, entropy, source coding and channel capacity.
Nyquist’s signalling rate: 2B pulses per second (1928)
Hartley’s law: information grows with the logarithm of the levels (1928)
Shannon’s entropy and the binary symmetric channel (1948)
The Shannon-Hartley capacity of a noisy band-limited channel (1949)
Nyquist’s ISI criterion: raised-cosine pulses (1928)
Modulation#
Amplitude, suppressed-carrier and frequency modulation, and their noise performance.
Armstrong’s wideband FM and Carson’s bandwidth rule (1933-1936)
Multiplexing#
Orthogonal frequency-division multiplexing.
OFDM: many subcarriers from one inverse DFT (1966-1971)
Noise#
Thermal noise and the noise factor of receiver chains.
Friis’s noise formula for cascaded amplifiers (1944)
Propagation#
Wavelength, free-space path loss and link budgets.
Hertz’s electromagnetic waves and their wavelength (1887-1888)