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.

Friis’s effective aperture: gain and area (1946)

Friis's effective aperture: gain and area (1946)

Carter’s half-wave dipole (1932)

Carter's half-wave dipole (1932)

Coding#

Channel codes: Hamming’s block code, cyclic redundancy checks, and convolutional codes with Viterbi decoding.

Hamming’s single-error-correcting code (1950)

Hamming's single-error-correcting code (1950)

Elias’s convolutional codes (1955)

Elias's convolutional codes (1955)

Peterson and Brown’s cyclic redundancy check (1961)

Peterson and Brown's cyclic redundancy check (1961)

Viterbi’s decoding algorithm (1967)

Viterbi's decoding algorithm (1967)

Decibels#

Logarithmic power ratios.

The decibel: the Bell System’s transmission unit (1924-1929)

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)

Kotel'nikov's optimum receiver: BPSK in white Gaussian noise (1947)

Quadrature modulation: QPSK doubles the rate at the same error rate (1960)

Quadrature modulation: QPSK doubles the rate at the same error rate (1960)

North’s matched filter (1943)

North's matched filter (1943)

Cahn’s M-ary phase-shift keying (1959)

Cahn's M-ary phase-shift keying (1959)

Campopiano and Glazer’s square QAM (1962)

Campopiano and Glazer's square QAM (1962)

Digitization#

Pulse-code modulation and delta modulation: turning a waveform into bits.

Reeves’s pulse-code modulation (1937-1938)

Reeves's pulse-code modulation (1937-1938)

Delta modulation (1946-1952)

Delta modulation (1946-1952)

Fading#

Rayleigh fading from many scattered paths, and diversity combining.

Rayleigh’s sum of random phasors (1880)

Rayleigh's sum of random phasors (1880)

Kahn and Brennan’s diversity combining (1954-1959)

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)

Nyquist's signalling rate: 2B pulses per second (1928)

Hartley’s law: information grows with the logarithm of the levels (1928)

Hartley's law: information grows with the logarithm of the levels (1928)

Shannon’s entropy and the binary symmetric channel (1948)

Shannon's entropy and the binary symmetric channel (1948)

The Shannon-Hartley capacity of a noisy band-limited channel (1949)

The Shannon-Hartley capacity of a noisy band-limited channel (1949)

Nyquist’s ISI criterion: raised-cosine pulses (1928)

Nyquist's ISI criterion: raised-cosine pulses (1928)

Huffman’s minimum-redundancy code (1952)

Huffman's minimum-redundancy code (1952)

Modulation#

Amplitude, suppressed-carrier and frequency modulation, and their noise performance.

Fessenden’s amplitude modulation (1906)

Fessenden's amplitude modulation (1906)

Carson’s suppressed-carrier modulation (1915)

Carson's suppressed-carrier modulation (1915)

Armstrong’s wideband FM and Carson’s bandwidth rule (1933-1936)

Armstrong's wideband FM and Carson's bandwidth rule (1933-1936)

Crosby’s noise analysis of FM against AM (1937)

Crosby's noise analysis of FM against AM (1937)

Multiplexing#

Orthogonal frequency-division multiplexing.

OFDM: many subcarriers from one inverse DFT (1966-1971)

OFDM: many subcarriers from one inverse DFT (1966-1971)

Noise#

Thermal noise and the noise factor of receiver chains.

Johnson-Nyquist thermal noise (1928)

Johnson-Nyquist thermal noise (1928)

Friis’s noise formula for cascaded amplifiers (1944)

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)

Hertz's electromagnetic waves and their wavelength (1887-1888)

The Friis transmission formula (1946)

The Friis transmission formula (1946)

The Telstar satellite link budget (1962)

The Telstar satellite link budget (1962)

Gallery generated by Sphinx-Gallery