radarSensor
Generate detections from radar emissions
radarSensor
is not recommended unless you require C/C++ code
generation. Use fusionRadarSensor
instead. For more information, see Version History.
Description
The radarSensor
System object™ returns a statistical model to generate detections from radar emissions.
You can generate detections from monostatic radar, bistatic radar and Electronic Support
Measures (ESM). You can use the radarSensor
object in a scenario that
models moving and stationary platforms using trackingScenario
. The radar sensor can simulate real detections with added
random noise and also generate false alarm detections. In addition, you can use this
object to create input to trackers such as trackerGNN
,
trackerJPDA
and trackerTOMHT
.
This object enables you to configure a scanning radar. A scanning radar changes the
look angle between updates by stepping the mechanical and electronic position of the
beam in increments of the angular span specified in the FieldOfView
property. The radar scans the total region in azimuth and elevation defined by the radar
mechanical scan limits, MechanicalScanLimits
, and electronic scan
limits, ElectronicScanLimits
. If the scanning limits for azimuth or
elevation are set to [0 0]
, then no scanning is performed along that
dimension for that scan mode. If the maximum mechanical scan rate for azimuth or
elevation is set to zero, then no mechanical scanning is performed along that
dimension.
Using a single-exponential mode, the radar computes range and elevation biases caused by propagation through the troposphere. A range bias means that measured ranges are greater than the line-of-sight range to the target. Elevation bias means that the measured elevations are above their true elevations. Biases are larger when the line-of-sight path between the radar and target passes through lower altitudes because the atmosphere is thicker at these altitudes. See [1] and [2] for more details.
To generate radar detections:
Create the
radarSensor
object and set its properties.Call the object with arguments, as if it were a function.
To learn more about how System objects work, see What Are System Objects?
Creation
Syntax
Description
creates a radar detection generator object with a specified sensor index,
sensor
= radarSensor(SensorIndex
)SensorIndex
, and default property values.
is a convenience syntax that creates a sensor
= radarSensor(SensorIndex
,'No scanning')radarSensor
that
stares along the radar antenna boresight direction. No mechanical or
electronic scanning is performed. This syntax sets the
ScanMode
property to 'No
scanning'
.
is a convenience syntax that creates a sensor
= radarSensor(SensorIndex
,'Raster')radarSensor
object
that mechanically scans a raster pattern. The raster span is 90° in azimuth
from –45° to +45° and in elevation from the horizon to 10° above the
horizon. See Convenience Syntaxes for
the properties set by this syntax.
is a convenience syntax that creates a sensor
= radarSensor(SensorIndex
,'Rotator')radarSensor
object
that mechanically scans 360° in azimuth by mechanically rotating the antenna
at a constant rate. When you set HasElevation
to
true
, the radar antenna mechanically points towards
the center of the elevation field of view. See Convenience Syntaxes for
the properties set by this syntax.
is a convenience syntax to create a sensor
= radarSensor(SensorIndex
,'Sector')radarSensor
object that
mechanically scans a 90° azimuth sector from –45° to +45°. Setting
HasElevation
to true
, points the
radar antenna towards the center of the elevation field of view. You can
change the ScanMode
to 'Electronic'
to electronically scan the same azimuth sector. In this case, the antenna is
not mechanically tilted in an electronic sector scan. Instead, beams are
stacked electronically to process the entire elevation spanned by the scan
limits in a single dwell. See Convenience Syntaxes for
the properties set by this syntax.
sets properties using one or more name-value pairs after all other input
arguments. Enclose each property name in quotes. For example,
sensor
= radarSensor(___,Name,Value
)radarSensor(1,'DetectionCoordinates','Sensor
cartesian','MaxRange',200)
creates a radar detection generator
that reports detections in the sensor Cartesian coordinate system and has a
maximum detection range of 200 meters. If you specify the sensor index using
the SensorIndex
property, you can omit the
SensorIndex
input.
Properties
Unless otherwise indicated, properties are nontunable, which means you cannot change their
values after calling the object. Objects lock when you call them, and the
release
function unlocks them.
If a property is tunable, you can change its value at any time.
For more information on changing property values, see System Design in MATLAB Using System Objects.
SensorIndex
— Unique sensor identifier
positive integer
Unique sensor identifier, specified as a positive integer. This property
distinguishes detections that come from different sensors in a multi-sensor
system. When creating a radarSensor
system object, you must
either specify the SensorIndex
as the first input
argument in the creation syntax, or specify it as the value for the
SensorIndex
property in the creation syntax.
Example: 2
Data Types: double
UpdateRate
— Sensor update rate
1
(default) | positive scalar
Sensor update rate, specified as a positive scalar. This interval must be
an integer multiple of the simulation time interval defined by trackingScenario
. The trackingScenario
object
calls the radar sensor at simulation time intervals. The radar generates new
detections at intervals defined by the reciprocal of the
UpdateRate
property. Any update requested to the
sensor between update intervals contains no detections. Units are in
hertz.
Example: 5
Data Types: double
DetectionMode
— Detection mode
'ESM'
(default) |
'monostatic'
|
'bistatic'
Detection mode, specified as 'ESM'
,
'monostatic'
or 'bistatic'
. When
set to 'ESM'
, the sensor operates passively and can model
ESM and RWR systems. When set to 'monostatic'
, the sensor
generates detections from reflected signals originating from a collocated
radar emitter. When set to 'bistatic'
, the sensor
generates detections from reflected signals originating from a separate
radar emitter. For more details on detection mode, see Radar Sensor Detection Modes.
Example: 'Monostatic'
Data Types: char
| string
EmitterIndex
— Unique monostatic emitter index
positive integer
Unique monostatic emitter index, specified as a positive integer. The emitter index identifies the monostatic emitter providing the reference signal to the sensor.
Example: 404
Dependencies
To enable this property, set the DetectionMode
property to 'Monostatic'
.
Data Types: double
HasElevation
— Enable elevation scan and measurements
false
(default) | true
Enable the sensor to measure target elevation angles and to scan in
elevation, specified as false
or true
.
Set this property to true
to model a radar sensor that
can estimate target elevation and scan in elevation.
Data Types: logical
Sensitivity
— Minimum operational sensitivity of receiver
-50
(default) | scalar
Minimum operational sensitivity of receiver, specified as a scalar. Sensitivity includes isotropic antenna receiver gain. Units are in dBmi.
Example: -10
Data Types: double
DetectionThreshold
— Minimum SNR required to declare a detection
5
(default) | scalar
Minimum SNR required to declare a detection, specified as a scalar. Units are in dB.
Example: -1
Data Types: double
FalseAlarmRate
— False alarm rate
1e-6
(default) | positive scalar
False alarm report rate within each sensor resolution cell, specified as a positive scalar in the range of [10–7,10–3]. Units are dimensionless. Resolution cells are determined from the AzimuthResolution and RangeResolution properties, and the ElevationResolution and RangeRateResolution properties when they are enabled.
Example: 1e-5
Data Types: double
AzimuthResolution
— Azimuth resolution
1
(default) | positive scalar
Azimuth resolution of the radar, specified as a positive scalar. The azimuth resolution defines the minimum separation in azimuth angle at which the radar can distinguish two targets. The azimuth resolution is typically the 3-dB downpoint of the azimuth angle beamwidth of the radar. Units are in degrees.
Data Types: double
ElevationResolution
— Elevation resolution
1
(default) | positive scalar
Elevation resolution of the radar, specified as a positive scalar. The elevation resolution defines the minimum separation in elevation angle at which the radar can distinguish two targets. The elevation resolution is typically the 3dB-downpoint in elevation angle beamwidth of the radar. Units are in degrees.
Dependencies
To enable this property, set the HasElevation
property to true
.
Data Types: double
AzimuthBiasFraction
— Azimuth bias fraction
0.1
(default) | nonnegative scalar
Azimuth bias fraction of the radar, specified as a nonnegative scalar. The
azimuth bias is expressed as a fraction of the azimuth resolution specified
in AzimuthResolution
. This value sets a lower bound on
the azimuthal accuracy of the radar. This value is dimensionless.
Data Types: double
ElevationBiasFraction
— Elevation bias fraction
0.1
(default) | nonnegative scalar
Elevation bias fraction of the radar, specified as a nonnegative scalar.
Elevation bias is expressed as a fraction of the elevation resolution
specified by the value of the ElevationResolution
property. This value sets a lower bound on the elevation accuracy of the
radar. This value is dimensionless.
Dependencies
To enable this property, set the HasElevation
property to true
.
Data Types: double
HasINS
— Enable inertial navigation system (INS) input
false
(default) | true
Enable the optional input argument that passes the current estimate of the
sensor platform pose to the sensor, specified as false
or
true
. When true
, pose information
is added to the MeasurementParameters
structure of the
reported detections. Pose information lets tracking and fusion algorithms
estimate the state of the target detections in the north-east-down (NED)
frame.
Data Types: logical
HasNoise
— Enable addition of noise to sensor measurements
true
(default) | false
Enable addition of noise to sensor measurements, specified as
true
or false
. Set this property
to true
to add noise to the radar measurements.
Otherwise, the measurements have no noise. Even if you set
HasNoise
to false
, the object
still computes the MeasurementNoise
property of each
detection.
Data Types: logical
HasFalseAlarms
— Enable creating false alarm detections
true
(default) | false
Enable creating false alarm measurements, specified as
true
or false
. Set this property
to true
to report false alarms. Otherwise, only actual
detections are reported.
Data Types: logical
MaxNumDetectionsSource
— Source of maximum number of detections reported
'Auto'
(default) | 'Property'
Source of maximum number of detections reported by the sensor, specified
as 'Auto'
or 'Property'
. When this
property is set to 'Auto'
, the sensor reports all
detections. When this property is set to 'Property'
, the
sensor reports up to the number of detections specified by the
MaxNumDetections
property.
Data Types: char
MaxNumDetections
— Maximum number of reported detections
50
(default) | positive integer
Maximum number of detections reported by the sensor, specified as a
positive integer. If the DetectionMode
is set to
'monostatic'
or 'bistatic'
,
detections are reported in order of distance to the sensor until the maximum
number is reached. If the DetectionMode
is set to
'ESM'
, detections are reported from highest SNR to
lowest SNR.
Dependencies
To enable this property, set the
MaxNumDetectionsSource
property to
'Property'
.
Data Types: double
HasOcclusion
— Enable occlusion from extended objects
true
(default) | false
Enable occlusion from extended objects, specified as true
or
false
. Set this property 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 this property 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
DetectionCoordinates
— Coordinate system of reported detections
'Scenario'
| 'Body'
| 'Sensor rectangular
| 'Sensor spherical'
Coordinate system of reported detections, specified as:
'Scenario'
— Detections are reported in the rectangular scenario coordinate frame. The scenario coordinate system is defined as the local NED frame at simulation start time. To enable this value, set theHasINS
property totrue
.'Body'
— Detections are reported in the rectangular body system of the sensor platform.'Sensor rectangular'
— Detections are reported in the sensor rectangular body coordinate system.'Sensor spherical'
— Detections are reported in a spherical coordinate system derived from the sensor rectangular body coordinate system. This coordinate system is centered at the sensor and aligned with the orientation of the radar on the platform.
When the DetectionMode
property is set to
'monostatic'
, you can specify the
DetectionCoordinates
as 'Body'
(default for 'monostatic'
),
'Scenario'
, 'Sensor rectangular'
, or
'Sensor spherical'
. When the
DetectionMode
property is set to
'ESM'
or 'bistatic'
, the default
value of the DetectionCoordinates
property is
'Sensor spherical'
, which can not be changed.
Example: 'Sensor spherical'
Data Types: char
MountingLocation
— Sensor location on platform
[0 0 0]
(default) | 1-by-3 real-valued vector
Sensor location on platform, specified as a 1-by-3 real-valued vector. This property defines the coordinates of the sensor with respect to the platform origin. The default value specifies that the sensor origin is at the origin of its platform. Units are in meters.
Example: [.2 0.1 0]
Dependencies
To enable this property, set the DetectionMode
property to 'ESM'
or
'bistatic'
.
Data Types: double
MountingAngles
— Orientation of sensor
[0 0 0]
(default) | 3-element real-valued vector
Orientation of the sensor with respect to the platform, specified as a three-element real-valued vector. Each element of the vector corresponds to an intrinsic Euler angle rotation that carries the body axes of the platform to the sensor axes. The three elements define the rotations around the z-, y-, and x-axes, in that order. The first rotation rotates the platform axes around the z-axis. The second rotation rotates the carried frame around the rotated y-axis. The final rotation rotates the frame around the carried x-axis. Units are in degrees.
Example: [10 20 -15]
Dependencies
To enable this property, set the DetectionMode
property to 'ESM'
or
'bistatic'
.
Data Types: double
FieldOfView
— Fields of view of sensor
[10;50]
| 2-by-1 vector of positive scalar
Fields of view of sensor, specified as a 2-by-1 vector of positive scalars in degree,
[azfov;elfov]
. The field of view defines the total angular extent
spanned by the sensor. The azimuth field of view azfov
must lie in
the interval (0,360]. The elevation field of view elfov
must lie in
the interval (0,180].
Example: [14;7]
Data Types: double
ScanMode
— Scanning mode of radar
'Mechanical'
(default) | 'Electronic'
| 'Mechanical and electronic'
| 'No scanning'
Scanning mode of radar, specified as 'Mechanical'
,
'Electronic'
, 'Mechanical and
electronic'
, or 'No scanning'
.
Scan Modes
ScanMode | Purpose |
'Mechanical' | The sensor scans mechanically across the azimuth and
elevation limits specified by the
MechanicalScanLimits property.
The scan direction increments by the radar field of view
angle between dwells. |
'Electronic' | The sensor scans electronically across the azimuth
and elevation limits specified by the
ElectronicScanLimits property.
The scan direction increments by the radar field of view
angle between dwells. |
'Mechanical and
electronic' | The sensor mechanically scans the antenna boresight across the mechanical scan limits and electronically scans beams relative to the antenna boresight across the electronic scan limits. The total field of regard scanned in this mode is the combination of the mechanical and electronic scan limits. The scan direction increments by the radar field of view angle between dwells. |
'No scanning' | The sensor beam points along the antenna boresight
defined by the mountingAngles
property. |
Example: 'No scanning'
Dependencies
To enable this property, set the DetectionMode
property to 'ESM'
or
'bistatic'
.
Data Types: char
MaxMechanicalScanRate
— Maximum mechanical scan rate
[75;75]
(default) | nonnegative scalar | real-valued 2-by-1 vector with nonnegative entries
Maximum mechanical scan rate, specified as a nonnegative scalar or real-valued 2-by-1 vector with nonnegative entries.
When HasElevation is true
, specify the scan
rate as a 2-by-1 column vector of nonnegative entries [maxAzRate;
maxElRate]. maxAzRate is the maximum scan rate in azimuth and maxElRate is
the maximum scan rate in elevation.
When HasElevation
is false
,
specify the scan rate as a nonnegative scalar representing the maximum
mechanical azimuth scan rate.
Scan rates set the maximum rate at which the sensor can mechanically scan. The sensor sets its scan rate to step the radar mechanical angle by the field of regard. If the required scan rate exceeds the maximum scan rate, the maximum scan rate is used. Units are degrees per second.
Example: [5;10]
Dependencies
To enable this property, set the ScanMode
property to 'Mechanical'
or 'Mechanical and
electronic'
, and set the
DetectionMode
property to
'ESM'
or 'bistatic'
.
Data Types: double
MechanicalScanLimits
— Angular limits of mechanical scan directions of radar
[0 360;-10 0]
(default) | real-valued 1-by-2 row vector | real-valued 2-by-2 matrix
Angular limits of mechanical scan directions of radar, specified as a real-valued 1-by-2 row vector, or a real-valued 2-by-2 matrix. The mechanical scan limits define the minimum and maximum mechanical angles the radar can scan from its mounted orientation.
When HasElevation
is true
, the
scan limits take the form [minAz maxAz; minEl maxEl]. minAz and maxAz
represent the minimum and maximum limits of the azimuth angle scan. minEl
and maxEl represent the minimum and maximum limits of the elevation angle
scan. When HasElevation is false
, the scan limits
take the form [minAz maxAz]. If you specify the scan limits as a 2-by-2
matrix but set HasElevation
to
false
, the second row of the matrix is ignored.
Azimuthal scan limits cannot span more than 360° and elevation scan limits must lie within the closed interval [-90° 90°]. Units are in degrees.
Example: [-90 90;0 85]
Dependencies
To enable this property, set the ScanMode
property to 'Mechanical'
or 'Mechanical and
electronic'
, and set the
DetectionMode
property to
'ESM'
or 'bistatic'
.
Data Types: double
MechanicalAngle
— Current mechanical scan angle
scalar | real-valued 2-by-1 vector
This property is read-only.
Current mechanical scan angle of radar, returned as a scalar or
real-valued 2-by-1 vector. When HasElevation is true
, the scan angle
takes the form [Az; El]. Az and El represent the azimuth and elevation scan
angles, respectively, relative to the mounted angle of the radar on the
platform. When HasElevation
is
false
, the scan angle is a scalar representing the
azimuth scan angle.
Dependencies
To enable this property, set the ScanMode
property to 'Mechanical'
or 'Mechanical and
electronic'
, and set the
DetectionMode
property to
'ESM'
or 'bistatic'
.
Data Types: double
ElectronicScanLimits
— Angular limits of electronic scan directions of radar
[-45 45;-45 45]
(default) | real-valued 1-by-2 row vector | real-valued 2-by-2 matrix
Angular limits of electronic scan directions of radar, specified as a real-valued 1-by-2 row vector, or a real-valued 2-by-2 matrix. The electronic scan limits define the minimum and maximum electronic angles the radar can scan from its current mechanical direction.
When HasElevation is true
, the scan limits
take the form [minAz maxAz; minEl maxEl]. minAz and maxAz represent the
minimum and maximum limits of the azimuth angle scan. minEl and maxEl
represent the minimum and maximum limits of the elevation angle scan. When
HasElevation
is false
, the scan
limits take the form [minAz maxAz]. If you specify the scan limits as a
2-by-2 matrix but set HasElevation
to
false
, the second row of the matrix is
ignored.
Azimuthal scan limits and elevation scan limits must lie within the closed interval [-90° 90°]. Units are in degrees.
Example: [-90 90;0 85]
Dependencies
To enable this property, set the ScanMode
property to 'Electronic'
or 'Mechanical and
electronic'
, and set the
DetectionMode
property to
'ESM'
or 'bistatic'
.
Data Types: double
ElectronicAngle
— Current electronic scan angle
electronic scalar | nonnegative scalar
This property is read-only.
Current electronic scan angle of radar, returned as a scalar or 1-by-2
column vector. When HasElevation
is
true
, the scan angle takes the form [Az;El]. Az and
El represent the azimuth and elevation scan angles, respectively. When
HasElevation is false
, the scan angle is
a scalar representing the azimuth scan angle.
Dependencies
To enable this property, set the ScanMode
property to 'Electronic'
or 'Mechanical and
electronic'
, and set the
DetectionMode
property to
'ESM'
or 'bistatic'
.
Data Types: double
LookAngle
— Look angle of sensor
scalar | real-valued 2-by-1 vector
This property is read-only.
Look angle of sensor, specified as a scalar or real-valued 2-by-1 vector.
Look angle is a combination of the mechanical angle and electronic angle
depending on the ScanMode
property.
ScanMode | LookAngle |
'Mechanical' | MechnicalAngle |
'Electronic' | ElectronicAngle |
'Mechanical and
Electronic' | MechnicalAngle +
ElectronicAngle |
'No scanning' | 0 |
When HasElevation is true
, the look angle
takes the form [Az;El]. Az and El represent the azimuth and elevation look
angles, respectively. When HasElevation
is
false
, the look angle is a scalar representing the
azimuth look angle.
Dependencies
To enable this property, set the DetectionMode
property to 'ESM'
or
'bistatic'
.
CenterFrequency
— Center frequency of radar band
positive scalar
Center frequency of radar band, specified as a positive scalar. Units are in hertz.
Example: 100e6
Dependencies
To enable this property, set the DetectionMode
property to 'ESM'
or
'bistatic'
.
Data Types: double
Bandwidth
— Radar waveform bandwidth
positive scalar
Radar waveform bandwidth, specified as a positive scalar. Units are in hertz.
Example: 100e3
Dependencies
To enable this property, set the DetectionMode
property to 'ESM'
or
'bistatic'
.
Data Types: double
WaveformTypes
— Types of detected waveforms
0
(default) | nonnegative integer-valued L-element vector
Types of detected waveforms, specified as a nonnegative integer-valued L-element vector.
Example: [1 4 5]
Dependencies
To enable this property, set the DetectionMode
property to 'ESM'
or
'bistatic'
.
Data Types: double
ConfusionMatrix
— Probability of correct classification of detected waveform
positive scalar | real-valued nonnegative L-element vector | real-valued nonnegative L-by-L
matrix
Probability of correct classification of a detected waveform, specified as
a positive scalar, a real-valued nonnegative L-element
vector, or a real-valued nonnegative
L-by-L matrix. Matrix values lie
from 0 through 1 and matrix rows must sum to 1. L is the
number of waveform types detectable by the sensor, as indicated by the value
set in the WaveformTypes
property. The (i,j) matrix
element represents the probability of classifying the ith waveform as the
jth waveform. When specified as a scalar from 0 through 1, the value is
expanded along the diagonal of the confusion matrix. When specified as a
vector, it must have the same number of elements as the WaveformTypes
property. When defined as a scalar or a vector, the off diagonal values are
set to (1-val)/(L-1).
Dependencies
To enable this property, set the DetectionMode
property to 'ESM'
or
'bistatic'
.
Data Types: double
RangeResolution
— Range resolution of radar
100
(default) | positive scalar
Range resolution of the radar, specified as a positive scalar. The range resolution defines the minimum separation in range at which the radar can distinguish between two targets. Units are in meters.
Dependencies
To enable this property, set the DetectionMode
property to 'monostatic'
or
'bistatic'
.
Data Types: double
RangeRateResolution
— Range rate resolution of radar
10
(default) | positive scalar
Range rate resolution of the radar, specified as a positive scalar. The range rate resolution defines the minimum separation in range rate at which the radar can distinguish between two targets. Units are in meters per second.
Dependencies
To enable this property, set the HasRangeRate
property to true
, and set the
DetectionMode
property to
'monostatic'
or
'bistatic'
.
Data Types: double
RangeBiasFraction
— Range bias fraction
0.05
(default) | nonnegative scalar
Range bias fraction of the radar, specified as a nonnegative scalar. Range
bias is expressed as a fraction of the range resolution specified in
RangeResolution
. This property sets a lower bound
on the range accuracy of the radar. This value is dimensionless.
Dependencies
To enable this property, set the DetectionMode
property to 'monostatic'
or
'bistatic'
.
Data Types: double
RangeRateBiasFraction
— Range rate bias fraction
0.05
(default) | nonnegative scalar
Range rate bias fraction of the radar, specified as a nonnegative scalar.
Range rate bias is expressed as a fraction of the range rate resolution
specified in RangeRateResolution
. This property sets a
lower bound on the range-rate accuracy of the radar. This value is
dimensionless.
Dependencies
To enable this property, set the HasRangeRate
property to true
, and set the
DetectionMode
property to
'monostatic'
or
'bistatic'
.
Data Types: double
HasRangeRate
— Enable radar to measure range rate
false
(default) | true
Enable the radar to measure target range rates, specified as
false
or true
. Set this property
to true
to model a radar sensor that can measure target
range rate. Set this property to false
to model a radar
sensor that cannot measure range rate.
Dependencies
To enable this property, set the DetectionMode
property to 'ESM'
or
'bistatic'
.
Data Types: logical
HasRangeAmbiguities
— Enable range ambiguities
false
(default) | true
Enable range ambiguities, specified as false
or
true
. Set this property to true
to
enable range ambiguities by the sensor. In this case, the sensor cannot
resolve range ambiguities for targets at ranges beyond the MaxUnambiguousRange are wrapped into the interval
[0 MaxUnambiguousRange]
. When
false
, targets are reported at their unambiguous
range.
Dependencies
To enable this property, set the DetectionMode
property to 'ESM'
or
'bistatic'
.
Data Types: logical
HasRangeRateAmbiguities
— Enable range-rate ambiguities
false
(default) | true
Enable range-rate ambiguities, specified as false
or
true
. Set to true
to enable
range-rate ambiguities by the sensor. When true
, the
sensor does not resolve range rate ambiguities and target range rates beyond
the MaxUnambiguousRadialSpeed
are wrapped into the
interval [0,MaxUnambiguousRadialSpeed]
. When
false
, targets are reported at their unambiguous
range rate.
Dependencies
To enable this property, set the HasRangeRate property to true
and set
the DetectionMode
property to
'ESM'
or 'bistatic'
.
Data Types: logical
MaxUnambiguousRange
— Maximum unambiguous detection range
100e3
(default) | positive scalar
Maximum unambiguous range, specified as a positive scalar. Maximum
unambiguous range defines the maximum range for which the radar can
unambiguously resolve the range of a target. When HasRangeAmbiguities is set to true
,
targets detected at ranges beyond the maximum unambiguous range are wrapped
into the range interval [0,MaxUnambiguousRange]
. This
property applies to true target detections when you set the
HasRangeAmbiguities
property to
true
.
This property also applies to false target detections when you set the
HasFalseAlarms
property to true
.
In this case, the property defines the maximum range for false
alarms.
Units are in meters.
Example: 5e3
Dependencies
To enable this property, set the
HasRangeAmbiguities
property or the
HasFalseAlarms
property to
true
. Meanwhile, set the
DetectionMode
property to
'ESM'
or 'bistatic'
.
Data Types: double
MaxUnambiguousRadialSpeed
— Maximum unambiguous radial speed
200
(default) | positive scalar
Maximum unambiguous radial speed, specified as a positive scalar. Radial
speed is the magnitude of the target range rate. Maximum unambiguous radial
speed defines the radial speed for which the radar can unambiguously resolve
the range rate of a target. When
HasRangeRateAmbiguities
is set to
true
, targets detected at range rates beyond the
maximum unambiguous radial speed are wrapped into the range rate interval
[-MaxUnambiguousRadialSpeed,
MaxUnambiguousRadialSpeed]
. This property applies to true
target detections when you set HasRangeRateAmbiguities
property to true
.
This property also applies to false target detections obtained when you
set both the HasRangeRate
and
HasFalseAlarms
properties to
true
. In this case, the property defines the maximum
radial speed for which false alarms can be generated.
Units are in meters per second.
Dependencies
To enable this property, set HasRangeRate
and
HasRangeRateAmbiguities
to
true
and/or set HasRangeRate
and HasFalseAlarms
to true
.
Meanwhile, set the DetectionMode
property to
'ESM'
or 'bistatic'
.
Data Types: double
Usage
Syntax
Description
creates ESM or bistatic radar detections, dets
= sensor(radarsigs
,simTime
)dets
, from radar
emissions, radarsigs
, at the current simulation time,
simTime
. The sensor generates detections at the rate
defined by the UpdateRate
property. To use this syntax, set
ScanMode
property to 'ESM'
or
'bistatic'
.
Input Arguments
radarsigs
— Radar emissions
array of radar emission objects
Radar emissions, specified as an array or a cell array of radarEmission
objects.
txconfigs
— Emitter configurations
array of structures
Emitter configurations, specified as an array of structures. This
array must contain the configuration of the radarEmitter whose
EmitterIndex
matches the value of the
EmitterIndex
property of the
radarSensor
. Each structure has these
fields:
Field | Description |
EmitterIndex | Unique emitter index |
IsValidTime | Valid emission time, returned as
|
IsScanDone |
|
FieldOfView | Field of view of emitter. |
MeasurementParameters |
|
For more details on
MeasurementParameters
, see Measurement Parameters.
Data Types: struct
ins
— Platform pose from INS
structure
Platform pose information from an inertial navigation system (INS) is a structure with these fields:
Field | Definition |
Position | Position in the navigation frame, specified as a real-valued 1-by-3 vector. Units are in meters. |
Velocity | Velocity in the navigation frame, specified as a real-valued 1-by-3 vector. Units are in meters per second. |
Orientation | Orientation with respect to the navigation frame, specified as
a |
Dependencies
To enable this argument, set the HasINS
property to true
.
Data Types: struct
simTime
— Current simulation time
nonnegative scalar
Current simulation time, specified as a positive scalar. The trackingScenario
object calls the scan radar sensor at
regular time intervals. The radar sensor generates new detections at
intervals defined by the UpdateInterval
property.
The value of the UpdateInterval
property must be an
integer multiple of the simulation time interval. Updates requested from
the sensor between update intervals contain no detections. Units are in
seconds.
Example: 10.5
Data Types: double
Output Arguments
dets
— sensor detections
cell array of objectDetection
objects
Sensor detections, returned as a cell array of objectDetection
objects.
Each object has these properties:
Property | Definition |
---|---|
Time | Measurement time |
Measurement | Object measurements |
MeasurementNoise | Measurement noise covariance matrix |
SensorIndex | Unique ID of the sensor |
ObjectClassID | Object classification |
MeasurementParameters | Parameters used by initialization functions of nonlinear Kalman tracking filters |
ObjectAttributes | Additional information passed to tracker |
Measurement
and
MeasurementNoise
are reported in the coordinate
system specified by the DetectionCoordinates
property. For details on Measurement
,
MeasurementParameters
, and
ObjectAttributes
of radarSensor
,
please see Object Detections.
numDets
— Number of detections
nonnegative integer
Number of detections reported, returned as a nonnegative integer.
When the
MaxNumDetectionsSource
property is set to'Auto'
,numDets
is set to the length ofdets
.When the
MaxNumDetectionsSource
property is set to'Property'
,dets
is a cell array with length determined by theMaxNumDetections
property. No more thanMaxNumDetections
number of detections are returned. If the number of detections is fewer thanMaxNumDetections
, the firstnumDets
elements ofdets
hold valid detections. The remaining elements ofdets
are set to the default value.
Data Types: double
config
— Current sensor configuration
structure
Current sensor configuration, specified as a structure. This output can be used to determine which objects fall within the radar beam during object execution.
Field | Description |
SensorIndex | Unique sensor index, returned as a positive integer. |
IsValidTime | Valid detection time, returned as |
IsScanDone |
|
RangeLimits | Lower and upper range detection limits, returned as a two-element real-valued vector in meters. |
RangeRateLimits | Lower and upper range-rate detection limits, returned as a two-element real-valued vector in m/s. |
FieldOfView | Field of view of the sensor, returned as a 2-by-1 vector of positive real values, [ |
MeasurementParameters | Sensor measurement parameters, returned as an array of structures containing the coordinate frame transforms needed to transform positions and velocities in the top-level frame to the current sensor looking-angle frame. |
Data Types: struct
Object Functions
To use an object function, specify the
System object as the first input argument. For
example, to release system resources of a System object named obj
, use
this syntax:
release(obj)
Specific to radarSensor
coverageConfig | Sensor and emitter coverage configuration |
perturbations | Perturbation defined on object |
perturb | Apply perturbations to object |
Examples
Detect Radar Emission with radarSensor
Create an radar emission and then detect the emission using a radarSensor
object.
First, create an radar emission.
orient = quaternion([180 0 0],'eulerd','zyx','frame'); rfSig = radarEmission('PlatformID',1,'EmitterIndex',1,'EIRP',100, ... 'OriginPosition',[30 0 0],'Orientation',orient);
Then, create an ESM sensor using radarSensor
.
sensor = radarSensor(1,'DetectionMode','ESM');
Detect the RF emission.
time = 0; [dets,numDets,config] = sensor(rfSig,time)
dets = 1x1 cell array
{1x1 objectDetection}
numDets = 1
config = struct with fields:
SensorIndex: 1
IsValidTime: 1
IsScanDone: 0
FieldOfView: [1 5]
RangeLimits: [0 Inf]
RangeRateLimits: [0 Inf]
MeasurementParameters: [1x1 struct]
More About
Radar Sensor Detection Modes
The radarSensor
system object can model three detection modes:
monostatic, bistatic, and electronic support measures (ESM) as shown in the
following figures.
For the monostatic detection mode, the transmitter and the receiver are collocated, as shown in figure (a). In this mode, the range measurement R can be expressed as R = RT = RR, where RT and RR are the ranges from the transmitter to the target and from the target to the receiver, respectively. In the radar sensor, the range measurement is R = ct/2, where c is the speed of light and t is the total time of the signal transmission. Other than the range measurement, a monostatic sensor can also optionally report range rate, azimuth, and elevation measurements of the target.
For the bistatic detection mode, the transmitter and the receiver are separated by a distance L. As shown in figure (b), the signal is emitted from the transmitter, reflected from the target, and eventually received by the receiver. The bistatic range measurement Rb is defined as Rb = RT + RR − L. In the radar sensor, the bistatic range measurement is obtained by Rb = cΔt, where Δt is the time difference between the receiver receiving the direct signal from the transmitter and receiving the reflected signal from the target. Other than the bistatic range measurement, a bistatic sensor can also optionally report bistatic range rate, azimuth, and elevation measurements of the target. Since the bistatic range and the two bearing angles (azimuth and elevation) do not correspond to the same position vector, they cannot be combined into a position vector and reported in a Cartesian coordinate system. As a result, the measurements of a bistatic sensor can only be reported in a spherical coordinate system.
For the ESM detection mode, the receiver can only receive a signal reflected from the target or directly emitted from the transmitter, as shown in figure (c). Therefore, the only available measurements are azimuth and elevation of the target or transmitter. These measurements can only be reported in a spherical coordinate system.
Object Detections
The sensor measures the coordinates of the target. The
Measurement
and MeasurementNoise
values are reported in the coordinate system specified by the
DetectionCoordinates
property of the sensor.
When the DetectionCoordinates
property is
'Scenario'
, 'Body'
, or
'Sensor rectangular'
, the
Measurement
and MeasurementNoise
values are reported in rectangular coordinates. Velocities are only reported
when the range rate property, HasRangeRate
, is
true
.
When the DetectionCoordinates
property is
'Sensor spherical'
, the Measurement
and MeasurementNoise
values are reported in a spherical
coordinate system. Measurements are ordered as [azimuth, elevation, range, range
rate]. Angles are in degrees, range is in meters, and range rate is in meters
per second. Elevation and range rate are only reported when
HasElevation
and HasRangeRate
are
true
.
Note:
When the
DetectionMode
is set to 'ESM' or 'bistatic', the detections can only be reported in'Sensor spherical'
coordinate system.When the
DetectionMode
is set to 'monostatic', the reported'range'
is the range measurement from the target to the radar sensor.When the
DetectionMode
is set to 'bistatic', the reported'range'
is the bistatic range measurement (see Radar Sensor Detection Modes).
Measurement Coordinates
DetectionCoordinates | Measurement and Measurement Noise Coordinates | |||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
'Scenario' |
Coordinate Dependence on
| |||||||||||||||||||||
'Body' | ||||||||||||||||||||||
'Sensor rectangular' | ||||||||||||||||||||||
'Sensor spherical' |
Coordinate for 'monostatic' or 'bistatic'
Detection Mode (Dependence on
Coordinate for 'ESM' Detection Mode (Dependence
on
|
where az
, el
,
rng
and rr
represent azimuth angle,
elevation angle, range and range rate, respectively.
The MeasurementParameters
property consists of an array of structures
that describe a sequence of coordinate transformations from a child frame to a parent frame
or the inverse transformations (see Frame Rotation). In most cases, the
longest required sequence of transformations is Sensor → Platform → Scenario.
If the detections are reported in sensor spherical coordinates and
HasINS
is set to false
, then the sequence
consists only of one transformation from sensor to platform. In the transformation, the
OriginPosition
is same as the MountingLocation
property of the sensor. The Orientation
consists of two consecutive
rotations. The first rotation, corresponding to the MountingAngles
property of the sensor, accounts for the rotation from the platform frame
(P) to the sensor mounting frame (M). The second
rotation, corresponding to the azimuth and elevation angles of the sensor, accounts for the
rotation from the sensor mounting frame (M) to the sensor scanning frame
(S). In the S frame, the x
direction is the boresight direction, and the y direction lies within the
x-y plane of the sensor mounting frame
(M).
If HasINS
is true
, the sequence of transformations
consists of two transformations – first form the scenario frame to the platform frame then
from platform frame to the sensor scanning frame. In the first transformation, the
Orientation
is the rotation from the scenario frame to the platform
frame, and the OriginPosition
is the position of the platform frame
origin relative to the scenario frame.
Trivially, if the detections are reported in platform rectangular coordinates and
HasINS
is set to false
, the transformation
consists only of the identity.
The fields of MeasurementParameters
are shown here. Not all fields have
to be present in the structure. The set of fields and their default values can depend on the
type of sensor.
Field | Description |
Frame | Enumerated type indicating the frame used to report
measurements. When detections are reported using a rectangular
coordinate system, |
OriginPosition | Position offset of the origin of the child frame relative to the parent frame, represented as a 3-by-1 vector. |
OriginVelocity | Velocity offset of the origin of the child frame relative to the parent frame, represented as a 3-by-1 vector. |
Orientation | 3-by-3 real-valued orthonormal frame rotation matrix. The
direction of the rotation depends on the
|
IsParentToChild | A logical scalar indicating if |
HasElevation | A logical scalar indicating if elevation is included in the
measurement. For measurements reported in a rectangular frame, and
if |
HasAzimuth | A logical scalar indicating if azimuth is included in the measurement. |
HasRange | A logical scalar indicating if range is included in the measurement. |
HasVelocity | A logical scalar indicating if the reported detections include
velocity measurements. For measurements reported in the rectangular
frame, if |
Object attributes contain additional information about a detection.
Attribute | Description |
TargetIndex | Identifier of the platform,
|
EmitterIndex | Index of the emitter from which the detected signal was emitted. |
SNR | Detection signal-to-noise ratio in dB. |
CenterFrequency |
|
Bandwidth |
|
WaveformType |
|
Convenience Syntaxes
The convenience syntaxes set several properties together to model a specific type of radar.
Sets ScanMode
to 'No scanning'.
This syntax sets these properties:
Property | Value |
ScanMode | 'Mechanical' |
HasElevation | true |
MaxMechanicalScanRate | [75;75] |
MechanicalScanLimits | [-45 45; -10 0] |
ElectronicScanLimits | [-45 45; -10 0] |
You can change the ScanMode
property to
'Electronic'
to perform an electronic raster scan over
the same volume as a mechanical scan.
This syntax sets these properties:
Property | Value |
ScanMode | 'Mechanical' |
FieldOfView | [1:10] |
HasElevation | false or true
|
MechanicalScanLimits | [0 360; -10 0] |
ElevationResolution | 10/sqrt(12) |
This syntax sets these properties:
Property | Value |
ScanMode | 'Mechanical' |
FieldOfView | [1;10] |
HasElevation | false |
MechanicalScanLimits | [-45 45; -10 0] |
ElectronicScanLimits | [-45 45; -10 0] |
ElevationResolution | 10/sqrt(12) |
Changing the ScanMode
property to
'Electronic'
lets you perform an electronic raster scan
over the same volume as a mechanical scan.
References
[1] Doerry, A. W.. "Earth curvature and atmospheric refraction effects on radar signal propagation." Sandia Report. SAND 2012-10690, 2013.
[2] Doerry, A. W.. "Motion Measurement for Synthetic Aperture Radar." Sandia Report. SAND 2015-20818, 2015.
Extended Capabilities
C/C++ Code Generation
Generate C and C++ code using MATLAB® Coder™.
Usage notes and limitations:
See System Objects in MATLAB Code Generation (MATLAB Coder).
Version History
Introduced in R2018bradarSensor
System object is not recommended
The radarSensor
System object is not recommended unless you require C/C++
code generation. Instead, use the fusionRadarSensor
System object. Currently, fusionRadarSensor
does not support C/C++ code generation.
There are no current plans to remove the radarSensor
System object. MATLAB® code that use this features will continue to run.
See Also
Objects
Functions
MATLAB Command
You clicked a link that corresponds to this MATLAB command:
Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)
Asia Pacific
- Australia (English)
- India (English)
- New Zealand (English)
- 中国
- 日本Japanese (日本語)
- 한국Korean (한국어)