Click or drag to resize

Wireless Propagation

Wireless propagation is performed in the same manner as in the Communications Library. See the Wireless Propagation topic for an overview of modeling wireless propagation using the WirelessLinkExtension and SignalPropagationModel types.

Note Note

The functionality described in this topic requires a license for the Radar Library and the Communications Library.

Modeling Radar Geometry

The Radar Library requires at least three Platform instances for evaluation - transmitter, target, and receiver. Therefore, modeling bistatic or monostatic radar geometries is achieved by how the platform's location point is configured. In order to model a bistatic geometry, the location point configured on the transmitter platform will provide a different location than the location point configured on the receiver platform. To model a monostatic radar geometry, the transmitter location point and receiver location point must provide the same location or can actually be the same instance of the Point type.

Monostatic Radar Geometry

The following figure and code example shows how a monostatic radar is modeled.

Monostatic Radar Geometry
C#
CentralBody earth = CentralBodiesFacet.GetFromContext().Earth;
JulianDate epoch = new GregorianDate(2016, 2, 22, 17, 0, 0).ToJulianDate();

//Construct the target point propagator
Cartesian initialPos = new Cartesian(-11029953.509755684, -40698074.387359113, 15422.511640956744);
Cartesian initialVel = new Cartesian(2967.5264945088943, -804.2579908902353, -4.6857787559832);

Motion<Cartesian> initialState = new Motion<Cartesian>(initialPos, initialVel);
TwoBodyPropagator targetPropagator = new TwoBodyPropagator(epoch, earth.InertialFrame, initialState, WorldGeodeticSystem1984.GravitationalParameter);

//Construct the target platform
Platform radarTargetPlatform = new Platform
{
    LocationPoint = targetPropagator.CreatePoint()
};
radarTargetPlatform.OrientationAxes = new AxesVehicleVelocityLocalHorizontal(earth.InertialFrame, radarTargetPlatform.LocationPoint);

//Configure the radar target properties
ConfigureRadarTarget(radarTargetPlatform);

//Construct the transmitter platform
Platform radarTransmitterPlatform = new Platform();

//Configure the radar transmitter properties
ConfigureRadarTransmitter(radarTransmitterPlatform);

//Construct the monostatic location point and orientation axes
Point monostaticLocationPoint = new PointCartographic(earth, new Cartographic(-1.31941, 0.698806, 0.0));

//Using the AxesAlignedConstrained axes type will target the radar antenna boresight at the radar target
VectorFixed earthZAxis = new VectorFixed(earth.InertialFrame.Axes, UnitCartesian.UnitZ);
Axes monostaticOrientation = new AxesAlignedConstrained(new VectorTrueDisplacement(monostaticLocationPoint, radarTargetPlatform.LocationPoint),
                                                        AxisIndicator.Third, earthZAxis, AxisIndicator.First);

//Configure the transmitter location and orientation
radarTransmitterPlatform.LocationPoint = monostaticLocationPoint;
radarTransmitterPlatform.OrientationAxes = monostaticOrientation;

//Construct the receiver platform
Platform radarReceiverPlatform = new Platform();

//Configure the radar receiver properties
ConfigureRadarReceiver(radarReceiverPlatform);

//Configure the receiver location and orientation
radarReceiverPlatform.LocationPoint = monostaticLocationPoint; //<====  NOTE: USES THE SAME LOCATION POINT AS TRANSMITTER
radarReceiverPlatform.OrientationAxes = monostaticOrientation;

//Construct the forward link from the transmitter to the target
LinkSpeedOfLight forwardLink = new LinkSpeedOfLight(radarTransmitterPlatform, radarTargetPlatform, earth.InertialFrame);
forwardLink.Extensions.Add(new WirelessLinkExtension());

//Construct the return link from the target to the receiver
LinkSpeedOfLight returnLink = new LinkSpeedOfLight(radarTargetPlatform, radarReceiverPlatform, earth.InertialFrame);
returnLink.Extensions.Add(new WirelessLinkExtension());

Platform interferencePlatform = ConfigureInterferencePlatform(radarReceiverPlatform);

//Construct the interference link  NOTE: Interference links are optional.  If the analysis is not concerned with interference at the radar
//receiver, they can be omitted from the propagation graph.
LinkSpeedOfLight interferenceLink = new LinkSpeedOfLight(interferencePlatform, radarReceiverPlatform, earth.InertialFrame);
interferenceLink.Extensions.Add(new WirelessLinkExtension());

//Add the links to the signal propagation graph
SignalPropagationGraph propagationGraph = new SignalPropagationGraph();
propagationGraph.AddLink(forwardLink);
propagationGraph.AddLink(returnLink);
propagationGraph.AddLink(interferenceLink);
Bistatic Radar Geometry

