Skip to main content
Ctrl+K
engineeringkit logo engineeringkit logo
  • Subpackages
  • History
  • Examples
  • API
  • Charles Poli
  • Subpackages
  • History
  • Examples
  • API
  • Charles Poli

Section Navigation

  • Examples
    • Beams
    • Cables and arches
    • Energy methods
    • Frames
    • Members
    • Plasticity
    • Shear and sections
    • Stability
    • Stress
    • Trusses
    • Pressure vessels
  • Examples
    • Dynamics
    • Machine elements
    • Mechanisms
    • Rotordynamics
    • Transmission
    • Vibration
  • Examples
    • Combustion
    • Cycles
    • Exergy
    • Laws
    • Properties
    • Psychrometrics
    • Refrigeration
  • Examples
    • Drag
    • Hydrostatics
    • Measurement
    • Momentum
    • Networks
    • Open channels
    • Pipe flow
    • Pumps
    • Similarity
    • Transients
    • Viscous flow
  • Examples
    • Conduction
    • Convection
    • Heat exchangers
    • Phase change
    • Radiation
    • Transient conduction
  • Examples
    • Airfoils
    • Standard atmosphere
    • Boundary layers
    • Circulation
    • Compressible flow
    • Forces and coefficients
    • Performance
    • Finite wings
  • Examples
    • AC circuits
    • DC circuits
    • Electronics
    • Machines
    • Networks
    • Power
    • Transients
    • Transmission lines
  • Examples
    • Feedback
    • Frequency response
    • Nonlinear loops
    • Optimal control and estimation
    • Root locus
    • Sampled-data control
    • Stability
    • State space
    • Time response
  • Examples
    • Filters
    • Fourier analysis
    • Sampling
    • Spectral analysis
    • Wavelets
  • Examples
    • Antennas
    • Coding
    • Decibels
    • Detection
    • Digitization
    • Fading
    • Information and capacity
    • Modulation
    • Multiplexing
    • Noise
    • Propagation
  • Examples
    • Composites
    • Creep
    • Crystals
    • Diffusion
    • Elasticity
    • Fatigue
    • Fracture
    • Hardness
    • Phases
    • Plasticity
    • Yield
  • Examples
    • Accelerated life testing
    • Growth
    • Life data
    • Lifetimes
    • Maintenance
    • Risk
    • Structural reliability
    • Systems
  • Tutorials
    • A beam from load to fatigue life
    • A feedback loop in the time and frequency domains
    • A power plant from cycle to cooling tower
    • A radio link from antenna to bit errors
  • Exercises
    • Structural engineering exercises
    • Mechanical engineering exercises
    • Thermodynamics exercises
    • Fluid engineering exercises
    • Heat transfer exercises
    • Aerodynamics exercises
    • Electrical engineering exercises
    • Control systems exercises
    • Signal processing exercises
    • Communications exercises
    • Materials exercises
    • Reliability exercises
  • Installation and quickstart
  • Numerical methods and inspectable histories
  • Structural engineering: loads, signs and linear elasticity
  • Mechanical engineering: power, vibration and mechanism geometry
  • Thermodynamics: total versus specific quantities and cycle states
  • Fluid engineering: flow regimes and signed quantities
  • Heat transfer: absolute temperatures and resistance accounting
  • Aerodynamics: incompressible limits and compressible conservation
  • Electrical engineering: passive components and circuit responses
  • Control systems: matrix contracts and numerical stability
  • Signal processing: sampled energy, spectra and quantization
  • Communications: linear ratios, modulation phase and channel scope
  • Materials: structure, elasticity, yield, fatigue, fracture and creep conventions
  • Reliability: distributions, independence and rate units
  • Examples
  • Examples
  • Propagation
  • The Telstar satellite link budget (1962)

Note

Go to the end to download the full example code or to run this example in your browser via JupyterLite.

The Telstar satellite link budget (1962)#

Telstar 1 (1962) relayed the first live transatlantic television. Engineers planned such links with a link budget: transmitter power, antenna gains, path loss and miscellaneous losses added in decibels (link_budget_db()), then compared with the receiver noise floor. The figures below are representative of the 4 GHz Andover-Telstar downlink, not archival values.

import matplotlib.pyplot as plt
import numpy as np

from engineeringkit.communications import (
    db,
    dbm,
    free_space_path_loss_db,
    friis_received_power,
    from_dbm,
    link_budget_db,
    thermal_noise_power,
)

Budget at the closest and farthest points of the orbit#

pt_w, gt, gr, f = 2.25, 1.0, 10 ** (58 / 10), 4.17e9
bandwidth, t_sys = 25e6, 60.0
noise_dbm = float(dbm(thermal_noise_power(bandwidth, t_sys)))
ranges = np.linspace(1000e3, 6000e3, 60)
received = link_budget_db(float(dbm(pt_w)), float(db(gt)), float(db(gr)), free_space_path_loss_db(ranges, f), losses_db=3.0)
assert np.allclose(from_dbm(received + 3.0), friis_received_power(pt_w, gt, gr, ranges, f))
for r, p in [(ranges[0], received[0]), (ranges[-1], received[-1])]:
    print(f"range {r / 1e3:5.0f} km: received {p:6.1f} dBm, SNR {p - noise_dbm:5.1f} dB")
range  1000 km: received  -76.3 dBm, SNR  30.5 dB
range  6000 km: received  -91.9 dBm, SNR  14.9 dB

The decibel ledger#

items = {
    "Pt": float(dbm(pt_w)),
    "Gt": float(db(gt)),
    "Gr": float(db(gr)),
    "path loss": -float(free_space_path_loss_db(ranges[-1], f)),
    "other": -3.0,
}
fig, axes = plt.subplots(1, 2, figsize=(10, 3.6))
running = np.cumsum(list(items.values()))
axes[0].bar(list(items), list(items.values()), bottom=np.r_[0, running[:-1]], color=["C0", "C2", "C2", "C3", "C3"])
axes[0].axhline(noise_dbm, color="k", ls="--", label="noise floor")
axes[0].set(ylabel="level [dBm]", title=f"Downlink at {ranges[-1] / 1e3:.0f} km")
axes[0].legend()
axes[1].plot(ranges / 1e3, received - noise_dbm)
axes[1].set(xlabel="slant range [km]", ylabel="SNR [dB]", title="SNR over the pass")
fig.tight_layout()

plt.show()
Downlink at 6000 km, SNR over the pass

Total running time of the script: (0 minutes 0.210 seconds)

Launch JupyterLite

Download Jupyter notebook: plot_03_telstar_link_budget.ipynb

Download Python source code: plot_03_telstar_link_budget.py

Download zipped: plot_03_telstar_link_budget.zip

Gallery generated by Sphinx-Gallery

previous

The Friis transmission formula (1946)

next

Examples

On this page
  • Budget at the closest and farthest points of the orbit
  • The decibel ledger
Show Source

Created using Sphinx 9.1.1.

Built with the PyData Sphinx Theme 0.24.0.