Channels - ephemerista.comms.channels

The channels.py module.

This module provides the Channel class which models a radio communications channel.

pydantic model ephemerista.comms.channels.Channel

The Channel class.

Fields:
field channel_id: Annotated[UUID] [Optional] (alias 'id')
Constraints:
  • uuid_version = 5

field data_rate: float [Required] (alias 'dataRate')
field forward_error_correction: float = 0.5 (alias 'forwardErrorCorrection')
field margin: float [Required]
field modulation: Literal['BPSK', 'QPSK', '8PSK', '16QAM', '32QAM', '64QAM', '128QAM', '256QAM'] [Required]
field name: str = 'Default Channel'

The name of the channel

field required_eb_n0: float [Required] (alias 'requiredEbN0')
field roll_off: float = 1.5 (alias 'rollOff')
bit_energy_to_noise_density(tx, rx, losses, rng, tx_angle, rx_angle)

Calculate Eb/N0.

This method calculates the energy per bit to noise power spectral density ratio for a link between a transmitting CommunicationSystem and a receiving CommunicationSystem on this channel.

Parameters:
  • tx (CommunicationSystem) – The TX communication system.

  • rx (CommunicationSystem) – The RX communication system.

  • losses (float) – The sum of the environmental losses

  • rng (float) – The slant range in meters.

  • tx_angle (float) – The angle between the transmitter antenna’s boresight vector and the transmitter-receiver vector in radians.

  • rx_angle (float) – The angle between the receiver antenna’s boresight vector and the receiver-transmitter vector in radians.

Returns:

The energy per bit to noise power spectral density ratio Eb/N0 in dB.

Return type:

float

bit_energy_to_noise_interference_density(tx, rx, losses, rng, tx_angle, rx_angle, bandwidth, interference_power_w)

Calculate the energy per bit to noise and interference power spectral density Eb/(N0+I0).

Parameters:
  • tx (CommunicationSystem) – The TX communication system.

  • rx (CommunicationSystem) – The RX communication system.

  • losses (float) – The sum of the environmental losses

  • rng (float) – The slant range in meters.

  • tx_angle (float) – The angle between the transmitter antenna’s boresight vector and the transmitter-receiver vector in radians.

  • rx_angle (float) – The angle between the receiver antenna’s boresight vector and the receiver-transmitter vector in radians.

  • bandwidth (float) – The channel’s bandwidth in Hz.

  • interference_power_w (float) – The interference power in W.

Returns:

The energy per bit to noise and interference power spectral density Eb/(N0+I0) in dB.

Return type:

float

bits_per_symbol()

Return the required bits per symbol for the channel’s modulation scheme.

Returns:

The number of bits per symbol corresponding to the channels’ modulation scheme.

Return type:

int

property bandwidth: float

bandwidth of the channel in Hz.

Type:

float