Skip to content

Component reference

Every component implements propagate_signal(signal_power, noise_power) and is importable directly from linkbudget. name and description come first (positional in most, keyword-with-default in a few — check the signature).

Sources and gains

Component Purpose Key arguments
SignalSource Inject signal and/or noise power (a transmitter, or a noise source) signal_power, noise_power (linear, added to the chain)
Gain Apply a gain/loss to both signal and noise gain, db=True, role=None ("tx"/"rx")
RFComponent Generic gain block with a noise figure (an amplifier) gain (dB), noise_figure (dB), noise_bandwidth (Hz, opt-in Friis)
NoiseFigure Add the noise of a noise-figure stage; signal unchanged noise_figure (dB), noise_bandwidth (Hz, opt-in Friis)
ArrayFactor Array gain from element count num_elements, role=None
Integrate Coherent integration: signal ×timespan, noise unchanged timespan

Path loss (tagged is_propagation)

Component Purpose Key arguments
FreeSpacePathLoss Free-space path loss distance (m), frequency (Hz)
RadarPathLoss Two-way radar path loss in one step distance or tx_distance+rx_distance, frequency, rcs_db
RadarPathLossOneWay One calibrated leg of a two-way radar path distance (m), frequency (Hz)
RadarCrossSection RCS scaling as a plain dB multiplier rcs_db (dB rel. 1 m²)
AtmosphericAbsorption ITU-R P.676 gaseous absorption frequency, path_length_km or elevation_deg
RainAttenuation ITU-R P.838 / P.618 rain frequency, rain_rate, path_length_km or slant-path args
CloudFogAttenuation ITU-R P.840 cloud / fog frequency, liquid_water_path or liquid_water_density+path_length_km
TroposphericScintillation ITU-R P.618 §2.4.1 scintillation frequency, elevation_deg, antenna_diameter
TwoRayGroundReflection Plane-earth two-ray (terrestrial) distance, tx_height, rx_height, frequency

See Propagation models for details and validity ranges.

Antennas

Component Purpose Key arguments
ParabolicDish Dish gain + beamwidth from geometry diameter, frequency, efficiency, role=None
BeamPointingLoss Pointing loss from beamwidth + error pointing_error_deg, half_power_beamwidth_deg or diameter+frequency
PolarizationMismatchLoss Loss from axial ratios + tilt axial_ratio_db_tx, axial_ratio_db_rx, tilt_angle_deg
AntennaNoiseTemperature Antenna noise floor: sky + ground pickup + ohmic loss sky_temp_k, ground_coupling, radiation_efficiency, bandwidth

See Antenna models.

Losses

Component Purpose Key arguments
ImplementationLoss Aggregate implementation margin loss (signal only) cable_loss_db, pointing_loss_db, polarization_loss_db, other_loss_db
CableLoss ImplementationLoss with just a cable term loss_db
PointingLoss ImplementationLoss with just a pointing term loss_db
PolarizationLoss ImplementationLoss with just a polarization term loss_db

ImplementationLoss attenuates the signal only. For a physical attenuator that reduces signal and noise together, use a negative-dB Gain.

Frequency conversion and digitisation

Component Purpose Key arguments
Mixer Up/down-conversion, conversion loss, noise figure, image noise lo_frequency, rf_frequency, conversion_loss_db, mode, noise_figure_db, image_reject_db, noise_bandwidth
SubBandTune Filter/retune to a sub-band, reducing signal and noise bandwidth band-edge frequencies (Hz)
QuantizationNoise Add quantization noise from bit depth + headroom total_bits, headroom_db
AnalogToDigitalConverter Buffer gain/NF then quantization noise, in one step gain_db, noise_figure_db, total_bits, headroom_db, sample_rate, noise_bandwidth
DigitalToAnalogConverter Quantization noise then output driver gain/NF total_bits, headroom_db, gain_db, noise_figure_db, sample_rate, noise_bandwidth

Noise floor and analysis

Component Purpose Key arguments
ThermalNoise Physical thermal noise floor k·T·B (watts) temperature_k (default 290), bandwidth (Hz)
AntennaNoiseTemperature Antenna noise floor from sky + ground + ohmic loss sky_temp_k, ground_temp_k, ground_coupling, radiation_efficiency, bandwidth
LinkMargin Compare achieved link vs a requirement; report closure one of required_ebno_db / required_esno_db / required_cn_db / required_snr_db

By default the noise-figure stages use a scale-free N_out = N_in · G · F, in which a stage's noise figure hurts the SNR by the same amount wherever it sits in the chain. Pass a noise_bandwidth (Hz) to RFComponent / NoiseFigure / Mixer to switch to the Friis added-noise form N_out = (N_in + (F − 1)·k·T₀·B)·G, where the excess noise is referred to the stage input and a noisy late stage is suppressed by all the preceding gain. This is an absolute power (watts), so use it with a ThermalNoise or AntennaNoiseTemperature floor. See Noise modelling.

See Figures of merit & link margin.