The following figure and code example shows how a bistatic radar is modeled.

Bistatic Radar Geometry
C#
CentralBody earth = CentralBodiesFacet.GetFromContext().Earth;
JulianDate epoch = new GregorianDate(2016, 2, 22, 17, 0, 0).ToJulianDate();

//Construct the target point propagator
Cartesian initialPos = new Cartesian(-11029953.509755684, -40698074.387359113, 15422.511640956744);
Cartesian initialVel = new Cartesian(2967.5264945088943, -804.2579908902353, -4.6857787559832);

Motion<Cartesian> initialState = new Motion<Cartesian>(initialPos, initialVel);
TwoBodyPropagator targetPropagator = new TwoBodyPropagator(epoch, earth.InertialFrame, initialState, WorldGeodeticSystem1984.GravitationalParameter);

//Construct the target platform
Platform radarTargetPlatform = new Platform
{
    LocationPoint = targetPropagator.CreatePoint()
};
radarTargetPlatform.OrientationAxes = new AxesVehicleVelocityLocalHorizontal(earth.InertialFrame, radarTargetPlatform.LocationPoint);

//Configure the radar target properties
ConfigureRadarTarget(radarTargetPlatform);

//Construct the transmitter platform
Platform radarTransmitterPlatform = new Platform();

//Configure the radar transmitter properties
ConfigureRadarTransmitter(radarTransmitterPlatform);

//Construct the bistatic transmitter location point and orientation axes
Point bistaticTransmitterLocationPoint = new PointCartographic(earth, new Cartographic(-1.31941, 0.698806, 0.0));

//Using the AxesAlignedConstrained axes type will target the radar transmitter antenna boresight at the radar target
VectorFixed earthZAxis = new VectorFixed(earth.InertialFrame.Axes, UnitCartesian.UnitZ);
Axes bistaticTransmitterOrientation = new AxesAlignedConstrained(new VectorTrueDisplacement(bistaticTransmitterLocationPoint, radarTargetPlatform.LocationPoint),
                                                                 AxisIndicator.Third, earthZAxis, AxisIndicator.First);

//Configure the transmitter location and orientation
radarTransmitterPlatform.LocationPoint = bistaticTransmitterLocationPoint;
radarTransmitterPlatform.OrientationAxes = bistaticTransmitterOrientation;

//Construct the receiver platform
Platform radarReceiverPlatform = new Platform();

//Configure the radar receiver properties
ConfigureRadarReceiver(radarReceiverPlatform);

//Construct the bistatic transmitter location point and orientation axes
Point bistaticReceiverLocationPoint = new PointCartographic(earth, new Cartographic(-1.33686, 0.698806, 0.0));

//Using the AxesAlignedConstrained axes type will target the radar receiver antenna boresight at the radar target
Axes bistaticReceiverOrientation = new AxesAlignedConstrained(new VectorTrueDisplacement(bistaticReceiverLocationPoint, radarTargetPlatform.LocationPoint),
                                                              AxisIndicator.Third, earthZAxis, AxisIndicator.First);

//Configure the receiver location and orientation
radarReceiverPlatform.LocationPoint = bistaticReceiverLocationPoint; //<====  NOTE: USES DIFFERENT LOCATION POINT THAN THE TRANSMITTER
radarReceiverPlatform.OrientationAxes = bistaticReceiverOrientation;

//Construct the forward link from the transmitter to the target
LinkSpeedOfLight forwardLink = new LinkSpeedOfLight(radarTransmitterPlatform, radarTargetPlatform, earth.InertialFrame);
forwardLink.Extensions.Add(new WirelessLinkExtension());

//Construct the return link from the target to the receiver
LinkSpeedOfLight returnLink = new LinkSpeedOfLight(radarTargetPlatform, radarReceiverPlatform, earth.InertialFrame);
returnLink.Extensions.Add(new WirelessLinkExtension());

Platform interferencePlatform = ConfigureInterferencePlatform(radarReceiverPlatform);

//Construct the interference link  NOTE: Interference links are optional.  If the analysis is not concerned with interference at the radar
//receiver, they can be omitted from the propagation graph.
LinkSpeedOfLight interferenceLink = new LinkSpeedOfLight(interferencePlatform, radarReceiverPlatform, earth.InertialFrame);
interferenceLink.Extensions.Add(new WirelessLinkExtension());

//Add the links to the signal propagation graph
SignalPropagationGraph propagationGraph = new SignalPropagationGraph();
propagationGraph.AddLink(forwardLink);
propagationGraph.AddLink(returnLink);
propagationGraph.AddLink(interferenceLink);