Main Content


Free space propagation and reflection of radar signals



radarsigout = radarChannel(radarsigin,platforms) returns radar signals, radarsigout, as combinations of the signals, radarsigin, that are reflected from the platforms, platforms.

radarsigout = radarChannel(radarsigin,platforms,'HasOcclusion',HasOcclusion) also allows you to specify whether to model occlusion from extended objects.


collapse all

Create a radar emission and a platform and reflect the emission from the platform.

Create a radar emission object.

radarSig = radarEmission('PlatformID',1,'EmitterIndex',1,'OriginPosition',[0 0 0]);

Create a platform structure.

platfm = struct('PlatformID',2,'Position',[10 0 0],'Signatures',rcsSignature());

Reflect the emission from the platform.

sigs = radarChannel(radarSig,platfm)
sigs = 
  radarEmission with properties:

              PlatformID: 1
            EmitterIndex: 1
          OriginPosition: [0 0 0]
          OriginVelocity: [0 0 0]
             Orientation: [1x1 quaternion]
             FieldOfView: [180 180]
         CenterFrequency: 300000000
               Bandwidth: 3000000
            WaveformType: 0
          ProcessingGain: 0
        PropagationRange: 0
    PropagationRangeRate: 0
                    EIRP: 0
                     RCS: 0

Create a tracking scenario object.

scenario = trackingScenario;

Create a radarEmitter object.

emitter = radarEmitter(1);

Mount the emitter on a platform within the scenario.

plat = platform(scenario,'Emitters',emitter);

Add another platform to reflect the emitted signal.

target = platform(scenario);
target.Trajectory.Position = [30 0 0];

Emit the signal using the emit object function of a platform.

txsigs = emit(plat,scenario.SimulationTime)
txsigs = 1x1 cell array
    {1x1 radarEmission}

Reflect the signal from the platforms in the scenario.

sigs = radarChannel(txsigs,scenario.Platforms)
sigs=2×1 cell array
    {1x1 radarEmission}
    {1x1 radarEmission}

Input Arguments

collapse all

Input radar signals, specified as an array of radarEmission objects.

Reflector platforms, specified as a cell array of Platform objects, or an array of Platform structures:


Unique identifier for the platform, specified as a scalar positive integer. This is a required field which has no default value.


User-defined integer used to classify the type of target, specified as a nonnegative integer. Zero is reserved for unclassified platform types and is the default value.


Position of target in scenario coordinates, specified as a real-valued 1-by-3 vector. This is a required field. There is no default value. Units are in meters.


Velocity of platform in scenario coordinates, specified as a real-valued 1-by-3 vector. Units are in meters per second. The default is [0 0 0].


Speed of the platform in the scenario frame specified as a real scalar. When speed is specified, the platform velocity is aligned with its orientation. Specify either the platform speed or velocity, but not both. Units are in meters per second The default is 0.


Acceleration of the platform in scenario coordinates specified as a 1-by-3 row vector in meters per second-squared. The default is [0 0 0].


Orientation of the platform with respect to the local scenario NED coordinate frame, specified as a scalar quaternion or a 3-by-3 rotation matrix. Orientation defines the frame rotation from the local NED coordinate system to the current platform body coordinate system. Units are dimensionless. The default is quaternion(1,0,0,0).


Angular velocity of platform in scenario coordinates, specified as a real-valued 1-by-3 vector. The magnitude of the vector defines the angular speed. The direction defines the axis of clockwise rotation. Units are in degrees per second. The default is [0 0 0].


Cell array of signatures defining the visibility of the platform to emitters and sensors in the scenario. The default is the cell array {rcsSignature, irSignature, tsSignature}.

If you specify an array of platform structures, set a unique PlatformID for each platform and set the Position field for each platform. Any other fields not specified are assigned default values.

Enable occlusion from extended objects, specified as true or false. Set HasOccusion to true to model occlusion from extended objects. Two types of occlusion (self occlusion and inter object occlusion) are modeled. Self occlusion occurs when one side of an extended object occludes another side. Inter object occlusion occurs when one extended object stands in the line of sight of another extended object or a point target. Note that both extended objects and point targets can be occluded by extended objects, but a point target cannot occlude another point target or an extended object.

Set HasOccusion to false to disable occlusion of extended objects. This will also disable the merging of objects whose detections share a common sensor resolution cell, which gives each object in the tracking scenario an opportunity to generate a detection.

Data Types: logical

Output Arguments

collapse all

Reflected radar signals, specified as an array of radarEmission objects.

Extended Capabilities

C/C++ Code Generation
Generate C and C++ code using MATLAB® Coder™.

Version History

Introduced in R2018b