Spacecraft Control Framework 1.0
Spacecraft Control Library
Functions
sc_link.h File Reference

Link functions. More...

Go to the source code of this file.

Functions

double max_channel_rate (double bandwidth, double sn_ratio)
 Maximum channel rate. More...
 
double moon_noise_temperature ()
 Moon link noise temperature. More...
 
double earth_noise_temperature ()
 Earth link noise temperature. More...
 
double sun_noise_temperature (double f)
 Sun link noise temperature. More...
 
double receiver_temperature (double tA, double lFRX, double tF, double tERX)
 Receiver input temperature. More...
 
double attenuator_temperature (double t, double loss)
 Attenuator temperature. More...
 
double bit_error_probability (int type, double bitRate, double cOverN)
 Bit error probability. More...
 
double dipole_antenna_gain ()
 Gain of a dipole antenna. More...
 
double signal_gain_to_db (double gain)
 Convert gain to db for a signal. More...
 
double db_to_signal_gain (double db)
 Convert db to gain for a signal. More...
 
double noise_temperature_to_power (double t, double b)
 Convert noise temperature to power. More...
 
double eirp (double antenna_gain, double power_transmit, double feed_loss)
 EIRP. More...
 
double antenna_beam_width (double antenna_diameter, double frequency)
 Antenna beam width. More...
 
double signal_power (double eirp, double wavelength, double distance, double receive_gain)
 Signal power. More...
 
double antenna_gain (double efficiency, double frequency, double antenna_diameter)
 Antenna gain. More...
 
double energy_per_bit_per_noise_power_density (double c_over_n0, double channel_data_rate)
 Energy per bit per noise power density. More...
 
double c_over_n (double eirp, double path_loss, double g_over_t, double bandwidth)
 Carrier to noise ratio. More...
 
double c_over_n0 (double eirp, double path_loss, double g_over_t, double margin=0)
 Carrier to noise ratio per unit bandwidth. More...
 
int message_success (int guard_bits, int bits, double range, double freq, double g_over_t, double eirp, double channel_data_rate)
 Message success. More...
 
double loss_free_space (double range, double frequency)
 Free space loss. More...
 
double g_over_t (double gain, double antenna_temperature)
 Gain to temperature ratio. More...
 
double c_over_n_total (const ml_matrix &c_over_n)
 C/N total. More...
 
int link_visibility (const ml_matrix &r_gs, const ml_matrix &r_sat, double min_angle=0)
 1 if the ground station can see the satellite More...
 

Detailed Description

Link functions.

Function Documentation

◆ max_channel_rate()

double max_channel_rate ( double  bandwidth,
double  sn_ratio 
)

Maximum channel rate.

Maximum channel rate.

Parameters
bandwidthBandwidth (Hz)
sn_ratioSignal to noise ratio
Returns
Maximum channel rate (bps)

◆ moon_noise_temperature()

double moon_noise_temperature ( )

Moon link noise temperature.

Moon link noise temperature.

Returns
noise temperature (deg-K)

◆ earth_noise_temperature()

double earth_noise_temperature ( )

Earth link noise temperature.

Earth link noise temperature.

Returns
noise temperature (deg-K)

◆ sun_noise_temperature()

double sun_noise_temperature ( double  f)

Sun link noise temperature.

Sun link noise temperature.

Parameters
fFrequency (GHz)
Returns
Noise temperature (deg-K)

◆ receiver_temperature()

double receiver_temperature ( double  tA,
double  lFRX,
double  tF,
double  tERX 
)

Receiver input temperature.

Receiver input temperature.

tA is the ambient temperature of the antenna and tERX is the receiver noise temperature. tF is the feeder noise temperature. This function combines them to compute the noise temperature at the input.

Parameters
tA(1,1) Antenna temperature (deg-K)
lFRX(1,1) Feeder loss (dB)
tF(1,1) Feeder temperature (deg-K)
tERX(1,1) Receiver temperature (deg-K)
Returns
noise temperature (deg-K)

◆ attenuator_temperature()

double attenuator_temperature ( double  t,
double  loss 
)

Attenuator temperature.

Attenuator temperature.

t is the ambient temperature of the attenuator and loss is the effective input noise temperature.

Parameters
t(1,1) Ambient temperature of the attenuator
loss(1,1) Loss (dB)
Returns
Effective input noise temperature (deg-K)

◆ bit_error_probability()

double bit_error_probability ( int  type,
double  bitRate,
double  cOverN 
)

Bit error probability.

Bit error probability.


Parameters
type(1,1) 0 = 'BPSK' 1 = 'QPSK' 2 = 'DE-BPSK' 3 = 'DE-QPSK' 4 = 'D-BPSK'
bitRate(1,1) Bits/second
cOverN(1,1) (C/N)T (dB)
Returns
bit error probability

Referenced by message_success().

◆ dipole_antenna_gain()

double dipole_antenna_gain ( )

Gain of a dipole antenna.

Gain of a dipole antenna.

Returns
gain

References signal_gain_to_db().

◆ signal_gain_to_db()

double signal_gain_to_db ( double  gain)

Convert gain to db for a signal.

Parameters
gain
Returns
gain in db

