Class FieldSignalTravelTimeAdjustableReceiver<T extends CalculusFieldElement<T>>


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

      • C_RECIPROCAL

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

      • FieldSignalTravelTimeAdjustableReceiver

        public FieldSignalTravelTimeAdjustableReceiver​(FieldPVCoordinatesProvider<T> adjustableReceiverPVProvider)
        Constructor with default iteration settings.
        Parameters:
        adjustableReceiverPVProvider - adjustable receiver
      • FieldSignalTravelTimeAdjustableReceiver

        public FieldSignalTravelTimeAdjustableReceiver​(FieldPVCoordinatesProvider<T> adjustableReceiverPVProvider,
                                                       ConvergenceChecker<T> convergenceChecker)
        Constructor.
        Parameters:
        adjustableReceiverPVProvider - adjustable receiver
        convergenceChecker - convergence checker for fixed-point algorithm
    • Method Detail

      • computeDelay

        public T computeDelay​(FieldVector3D<T> emitterPosition,
                              FieldAbsoluteDate<T> 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 T computeDelay​(FieldVector3D<T> emitterPosition,
                              FieldAbsoluteDate<T> emissionDate,
                              FieldAbsoluteDate<T> 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 T computeShift​(T offset,
                                 T delay)
        Computes the time shift.
        Parameters:
        offset - time offset
        delay - time delay
        Returns:
        time shift to use in computation
      • getConvergenceChecker

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

        protected T compute​(FieldPVCoordinatesProvider<T> pvCoordinatesProvider,
                            T initialOffset,
                            FieldVector3D<T> fixedPosition,
                            FieldAbsoluteDate<T> 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