Class SignalTravelTimeAdjustableReceiver


  • public class SignalTravelTimeAdjustableReceiver
    extends Object
    Class for computing signal time of travel with an adjustable receiver and fixed emitter's position. The delay is calculated via a fixed-point algorithm with customizable settings (even enabling instantaneous transmission).
    Since:
    14.0
    Author:
    Romain Serra
    • Field Detail

      • C_RECIPROCAL

        protected static final double C_RECIPROCAL
        Reciprocal for light speed.
        See Also:
        Constant Field Values
      • DEFAULT_MAX_ITER

        protected static final int DEFAULT_MAX_ITER
        Maximum number of iterations.
        See Also:
        Constant Field Values
    • Constructor Detail

      • SignalTravelTimeAdjustableReceiver

        public SignalTravelTimeAdjustableReceiver​(PVCoordinatesProvider adjustableReceiverPVProvider)
        Constructor.
        Parameters:
        adjustableReceiverPVProvider - adjustable receiver
      • SignalTravelTimeAdjustableReceiver

        public SignalTravelTimeAdjustableReceiver​(PVCoordinatesProvider adjustableReceiverPVProvider,
                                                  ConvergenceChecker<Double> checker)
        Constructor.
        Parameters:
        adjustableReceiverPVProvider - adjustable receiver
        checker - convergence checker for fixed-point algorithm
    • Method Detail

      • computeDelay

        public double computeDelay​(Vector3D emitterPosition,
                                   AbsoluteDate emissionDate,
                                   Frame frame)
        Compute propagation delay on a link leg (typically downlink or uplink) without custom guess.
        Parameters:
        emitterPosition - fixed position of emitter
        emissionDate - emission date
        frame - inertial frame in which emitter is defined
        Returns:
        positive delay between signal emission and signal reception dates
      • computeDelay

        public double computeDelay​(Vector3D emitterPosition,
                                   AbsoluteDate emissionDate,
                                   AbsoluteDate approxReceptionDate,
                                   Frame frame)
        Compute propagation delay on a link leg (typically downlink or uplink).
        Parameters:
        emitterPosition - fixed position of emitter
        emissionDate - emission date
        approxReceptionDate - approximate reception date
        frame - inertial frame in which emitter is defined
        Returns:
        positive delay between signal emission and signal reception dates
      • computeShift

        protected double computeShift​(double offset,
                                      double delay)
        Computes the time shift.
        Parameters:
        offset - time offset
        delay - time delay
        Returns:
        time shift to use in computation
      • getConvergenceChecker

        public ConvergenceChecker<Double> getConvergenceChecker()
        Getter for the convergence checker.
        Returns:
        checker
      • compute

        protected double compute​(PVCoordinatesProvider pvCoordinatesProvider,
                                 double initialOffset,
                                 Vector3D fixedPosition,
                                 AbsoluteDate guessDate,
                                 Frame frame)
        Compute propagation delay on a link leg (typically downlink or uplink). The max. iteration number and convergence checker can be tweaked to emulate no-delay a.k.a. instantaneous transmission.
        Parameters:
        pvCoordinatesProvider - adjustable emitter/receiver
        initialOffset - guess for the time off set
        fixedPosition - fixed receiver/emitter position
        guessDate - guess for emission/reception date
        frame - Inertial frame in which receiver/emitter is defined.
        Returns:
        positive delay between signal emission and signal reception dates