Single Target Radar Link Scalars
Single target radar link scalars are used to compute radar metrics such as "Integrated Signal-to-Noise Ratio" and "Probability-of-Detection" for a single target. All single target radar link scalars derive from the SingleTargetRadarLinkScalar base class.
The functionality described in this topic requires a license for the Radar Library and the Communications Library.
Below is a complete list of the single target radar link scalar types provided by the library:
TransmitterToTargetReceivedIsotropicPowerScalar - computes the received isotropic power at the radar target.
TransmitterToTargetPropagationLossScalar - computes the total propagation loss for the forward link (transmitter to radar target) for the intended radar signal.
TransmitterToTargetDopplerShiftScalar - computes the doppler shift of the intended radar signal at the radar target.
TransmitterToTargetDopplerFrequencyScalar - computes the doppler shifted frequency of the intended radar signal at the radar target.
TransmitAntennaGainScalar - computes the transmit antenna gain in the direction of the radar target.
TargetToReceiverReceivedIsotropicPowerScalar - computes the received isotropic power at the radar receiver.
TargetToReceiverPropagationLossScalar - computes the total propagation loss for the return link (radar target to receiver) for the intended radar signal.
TargetToReceiverDopplerShiftScalar - computes the doppler shift of the intended radar signal at the radar receiver.
TargetToReceiverDopplerFrequencyScalar - computes the doppler shifted frequency of the intended radar signal at the radar receiver.
TargetScatteredPowerScalar - computes the scattered power of the intended incident radar signal in the direction of the radar receiver.
TargetRadarCrossSectionScalar - computes the radar cross section of the target.
SignalToNoiseRatioScalar - computes the signal-to-noise ratio at the output of the radar receiver. Depending on how the scalar is constructed, it can compute the single pulse signal-to-noise ratio, integrated signal-to-noise ratio, single pulse signal-to-noise plus interference ratio, or the integrated signal-to-noise plus interference ratio.
ReceiveAntennaOutputPowerScalar - computes the power of the intended radar signal at the output of the receiver radar antenna.
ReceiveAntennaOutputInterferencePowerScalar - computes the total interference power at the output of the receive radar antenna.
ReceiveAntennaGainScalar - computes the receive antenna gain in the direction of the radar target.
PulseIntegrationTimeScalar - computes the total time taken to integrate the number of pulses in the radar receiver.
MitchellWalkerProbabilityOfDetectionScalar - computes the probability of detection using the Mitchell-Walker recursive algorithm. Depending on how the scalar is constructed, it can compute the single pulse probability of detection, integrated probability of detection, single pulse probability of detection with interference, or the integrated probability of detection with interference.
IntegratedPulseCountScalar - computes the number of pulses integrated by the radar receiver.
EffectiveIsotropicRadiatedPowerScalar - computes the effective isotropic power in the direction of the radar target. It is computed as the radar transmitter power times the antenna gain in the direction of the target.
DwellTimeScalar - computes the dwell time, which is defined as the pulse integration time plus the round trip propagation time.
MonostaticAmbiguousTargetVelocityScalar - computes the ambiguous velocity of the radar target. The velocity becomes ambiguous when the true velocity to the target is greater than the unambiguous velocity computed from the pulse repetition frequency of the radar waveform.
MonostaticAmbiguousTargetRangeScalar - computes the ambiguous range to the radar target. The range becomes ambiguous when the true range to the target is greater than the unambiguous range computed from the pulse repetition frequency of the radar waveform.
At a minimum, the properly configured radar transmitter, radar target, and radar receiver platforms, as well as an IntendedSignalStrategy and a SignalPropagationGraph are required to construct an instance of each SingleTargetRadarLinkScalar type. Refer to the Signals and SignalProcessors and Radar Targets topics for more information on how to properly configure the transmitter, receiver, and target platforms. Most of the scalar types use the ISignalOutputService service to identify the output signal processor for the receiver platform. Make sure that an extension providing this service has been added to the receiver's extensions collection. (such as SignalOutputExtension)
The library also provides the following scalar types, which operate on a ProcessedRadarWaveform and therefore require the IProcessedRadarWaveformOutputService service, in order to discover the output RadarWaveformProcessor. Make sure that an extension providing this service has been added to the receiver's extensions collection. (such as ProcessedRadarWaveformOutputExtension)
Just as in the Communications Library, a IntendedSignalStrategy instance is used to identify the intended radar signal from the interference signals in the received SignalCollection. Currently, the following strategies are provided by the Communications Library:
IntendedReferenceSignal - always returns a given signal, for cases where you want to compare against a simplified reference signal.
IntendedSignalByFrequency - identifies an intended signal as the one with a frequency closest to a target frequency.
IntendedSignalByIdentifier<TIdentifier> - identifies an intended signal by looking for a user-specified object in the signal data.
IntendedSignalByModulation<TModulation> - identifies an intended signal as the one with the correct modulation and with frequency closest to a target frequency.
You can also create your own strategy by extending IntendedSignalStrategy.
Each of the scalars listed above provides a getEvaluator. method which returns a ScalarEvaluator. When evaluating, keep in mind that the time passed represents the time at which the pulsed waveform is transmitted. The scalar value returned, however, is computed at the time of pulsed waveform reception, including any light time delays from the transmitter to the target and from the target to the receiver.
The SignalPropagationGraph must contain at least two links, one representing the forward link from the radar transmitter to the target and one representing the return link from the target back to the radar receiver. Additionally, the signal graph can contain links from interference sources to the radar receiver, for modeling interference or jamming.
JulianDate analysisStart = new JulianDate(new GregorianDate(2016, 2, 22, 17, 0, 0)); JulianDate analysisEnd = analysisStart.addMinutes(20); //Construct the SingleTargetRadarLinkScalar MitchellWalkerProbabilityOfDetectionScalar mitchellWalkerScalar = new MitchellWalkerProbabilityOfDetectionScalar(transmitter, target, receiver, signalStrategy, signalGraph); //Construct the SingleTargetRadarObjectConstraint with the desired minimum and maximum values double minimumProbabilityOfDetection = 1e-6; double maximumProbabilityOfDetection = 0.8; SingleTargetRadarObjectConstraint constraint = new SingleTargetRadarObjectConstraint(mitchellWalkerScalar, minimumProbabilityOfDetection, maximumProbabilityOfDetection); EvaluatorGroup group = new EvaluatorGroup(); AccessEvaluator evaluator = constraint.getEvaluator(transmitter, group); group.optimizeEvaluators(); AccessQueryResult result = evaluator.evaluate(analysisStart, analysisEnd);
The Radar Library also provides a generalized RadarFigureOfMerit class, which can be used with the Spatial Analysis Library to compute coverage over a grid using the above SingleTargetRadarLinkScalar parameters. To learn more about setting up a coverage calculation, see the Coverage topic.
JulianDate epoch = new JulianDate(new GregorianDate(2016, 2, 22, 17, 0, 0)); SpecifiedCentralBodyCoverageGrid grid = new SpecifiedCentralBodyCoverageGrid(earth, gridPointList); ParameterizedTemporallyPartitionedCoverageDefinition coverage = new ParameterizedTemporallyPartitionedCoverageDefinition(); transmitter.setLocationPoint(coverage.getGridPoint()); receiver.setLocationPoint(coverage.getGridPoint()); coverage.setGrid(grid); coverage.setGridPointPlaceholder(transmitter); ElevationAngleConstraint constraint = new ElevationAngleConstraint(); constraint.setConstrainedLink(new LinkSpeedOfLight(coverage.getGridPointPlaceholder(), target, earth.getInertialFrame())); constraint.setConstrainedLinkEnd(LinkRole.TRANSMITTER); coverage.addAsset(new AssetDefinition(target, constraint)); CoverageResults results = coverage.computeCoverageOverTheGrid(epoch, epoch.addSeconds(60.0), Duration.fromSeconds(60.0)); MitchellWalkerProbabilityOfDetectionScalar mitchellWalkerScalar = new MitchellWalkerProbabilityOfDetectionScalar(transmitter, target, receiver, signalStrategy, signalGraph); RadarFigureOfMerit fom = new RadarFigureOfMerit(mitchellWalkerScalar); GridTimeSampledValues gridData = GridDescriptiveStatistics.computeFigureOfMeritData(results, fom, new TimeInterval(epoch, epoch.addSeconds(60.0)), Duration.fromSeconds(60.0));