Referenced by antenna_gain(), c_over_n(), dipole_antenna_gain(), energy_per_bit_per_noise_power_density(), g_over_t(), and signal_power().

◆ db_to_signal_gain()

double db_to_signal_gain ( double  db)

Convert db to gain for a signal.

Parameters
gainin db
Returns
gain

◆ noise_temperature_to_power()

double noise_temperature_to_power ( double  t,
double  b 
)

Convert noise temperature to power.

Convert noise temperature to power.

Parameters
tTemperature (deg-K)
bBandwidth (Hz)
Returns
noise power (W)

◆ eirp()

double eirp ( double  antenna_gain,
double  power_transmit,
double  feed_loss 
)

EIRP.

EIRP.

Parameters
antenna_gain(dB)
power_transmit(dB)
feed_loss(dB)
Returns
eirp (dB)

References antenna_gain().

Referenced by c_over_n(), c_over_n0(), message_success(), and signal_power().

◆ antenna_beam_width()

double antenna_beam_width ( double  antenna_diameter,
double  frequency 
)

Antenna beam width.

Antenna beam width.

Parameters
antenna_diameter(m)
frequency(Hz))
Returns
theta_3db

References SPEED_OF_LIGHT.

◆ signal_power()

double signal_power ( double  eirp,
double  wavelength,
double  distance,
double  receive_gain 
)

Signal power.

Signal power.

Parameters
eirp(dB)
wavelength(same units as distance);
distance(same units as wavelength)
receive_gain(dB)
Returns
signal power (dB)

References eirp(), PI, and signal_gain_to_db().

◆ antenna_gain()

double antenna_gain ( double  efficiency,
double  frequency,
double  antenna_diameter 
)

Antenna gain.

Antenna gain.

Parameters
efficiency
frequency(Hz)
antenna_diameter(m
Returns
antenna gain (dB)

References PI, signal_gain_to_db(), and SPEED_OF_LIGHT.

Referenced by eirp().

◆ energy_per_bit_per_noise_power_density()

double energy_per_bit_per_noise_power_density ( double  c_over_n,
double  channel_data_rate 
)

Energy per bit per noise power density.

Energy per bit per noise power density.

Parameters
c_over_nC/N (dB)
channel_data_rateNet bitrate
Returns
Eb/N0 (dB)

References c_over_n(), and signal_gain_to_db().

◆ c_over_n()

double c_over_n ( double  eirp,
double  path_loss,
double  g_over_t,
double  bandwidth 
)

Carrier to noise ratio.

Carrier to noise ratio.

Parameters
eirpEffective Isotropic Radiated Power
g_over_tGain to system noise temperature (db/K)
bandwidthBandwidth (Hz)
Returns
Carrier to noise ratio (dB)

References eirp(), g_over_t(), and signal_gain_to_db().

Referenced by c_over_n_total(), and energy_per_bit_per_noise_power_density().

◆ c_over_n0()

double c_over_n0 ( double  eirp,
double  path_loss,
double  g_over_t,
double  margin 
)

Carrier to noise ratio per unit bandwidth.

Carrier to noise ratio per unit bandwidth.

Parameters
eirpEffective Isotropic Radiated Power
path_lossPath loss (dB)
g_over_tG/T of transmitter (dB)
marginLink margin (dB)
Returns
Carrier to noise ratio (dB)

References eirp(), and g_over_t().

Referenced by message_success().

◆ message_success()

int message_success ( int  guard_bits,
int  bits,
double  range,
double  frequency,
double  g_over_t,
double  eirp,
double  channel_data_rate 
)

Message success.

Message success.


Parameters
guard_bits(1,1) Number of guard bits
bits(1,1) Bits in message
range(1,1) Range (km)
frequency(1,1) Frequency (GHz)
g_over_t(1,1) G/T (dB)
eirp(1,1) EIRP (dB)
channel_data_rate(1,1) Channel data rate bps
Returns
1 if the message was successfully received

References bit_error_probability(), c_over_n0(), eirp(), g_over_t(), and loss_free_space().

◆ loss_free_space()

double loss_free_space ( double  range,
double  frequency 
)

Free space loss.

Free space loss.

Parameters
range(1,1) Range (km)
frequency(1,1) Frequency (GHz)
Returns
loss (dB)

References PI.

Referenced by message_success().

◆ g_over_t()

double g_over_t ( double  gain,
double  antenna_temperature 
)

Gain to temperature ratio.

Parameters
gain(1,1) Gain (dB)
antenna_temperature(1,1) antenna temperature (deg-K)
Returns
G/T

References signal_gain_to_db().

Referenced by c_over_n(), c_over_n0(), and message_success().

◆ c_over_n_total()

double c_over_n_total ( const ml_matrix &  c_over_n)

C/N total.

C/N total.

Parameters
c_over_n(1,n) C/N or C/I
Returns
total c/n

References c_over_n().

◆ link_visibility()

int link_visibility ( const ml_matrix &  r_gs,
const ml_matrix &  r_sat,
double  min_angle 
)

1 if the ground station can see the satellite

1 if the ground station can see the satellite

Parameters
r_gsVector to the ground station
r_satVector to the satellite
min_angleMinimum elevation angle
Returns
total c/n

References PI.