Skip to content

linkbudget

A small Python library for building RF / communications link budgets.

You chain together a series of components — signal sources, path loss, gains, noise figures, antennas, atmospheric losses — and the library propagates signal and noise power through the chain, computing gain and SNR at every stage. From there it derives the standard figures of merit (EIRP, G/T, C/N₀, E​b/N₀) and a link-margin verdict, and can publish the result to the console, a PDF / HTML / Markdown report, or a waterfall plot.

import linkbudget

budget = linkbudget.LinkContainer(noise_bandwidth=2e6, data_rate=1e6)

budget.add_component(linkbudget.SignalSource(
    "Transmitter", "1 W output", signal_power=1.0))
budget.add_component(linkbudget.FreeSpacePathLoss(
    "Path loss", "10 km at 2.4 GHz", distance=10e3, frequency=2.4e9))
budget.add_component(linkbudget.Gain(
    "Rx antenna", "dish gain", gain=25.0, role="rx"))
budget.add_component(linkbudget.ThermalNoise(
    "Noise floor", "290 K receiver", temperature_k=290.0, bandwidth=2e6))
budget.add_component(linkbudget.LinkMargin(
    "Margin", "required Eb/N0 = 6 dB",
    required_ebno_db=6.0, noise_bandwidth=2e6, data_rate=1e6))

print(budget.summary())

What it does

Where to go next