Program Listing for File comm_utils.h

Return to documentation for file (include/lupnt/measurements/comm_utils.h)

#pragma once

namespace lupnt {

  enum Modulation {
    Residual,  // Residual carrier
    // Suppressed carrier
    BPSK,     // Binary Phase Shift Keying
    QPSK,     // Quadrature Phase Shift Keying
    OQPSK,    // Offset Quadrature Phase Shift Keying
    GMSK,     // Gaussian Minimum Shift Keying
    GMSK_PN,  // GMSK with PN modulation
  };

  enum FrequencyBand { UHF, L, S, Cband, X, Ku, K, Ka };

  double ComputeBER(double EbN0, Modulation modulation_type);

  double ComputeEsN0(double EbN0, double modulation_order, double coding_rate);

  double BitsPerSymbol(Modulation modulation_type);
  FrequencyBand GetFrequencyBand(double f);

  double GetTransponderTurnAroundRatio(FrequencyBand fbu, FrequencyBand fbd);

  double ComputeCarrierLoopSNR(double PT_N0, double B_L_carrier, double T_s,
                               Modulation modulation_type, double m_R);

}  // namespace lupnt