Program Listing for File comms_utils.h

Return to documentation for file (measurements/comms_utils.h)

#pragma once

#include "lupnt/core/definitions.h"

namespace lupnt {

  struct DllParams {
    Real B_dll;  // [Hz] Bandwidth
    Real T_i;    // [s] Coherent integration time
    Real d;      // [chip] Chip duration
    Real Tc;     // [s] Spread code period
    Real B_fe;   // [Hz] Front-end bandwidth
  };

  struct PllParams {
    Real B_pll;  // [Hz] Bandwidth
    Real T_i;    // [s] Coherent integration time
  };

  struct FllParams {
    Real B_fll;      // [Hz] Bandwidth
    Real T_i;        // [s] Coherent integration time
    Real CN0_F_fll;  // [dB-Hz] CN0 limit for low F
  };

  Real SigmaDll(const DllParams& params, Real CN0_w);

  Real SigmaPll(const PllParams& params, Real CN0_w);

  Real SigmaFll(const FllParams& params, Real CN0_w);

  ArrX SigmaDll(const DllParams& params, const ArrX& CN0_w);
  ArrX SigmaPll(const PllParams& params, const ArrX& CN0_w);
  ArrX SigmaFll(const FllParams& params, const ArrX& CN0_w);

  Real FreeSpacePathLoss(Real dist, Real freq);

  ArrX FreeSpacePathLoss(const ArrX& dist, Real freq);

  Real ParabolicAntennaGain(Real phi, Real hpbw, Real G_max);

  ArrX ParabolicAntennaGain(const ArrX& phi, Real hpbw, Real G_max);

}  // namespace lupnt