radarDataGenerator
Description
The radarDataGenerator
System object™ generates detections or track reports of
targets. You can specify the detection mode of the sensor as monostatic, bistatic, or
electronic support measure (ESM) through the DetectionMode
property. You
can use radarDataGenerator
to simulate clustered or unclustered detections with
added random noise, and also generate false alarm detections. You can fuse the generated
detections with other sensor data and track objects using a radarTracker
object.
You can also output tracks directly from the radarDataGenerator
object. To configure
whether targets are output as clustered detections, unclustered detections, or tracks, use the
TargetReportFormat
property. You can add radarDataGenerator
to a Platform
and then
use the radar in a radarScenario
.
Using a single-exponential model, 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 References for more details.
To generate radar detections or track reports:
Create the
radarDataGenerator
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
monostatic radar sensor that reports clustered detections and uses default property
values.rdr
= radarDataGenerator
sets the SensorIndex
property to the specified rdr
= radarDataGenerator(id
)id
.
is a convenience syntax that creates a monostatic radar sensor and sets its scanning
configuration to a predefined rdr
= radarDataGenerator(___,scanConfig
)scanConfig
, in addition to any input
arguments from previous syntaxes. You can specify scanConfig
as
'No scanning'
, 'Raster'
,
'Rotator'
, 'Sector'
, or
'Custom'
. See Convenience Syntaxes for more details on
these configurations.
sets Properties using one or more
name-value pairs. Enclose each property name in quotes. For example,
rdr
= radarDataGenerator(___,Name,Value
)radarDataGenerator('TargetReportFormat','Tracks','FilterInitializationFcn',@initcvkf)
creates a radar sensor that generates track reports using a tracker initialized by a
constant-velocity linear Kalman filter.
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.
Sensor IdentificationSensorIndex
— Unique sensor identifier
0
(default) | positive integer
Unique sensor identifier, specified as a positive integer. Use this property to distinguish
between detections or tracks that come from different sensors in a multisensor system.
Specify a unique value for each sensor. If you do not update
SensorIndex
from the default value of 0
,
then the radar returns an error at the start of simulation.
Data Types: double
UpdateRate
— Sensor update rate (Hz)
1
(default) | positive real scalar
Sensor update rate, in hertz, specified as a positive real scalar. The reciprocal of the update rate must be an integer multiple of the simulation time interval. The radar generates new reports at intervals defined by this reciprocal value. Any sensor update requested between update intervals contains no detections or tracks.
Data Types: double
MountingLocation
— Mounting location of radar on platform (m)
[0 0 0]
(default) | 1-by-3 real-valued vector
Mounting location of the radar on the platform, in meters, specified as a 1-by-3 real-valued vector of the form [x y z]. This property defines the coordinates of the sensor along the x-axis, y-axis, and z-axis relative to the platform body frame.
Data Types: double
MountingAngles
— Mounting rotation angles of radar (deg)
[0 0 0]
(default) | 1-by-3 real-valued vector of form [zyaw
ypitch
xroll]
Mounting rotation angles of the radar, in degrees, specified as a 1-by-3 real-valued vector of the form [zyaw ypitch xroll]. This property defines the intrinsic Euler angle rotation of the sensor around the z-axis, y-axis, and x-axis with respect to the platform body frame, where:
zyaw, or yaw angle, rotates the sensor around the z-axis of the platform body frame.
ypitch, or pitch angle, rotates the sensor around the y-axis of the platform body frame. This rotation is relative to the sensor position that results from the zyaw rotation.
xroll, or roll angle, rotates the sensor about the x-axis of the platform body frame. This rotation is relative to the sensor position that results from the zyaw and ypitch rotations.
These angles are clockwise-positive when looking in the forward direction of the z-axis, y-axis, and x-axis, respectively.
Data Types: double
ScanMode
— Scanning mode of radar
'Mechanical'
(default) | 'Electronic'
| 'Mechanical and electronic'
| 'No scanning'
| 'Custom'
Scanning mode of the radar, specified as 'Mechanical'
,
'Electronic'
, 'Mechanical and electronic'
,
'No scanning'
, or 'Custom'
.
ScanMode | Purpose |
---|---|
'Mechanical' | The sensor scans mechanically across the azimuth and elevation limits specified by the MechanicalAzimuthLimits and MechanicalElevationLimits properties. 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 ElectronicAzimuthLimits and ElectronicElevationLimits properties. 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 mechanical angles 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 field of view angle between dwells. |
'No scanning' | The sensor beam points along the antenna boresight defined by the MountingAngles property. |
'Custom' | The sensor points the beam in the direction specified by the LookAngle property. |
Example: 'No scanning'
MaxAzimuthScanRate
— Maximum mechanical azimuth scan rate (deg/s)
75
(default) | nonnegative scalar
Maximum mechanical azimuth scan rate, specified as a nonnegative scalar in degrees per second. This property sets the maximum scan rate at which the sensor can mechanically scan in azimuth. The sensor sets its scan rate to step the radar mechanical angle by the field of view. If the required scan rate exceeds the maximum scan rate, the maximum scan rate is used.
Dependencies
To enable this property, set the ScanMode
property to
'Mechanical'
or 'Mechanical and electronic'
.
Data Types: double
MaxElevationScanRate
— Maximum mechanical elevation scan rate (deg/s)
75
(default) | nonnegative scalar
Maximum mechanical elevation scan rate, specified as a nonnegative scalar in degrees per second. The property sets the maximum scan rate at which the sensor can mechanically scan in elevation. The sensor sets its scan rate to step the radar mechanical angle by the field of view. If the required scan rate exceeds the maximum scan rate, the maximum scan rate is used.
Dependencies
To enable this property, set the ScanMode
property to
'Mechanical'
or 'Mechanical and electronic'
.
Also, set the HasElevation
property to
true
.
Data Types: double
MechanicalAzimuthLimits
— Mechanical azimuth scan limits (deg)
[0 360]
(default) | two-element real-valued vector
Mechanical azimuth scan limits, specified as a two-element real-valued vector of the form [azMin azMax], where azMin ≤ azMax and azMax – azMin ≤ 360. The limits define the minimum and maximum mechanical azimuth angles, in degrees, the sensor can scan from its mounted orientation.
Example: [-10 20]
Dependencies
To enable this property, set the ScanMode
property to
'Mechanical'
or 'Mechanical and
electronic'
.
Data Types: double
MechanicalElevationLimits
— Mechanical elevation scan limits (deg)
[-10 0]
(default) | two-element real-valued vector
Mechanical elevation scan limits, specified as a two-element real-valued vector of the form [elMin elMax], where –90 ≤ elMin ≤ elMax ≤ 90. The limits define the minimum and maximum mechanical elevation angles, in degrees, the sensor can scan from its mounted orientation.
Example: [-50 20]
Dependencies
To enable this property, set the ScanMode
property to
'Mechanical'
or 'Mechanical and electronic'
.
Also, set the HasElevation
property to
true
.
Data Types: double
ElectronicAzimuthLimits
— Electronic azimuth scan limits (deg)
[-45 45]
(default) | two-element real-valued vector
Electronic azimuth scan limits, specified as a two-element real-valued vector of the form [azMin azMax], where -90 ≤ azMin ≤ azMax ≤ 90. The limits define the minimum and maximum electronic azimuth angles, in degrees, the sensor can scan from its mounted orientation.
Example: [-50 20]
Dependencies
To enable this property, set the ScanMode
property to
'Electronic'
or 'Mechanical and electronic'
.
Data Types: double
ElectronicElevationLimits
— Electronic elevation scan limits (deg)
[-45 45]
(default) | two-element real-valued vector
Electronic elevation scan limits, specified as a two-element real-valued vector of the form [elMin elMax], where -90 ≤ elMin ≤ elMax ≤ 90. The limits define the minimum and maximum electronic elevation angles, in degrees, the sensor can scan from its mounted orientation.
Example: [-50 20]
Dependencies
To enable this property, set the ScanMode
property to
'Electronic'
or 'Mechanical and electronic'
.
Also, set the HasElevation
property to
true
.
Data Types: double
MechanicalAngle
— Current mechanical scan angle
two-element real-valued vector
This property is read-only.
Current mechanical scan angle of radar, specified as a two-element real-valued vector of the form [az el]. az and el represent the mechanical azimuth and elevation scan angles, respectively, relative to the mounted angle of the radar on the platform.
Data Types: double
ElectronicAngle
— Current electronic scan angle
two-element real-valued vector
This property is read-only.
Current electronic scan angle of radar, specified as a two-element real-valued vector of the form [az el]. az and el represent the electronic azimuth and elevation scan angles, respectively, relative to the current mechanical angle.
Data Types: double
LookAngle
— Current look angle of sensor
two-element real-valued vector
This property is read-only unless ScanMode
is specified as 'Custom'
.
Current look angle of the sensor, specified as a two-element real-valued vector of
the form [az
el]. az and el represent the
azimuth and elevation look angles, respectively. 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 0] |
'Custom' | LookAngle can be set to point the radar beam to a
specific azimuth and elevation. |
Dependencies
To enable setting this property, set the ScanMode
property to 'Custom'
. Otherwise, this
property is read-only.
BeamShape
— Shape of main beam
'Rectangular'
| 'Gaussian'
Shape of the main beam of the two-way antenna pattern, specified as
'Rectangular'
or 'Gaussian'
.
When set to
'Rectangular'
, the main beam is assumed to have an idealized rectangular shape with a uniform antenna gain within the half-power beamwidth and a zero gain outside the half-power beamwidth.When set to
'Gaussian'
, the main beam is approximated by an ideal Gaussian antenna pattern with no side lobes. The azimuth and the elevation half-power beamwidths are determined by the corresponding values of theAzimuthResolution
andElevationResolution
properties.
The radar main beam is assumed to have the specified beam shape only within the
effective field of view. Outside the effective field of view, the two-way antenna
pattern is assumed to be zero. When BeamShape
is set to
'Gaussian'
, the field of view in the azimuth and the elevation
directions is assumed to be twice the corresponding half-power beamwidth. When
BeamShape
is set to 'Rectangular'
, the azimuth
and the elevation fields of view are set to be equal to the corresponding half-power
beamwidth. When HasScanLoss
is true
, the azimuth
and the elevation half-power beamwidths are adjusted to include beam broadening due to
scanning off-broadside. In this case, the half-power beamwidths are determined by the
corresponding values of the EffectiveAzimuthResolution
and
EffectiveElevationResolution
properties.
Dependencies
To enable this property, set the ScanMode
property to
'Custom'
. If the ScanMode
property is not
set to 'Custom'
, then the beamshape is rectangular.
Data Types: char
| string
EffectiveFieldOfView
— Total effective angular field of view
1-by-2 real-valued vector
This property is read-only.
Current effective azimuthal and elevation fields of view, specified as 2-element
vector, [azfov, elfov]
.
When
BeamShape
is set to'Gaussian'
,EffectiveFieldOfView=2*[AzimuthResolution ElevationResolution]
.When
BeamShape
is set to'Rectangular'
,EffectiveFieldOfView=[AzimuthResolution ElevationResolution]
.
When HasScanLoss
is true
,
EffectiveFieldOfView
includes the effect of beam broadening when
the radar is pointed to an off-broadside angle. In that case it is determined by the
corresponding values of the EffectiveAzimuthResolution
and
EffectiveElevationResolution
properties. Units are in
degrees.
Example: [3,4]
Dependencies
To enable this property, set the ScanMode
property to
'Custom'
.
Data Types: double
EffectiveAzimuthResolution
— Effective azimuth resolution
scalar
This property is read-only.
Current effective azimuthal resolution of the sensor, specified as a scalar. When
HasScanLoss
is true
,
EffectiveAzimuthResolution
includes the effect of beam broadening
when the radar is pointed to an off-broadside angle. At boresight
EffectiveAzimuthResolution
equals to the value of the
AzimuthResolution
property.
EffectiveAzimuthResolution
equals
AzimuthResolution
for all look angles when the
HasScanLoss
property is set to false
.
Dependencies
To enable this property, set the ScanMode
property to
'Custom'
.
EffectiveElevationResolution
— Effective elevation resolution
scalar
This property is read-only.
Current effective elevation resolution of the sensor, specified as a scalar. When
HasScanLoss
is true
,
EffectiveElevationResolution
includes the effect of beam
broadening when the radar is pointed to an off-broadside angle. At boresight
EffectiveElevationResolution
equals to the value of the
ElevstionResolution
property.
EffectiveElevationResolution
equals
ElevstionResolution
for all look angles when the
HasScanLoss
property is set to false
.
Dependencies
To enable this property, set the ScanMode
property to
'Custom'
.
DetectionMode
— Detection mode
'Monostatic'
(default) | 'ESM'
|
'Bistatic'
Detection mode, specified as 'Monostatic'
,
'ESM'
, or 'Bistatic'
. When set to
'Monostatic'
, the sensor generates detections from reflected
signals originating from a collocated radar emitter. When set to
'ESM'
, the sensor operates passively and can model ESM and (radar
warning receiver) RWR systems. 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'
HasElevation
— Enable radar to scan in elevation and measure target elevation angles
false
or 0
(default) | true
or 1
Enable the radar to scan in elevation and measure target elevation angles, specified
as a logical 0
(false
) or 1
(true
). Set this property to true
to model a
radar sensor that can estimate target elevation.
Data Types: logical
HasRangeRate
— Enable radar to measure target range rates
false
or 0
(default) | true
or 1
Enable the radar to measure target range rates, specified as a logical
0
(false
) or 1
(true
). Set this property to true
to model a
radar sensor that can measure range rates from target detections.
Data Types: logical
HasNoise
— Enable addition of noise to radar sensor measurements
true
or 1
(default) | false
or 0
Enable the addition of noise to radar sensor measurements, specified as a logical
1
(true
) or 0
(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 sensor reports the
measurement noise covariance matrix specified in the
MeasurementNoise
property of its object detection outputs.
When the sensor reports tracks, the sensor uses the measurement covariance matrix to estimate the track state and state covariance matrix.
Data Types: logical
HasFalseAlarms
— Enable creating false alarm radar detections
true
or 1
(default) | false
or 0
Enable creating false alarm radar measurements, specified as a logical 1
(true
) or 0
(false
). Set
this property to true
to report false alarms. Otherwise, the radar
reports only actual detections.
Data Types: logical
HasOcclusion
— Enable occlusion from extended objects
true
or 1
(default) | false
or 0
Enable occlusion from extended objects, specified as a logical 1
(true
) or 0
(false
). Set this
property to true
to model occlusion from extended objects. The sensor
models two types of occlusion, self occlusion and inter-object occlusion. 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.
Data Types: logical
HasGhosts
— Enable ghost targets in target reports
false
or 0
(default) | true
or 1
Enable ghost targets in target reports, specified as a logical 1
(true
) or 0
(false
). The
sensor generates ghost targets for multipath propagation paths up to three reflections
between transmission and reception of the radar signal. The sensor only generates ghost
targets when the DetectionMode
property is set to
'Monostatic'
.
Data Types: logical
HasRangeAmbiguities
— Enable range ambiguities
false
or 0
(default) | true
or 1
Enable range ambiguities, specified as a logical 0
(false
) or 1
(true
). Set this
property to true
to enable sensor range ambiguities. In this case,
the sensor does not resolve range ambiguities, and target ranges beyond the MaxUnambiguousRange are wrapped into the interval [0,
MaxUnambiguousRange]
. When false
, the sensor reports
targets at their unambiguous range.
Data Types: logical
HasRangeRateAmbiguities
— Enable range-rate ambiguities
false
or 0
(default) | true
or 1
Enable range-rate ambiguities, specified as a logical 0
(false
) or 1
(true
). Set this
property to true
to enable sensor range-rate ambiguities. When
true
, the sensor does not resolve range rate ambiguities. Target
range rates beyond the MaxUnambiguousRadialSpeed are wrapped into the interval [0,
MaxUnambiguousRadialSpeed]
. When false
, the sensor
reports targets at their unambiguous range rates.
Dependencies
To enable this property, set the HasRangeRate
property to
true
.
Data Types: logical
HasINS
— Enable inertial navigation system (INS) input
false
or 0
(default) | true
or 1
Enable the INS input argument, which passes the current estimate of the sensor
platform pose to the sensor, specified as a logical 0
(false
) or 1
(true
). When
true
, pose information is added to the
MeasurementParameters
structure of the reported detections or the
StateParameters
structure of the reported tracks, based on the
TargetReportFormat
property. Pose information enables tracking
and fusion algorithms to estimate the state of the target in the scenario frame.
Data Types: logical
HasScanLoss
— Enable losses due to electronic scanning off-broadside
false (default) | true
Enable scan loss due to electronic scanning off-broadside, specified as false or true. Scan loss models the effect of antenna array beam broadening when the radar points to an off-broadside angle.
Dependencies
To enable this property, set the ScanMode
property to
'Custom'
.
Data Types: logical
MaxNumReportsSource
— Source of maximum for number of detection or track reports
'Auto'
(default) | 'Property'
Source of the maximum for the number of detection or track reports, specified as one of these options:
'Auto'
— The sensor reports all detections or tracks.'Property'
— The sensor reports the first N valid detections or tracks, where N is equal to theMaxNumReports
property value.
MaxNumReports
— Maximum number of detection or track reports
100
(default) | positive integer
Maximum number of detection or track reports, specified as a positive integer. The sensor reports detections, in order of increasing distance from the sensor, until reaching this maximum number.
Dependencies
To enable this property, set the MaxNumReportsSource
property
to 'Property'
.
Data Types: double
TargetReportFormat
— Format of generated target reports
'Clustered detections'
(default) | 'Tracks'
| 'Detections'
Format of generated target reports, specified as one of these options:
'Clustered detections'
— The sensor generates target reports as clustered detections, where each target is reported as a single detection that is the centroid of the unclustered target detections. The sensor returns clustered detections as a cell array ofobjectDetection
objects. To enable this option, set theDetectionMode
property to'Monostatic'
and set theEmissionsInputPort
property tofalse
.'Tracks'
— The sensor generates target reports as tracks, which are clustered detections that have been processed by a tracking filter. The sensor returns tracks as an array ofobjectTrack
objects. To enable this option, set theDetectionMode
property to'Monostatic'
and set theEmissionsInputPort
property tofalse
.'Detections'
— The sensor generates target reports as unclustered detections, where each target can have multiple detections. The sensor returns unclustered detections as a cell array ofobjectDetection
objects.
DetectionCoordinates
— Coordinate system used to report detections
'Body'
| 'Scenario'
| 'Sensor rectangular
| 'Sensor spherical'
Coordinate system used to report detections, specified as one of these options:
'Scenario'
— Detections are reported in the rectangular scenario coordinate frame. The scenario coordinate system is defined as the local navigation frame at simulation start time. To enable this value, set the HasINS 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 cannot be changed.
Example: 'Sensor spherical'
AzimuthResolution
— Azimuth resolution of radar (deg)
1
(default) | positive scalar
Azimuth resolution of the radar, in degrees, specified as a positive scalar. The azimuth resolution defines the minimum separation in azimuth angle at which the radar can distinguish between two targets. The azimuth resolution is typically the half-power beamwidth of the azimuth angle beamwidth of the radar.
Tunable: Yes
Data Types: double
ElevationResolution
— Elevation resolution of radar (deg)
5
(default) | positive scalar
Elevation resolution of the radar, in degrees, specified as a positive scalar. The elevation resolution defines the minimum separation in elevation angle at which the radar can distinguish between two targets. The elevation resolution is typically the half-power beamwidth of the elevation angle beamwidth of the radar.
Tunable: Yes
Dependencies
To enable this property, set the HasElevation
property to
true
.
Data Types: double
RangeResolution
— Range resolution of radar (m)
100
(default) | positive scalar
Range resolution of the radar, in meters, specified as a positive scalar. The range resolution defines the minimum separation in range at which the radar can distinguish between two targets.
Tunable: Yes
Data Types: double
RangeRateResolution
— Range-rate resolution of radar (m/s)
10
(default) | positive scalar
Range-rate resolution of the radar, in meters per second, specified as a positive real scalar. The range rate resolution defines the minimum separation in range rate at which the radar can distinguish between two targets.
Tunable: Yes
Dependencies
To enable this property, set the HasRangeRate
property to
true
.
Data Types: double
AzimuthBiasFraction
— Azimuth bias fraction of radar
0.1
(default) | nonnegative scalar
Azimuth bias fraction of the radar, specified as a nonnegative scalar. Azimuth bias is expressed as a fraction of the azimuth resolution specified in the AzimuthResolution
property. This value sets a lower bound on the azimuthal accuracy of the radar and is dimensionless.
Data Types: double
ElevationBiasFraction
— Elevation bias fraction of radar
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 ElevationResolution
property. This value sets a lower bound on the elevation accuracy of the radar and is dimensionless.
Dependencies
To enable this property, set the HasElevation
property to true
.
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 by the
RangeResolution
property. This property sets a lower bound on
the range accuracy of the radar and is dimensionless.
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 by the RangeRateResolution
property. This
property sets a lower bound on the range rate accuracy of the radar and is
dimensionless.
Dependencies
To enable this property, set the HasRangeRate
property to
true
.
Data Types: double
CenterFrequency
— Center frequency of radar band (Hz)
300e6
(default) | positive scalar
Center frequency of the radar band, specified as a positive scalar. Units are in Hz.
Tunable: Yes
Data Types: double
Bandwidth
— Radar waveform bandwidth
3e6
(default) | positive real scalar
Radar waveform bandwidth, specified as a positive real scalar. Units are in Hz.
Example: 100e3
Tunable: Yes
Data Types: double
WaveformTypes
— Types of detectable waveforms
0
(default) |
L-element vector of nonnegative integers
Types of detectable waveforms, specified as an L-element vector of nonnegative integers. Each integer represents a type of waveform detectable by the radar.
Example: [1 4 5]
Data Types: double
ConfusionMatrix
— Probability of correct classification of detected waveform
1
(default) | positive scalar | L-element vector of nonnegative real values | L-by-L matrix of nonnegative real
values
Probability of correct classification of a detected waveform, specified as a
positive scalar, an L-element vector of nonnegative real values, or
an L-by-L matrix of nonnegative real values,
where L is the number of waveform types detectable by the sensor, as
indicated by the value set in the WaveformTypes
property. Matrix
values must be in the range [0, 1].
The (i, j) matrix element represents the probability of classifying the ith waveform as the jth waveform. When you specify this property as a scalar from 0 through 1, the value is expanded along the diagonal of the confusion matrix. When specified as a vector, the vector is aligned as the diagonal of the confusion matrix. When defined as a scalar or a vector, the off-diagonal values are set to (1 – val)/(L –1), where val is the value of the diagonal element.
Data Types: double
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 detection
5
(default) | scalar
Minimum signal-to-noise ratio (SNR) required to declare a detection, specified as a scalar. Units are in dB.
Example: -1
Data Types: double
DetectionProbability
— Probability of detecting reference target
0.9
(default) | scalar in range (0, 1]
Probability of detecting a reference target, specified as a scalar in the range (0,
1]. This property defines the probability of detecting a reference target with a radar
cross-section (RCS), ReferenceRCS
, at the reference detection
range, ReferenceRange
.
Tunable: Yes
Data Types: double
ReferenceRange
— Reference range for given probability of detection (m)
100e3
(default) | positive real scalar
Reference range for the given probability of detection and the given reference radar
cross-section (RCS), in meters, specified as a positive real scalar. The
reference range is the range, at which a target having a radar
cross-section specified by the ReferenceRCS
property is detected
with a probability of detection specified by the
DetectionProbability
property.
Tunable: Yes
Data Types: double
ReferenceRCS
— Reference radar cross-section for given probability of detection (dBsm)
0
(default) | real scalar
Reference radar cross-section (RCS) for a given probability of detection and
reference range, specified as a real scalar. The reference RCS is
the RCS value at which a target is detected with a probability specified by
DetectionProbability
at the specified
ReferenceRange
value. Units are in decibel square meters
(dBsm).
Tunable: Yes
Data Types: double
FalseAlarmRate
— False alarm report rate
1e-6
(default) | positive real scalar in range [10–7,
10–3]
False alarm report rate within each radar resolution cell, specified as a positive
real scalar in the range [10–7,
10–3]. Units are dimensionless. The object determines
resolution cells from the AzimuthResolution
and
RangeResolution
properties and, when enabled, from the
ElevationResolution
and RangeRateResolution
properties.
Tunable: Yes
Data Types: double
FieldOfView
— Azimuthal and elevation field of view of radar (deg)
[1 5]
| 1-by-2 positive real-valued vector
Angular field of view of the radar, in degrees, specified as a 1-by-2 positive real-valued vector of the form [azfov elfov]. The field of view defines the total angular extent spanned by the sensor. The azimuth field of view, azfov, must be in the range (0, 360]. The elevation field of view, elfov, must be in the range (0, 180]. Targets outside of the angular field of view will not be detected. Units are in degrees.
Dependencies
To enable this property, set the ScanMode
property to any
value except 'Custom'
. When the ScanMode
property is set to 'Custom'
, the field of view is determined by the
angular resolutions specified in AzimuthResolution
and
ElevationResolution
properties and the current look angle
specified in LookAngle
Data Types: double
RangeLimits
— Minimum and maximum range of radar (m)
[0 100e3]
(default) | 1-by-2 nonnegative real-valued vector
Minimum and maximum range of radar, specified as a 1-by-2 nonnegative real-valued
vector of the form [min, max]
. The radar does not detect targets that
are outside this range. The maximum range, max
, must be greater than
the minimum range, min
. Units are in meters
Tunable: Yes
RangeRateLimits
— Minimum and maximum range rate of radar (m/s)
[-200 200]
(default) | 1-by-2 real-valued vector
Minimum and maximum range rate of radar, in meters per second, specified as a 1-by-2
real-valued vector of the form [min, max]
. The radar does not detect
targets that are outside this range rate. The maximum range rate,
max
, must be greater than the minimum range rate,
min
.
Tunable: Yes
Dependencies
To enable this property, set the HasRangeRate
property to
true
.
MaxUnambiguousRange
— Maximum unambiguous detection range
100e3
(default) | positive scalar
Maximum unambiguous detection 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]
. Units are in meters.
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 at which false alarms can be generated.
Example: 5e3
Tunable: Yes
Dependencies
To enable this property, set the HasRangeAmbiguities
property
to true
.
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]
. Units are
in meters per second.
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
at which false alarms can be generated.
Tunable: Yes
Dependencies
To enable this property, set HasRangeRate
and
HasRangeRateAmbiguities
to true
.
Data Types: double
RadarLoopGain
— Radar loop gain
real scalar
This property is read-only.
Radar loop gain, specified as a real scalar. RadarLoopGain
depends on the
values of the DetectionProbability
,
ReferenceRange
, ReferenceRCS
, and
FalseAlarmRate
properties. Radar loop gain is a function of the
reported signal-to-noise ratio of the radar, SNR, the target radar
cross-section, RCS, and the target range, R, as
described by this equation:
SNR = RadarLoopGain
+
RCS –
40log10(R)
SNR and RCS are in decibels and
decibel square meters, respectively, R is in meters, and
RadarLoopGain
is in decibels.
Data Types: double
InterferenceInputPort
— Enable interference input
false
or 0
(default) | true
or 1
Enable interference input, specified as a logical 0
(false
) or 1
(true
). Set this
property to true
to enable interference input when running the
radar.
Dependencies
To enable this property, set DetectionMode
to
'Monostatic'
and set EmissionsInputPort
to
false
.
Data Types: logical
EmissionsInputPort
— Enable emissions input
false
or 0
(default) | true
or 1
Enable emissions input, specified as a logical 0
(false
) or 1
(true
). Set this
property to true
to enable emissions input when running the
radar.
Dependencies
To enable this property, set DetectionMode
to
'Monostatic'
and set InterferenceInputPort
to false
.
Data Types: logical
EmitterIndex
— Unique identifier of monostatic emitter
1
(default) | positive integer
Unique identifier of the monostatic emitter, specified as a positive integer. Use this index to identify the monostatic emitter providing the reference emission for the radar.
Dependencies
To enable this property, set DetectionMode
to
'Monostatic'
and set EmissionsInputPort
to
true
.
Data Types: double
FilterInitializationFcn
— Kalman filter initialization function
@initcvekf
(default) | function handle | character vector | string scalar
Kalman filter initialization function, specified as a function handle or as a character vector or string scalar of the name of a valid Kalman filter initialization function.
The table shows the initialization functions that you can use to specify FilterInitializationFcn
.
Initialization Function | Function Definition |
---|---|
initcaabf | Initialize constant-acceleration alpha-beta Kalman filter |
initcvabf | Initialize constant-velocity alpha-beta Kalman filter |
initcakf | Initialize constant-acceleration linear Kalman filter. |
initcvkf | Initialize constant-velocity linear Kalman filter. |
initcaekf | Initialize constant-acceleration extended Kalman filter. |
initctekf
| Initialize constant-turnrate extended Kalman filter. |
initcvekf | Initialize constant-velocity extended Kalman filter. |
initcaukf
| Initialize constant-acceleration unscented Kalman filter. |
initctukf | Initialize constant-turnrate unscented Kalman filter. |
initcvukf | Initialize constant-velocity unscented Kalman filter. |
You can also write your own initialization function. The function must have the following syntax:
filter = filterInitializationFcn(detection)
objectDetection
object. The output of this function must be a tracking filter object, such as trackingKF
, trackingEKF
, trackingUKF
, or trackingABF
.To guide you in writing this function, you can examine the details of the supplied functions from within MATLAB®. For example:
type initcvekf
Dependencies
To enable this property, set the TargetReportFormat
property to 'Tracks'
.
Data Types: function_handle
| char
| string
ConfirmationThreshold
— Threshold for track confirmation
[2 3]
(default) | 1-by-2 vector of positive integers
Threshold for track confirmation, specified as a 1-by-2 vector of positive integers of the
form [M N]
. A track is confirmed if it receives at least
M
detections in the last N
updates.
M
must be less than or equal to N
.
When setting
M
, take into account the probability of object detection for the sensors. The probability of detection depends on factors such as occlusion or clutter. You can reduceM
when tracks fail to be confirmed or increaseM
when too many false detections are assigned to tracks.When setting
N
, consider the number of times you want the tracker to update before it makes a confirmation decision. For example, if a tracker updates every 0.05 seconds, and you want to allow 0.5 seconds to make a confirmation decision, setN = 10
.
Example: [3 5]
Dependencies
To enable this property, set the TargetReportFormat
property to 'Tracks'
.
Data Types: double
DeletionThreshold
— Threshold for track deletion
[5 5]
(default) | 1-by-2 vector of positive integers
Threshold for track deletion, specified as a 1-by-2 vector of positive integers of the form
[P R]
. If a confirmed track is not assigned to any detection
P
times in the last R
tracker updates, then
the track is deleted. P
must be less than or equal to
R
.
To reduce how long the radar maintains tracks, decrease
R
or increaseP
.To maintain tracks for a longer time, increase
R
or decreaseP
.
Example: [3 5]
Dependencies
To enable this property, set the TargetReportFormat
property to 'Tracks'
.
Data Types: double
TrackCoordinates
— Coordinate system of reported tracks
'Scenario'
| 'Body'
| 'Sensor'
Coordinate system used to report tracks, specified as one of these options:
'Scenario'
— Tracks are reported in the rectangular scenario coordinate frame. The scenario coordinate system is defined as the local navigation frame at simulation start time. To enable this option, set the HasINS property totrue
.'Body'
— Tracks are reported in the rectangular body system of the sensor platform.'Sensor'
— Tracks are reported in the sensor rectangular body coordinate system.
Dependencies
To enable this property, set the TargetReportFormat
property
to 'Tracks'
.
Profiles
— Physical characteristics of target platforms
structure | array of structures
Physical characteristics of target platforms, specified as a structure or an array of structures. Unspecified fields take default values.
If you specify the property as a structure, then the structure applies to all target platforms.
If you specify the property as an array of structures, then each structure in the array applies to the corresponding target platform based on the
PlatformID
filed. In this case, you must specify eachPlatformID
filed as a positive integer and must not leave the field as empty.
Field | Description | Default Value |
---|---|---|
PlatformID | Scenario-defined platform identifier, defined as a positive integer. | empty |
ClassID | User-defined platform classification identifier, defined as a nonnegative integer. | 0 |
Dimensions | Platform dimensions, defined as a structure with these fields:
| 0 |
Signatures | Platform signatures, defined as a cell array containing an rcsSignature
object, which specifies the RCS signature of the platform. | The default rcsSignature
object |
See Platform
(Sensor Fusion and Tracking Toolbox) for
more details on these fields.
Data Types: struct
Usage
Syntax
Description
Monostatic Detection Mode
These syntaxes apply when you set the DetectionMode
property to
'Monostatic'
.
returns monostatic target reports
= rdr(targetPoses
,simTime
)reports
from the target poses,
targetPoses
, at the current simulation time,
simTime
. The object can generate reports for multiple targets. To
enable this syntax:
Set the
DetectionMode
property to'Monostatic'
.Set the
InterferenceInputPort
property tofalse
.Set the
EmissionsInputPort
property tofalse
.
specifies the interference signals, reports
= rdr(targetPoses
,interferences
,simTime
)interferences
, in the radar
signal transmission. To enable this syntax:
Set the
DetectionMode
property to'Monostatic'
.Set the
InterferenceInputPort
property totrue
.Set the
EmissionsInputPort
property tofalse
.
returns monostatic target reports based on the emission signal,
reports
= rdr(emissions
,emitterConfigs
,simTime
)emissions
, and the configurations of the corresponding emitters,
emitterConfigs
, that generate the emissions. To enable this
syntax:
Set the
DetectionMode
property to'Monostatic'
.Set the
InterferenceInputPort
property tofalse
.Set the
EmissionsInputPort
property totrue
.
Bistatic or ESM Detection Mode
This syntax applies when you set the DetectionMode
property to
'Bistatic'
or 'ESM'
. In these two modes, the
TargetReportFormat
can only be 'Detections'
and
the DetectionCoordinates
can only be 'Sensor
spherical'
.
Provide INS Input
This syntax applies when you set the HasINS
property to
true
.
Output Additional Information
Use this syntax if you want to output additional information of the reports.
[
returns the number of reports, reports
,numReports
,config
] = rdr(___)numReports
, and the configuration of
the radar, config
, at the current simulation time.
Input Arguments
targetPoses
— Target poses
array of structures
Radar scenario target poses, specified as an array of structures. Each structure
corresponds to a target. You can generate the structure using the targetPoses
object function of a platform. You can also create such a
structure manually. This table shows the fields of the structure:
Field | Description |
---|---|
PlatformID | Unique identifier for the platform, specified as a positive integer. This is a required field with no default value. |
ClassID | User-defined integer used to classify
the type of target, specified as a nonnegative integer. |
Position | Position of the target in platform coordinates, specified as a real-valued, 1-by-3 vector. This is a required field with no default value. Units are in meters. |
Velocity | Velocity of the target in platform coordinates, specified as a real-valued, 1-by-3
vector. Units are in meters per second. The default is |
Acceleration | Acceleration of the target in platform coordinates specified as a
1-by-3 row vector. Units are in meters per second-squared. The default is
|
Orientation | Orientation of the target with respect to platform coordinates, specified as a scalar
quaternion or a 3-by-3 rotation matrix. Orientation defines the frame
rotation from the platform coordinate system to the current target body
coordinate system. Units are dimensionless. The default is
|
AngularVelocity | Angular velocity of the target in platform 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 |
The values of the Position
,
Velocity
, and Orientation
fields are defined
with respect to the platform body frame.
If the dimensions of the target or RCS signature change with respect to time, you can specify these two additional fields in the structure:
Field | Description |
---|---|
Dimensions | Platform dimensions, specified as a structure with these fields:
|
Signatures | Platform signatures, specified as a cell array containing an rcsSignature object, which specifies the RCS signature of the
platform. |
If the dimensions of the target and RCS signature remain static with respect to time, you can specify its dimensions and RCS signature using the Profiles property.
interferences
— Interference radar emissions
array of radarEmission
objects | cell array of radarEmission
objects | array of structure
Interference radar emissions, specified as an array or cell array of radarEmission
objects. You can also specify interferences
as an array of
structures with field names corresponding to the property names of the radarEmission
object.
emissions
— Radar emissions
array of radarEmission
objects | cell array of radarEmission
objects | array of structures
Radar emissions, specified as an array or cell array of radarEmission
objects. You can also specify emissions
as an array of structures
with field names corresponding to the property names of the radarEmission
object.
emitterConfigs
— Emitter configurations
array of structures
Emitter configurations, specified as an array of structures. This array must
contain the configuration of the radar emitter whose EmitterIndex
matches the value of the EmitterIndex
property of the
radarDataGenerator
. Each structure has these fields:
Field | Description |
EmitterIndex | Unique emitter index. |
IsValidTime | Valid emission time, returned as |
IsScanDone |
|
FieldOfView | Field of view of the emitter. |
MeasurementParameters |
|
For more details on MeasurementParameters
, see
Measurement Parameters.
Data Types: struct
insPose
— Platform pose from INS
structure
Platform pose information from an inertial navigation system (INS), specified as a structure with these fields:
Field | Definition |
Position | Position in the scenario frame, specified as a real-valued 1-by-3 vector. Units are in meters. |
Velocity | Velocity in the scenario frame, specified as a real-valued 1-by-3 vector. Units are in meters per second. |
Orientation | Orientation with respect to the scenario frame, specified as a
|
simTime
— Current simulation time
nonnegative scalar
Current simulation time, specified as a nonnegative scalar. The radarScenario
object calls the scan radar sensor at regular time
intervals. The sensor only generates reports at simulation times corresponding to
integer multiples of the update interval, which is given by the reciprocal of the
UpdateRate
property.
When called at these intervals, targets are reported in
reports
, the number of reports is returned innumReports
, and theIsValidTime
field of the returnedconfig
structure is returned astrue
.When called at all other simulation times, the sensor returns an empty report,
numReports
is returned as0
, and theIsValidTime
field of the returnedconfig
structure is returned asfalse
.
Example: 10.5
Data Types: double
Output Arguments
reports
— Detections or track reports
cell array of objectDetection
objects | cell array of objectTrack
objects
Detection or track reports, returned as one of these options:
A cell array of
objectDetection
objects, when the TargetReportFormat property is set to'Detections'
or'Clustered detections'
. Additionally, when theDetectionMode
is set to'ESM'
or'Bistatic'
, the sensor can only generate unclustered detections and cannot generate clustered detections.A cell array of
objectTrack
objects, when the TargetReportFormat property is set to'Tracks'
. The sensor can only output tracks when theDetectionMode
is set to'Monostatic'
. The sensor returns only confirmed tracks, which are tracks that satisfy the confirmation threshold specified in theConfirmationThreshold
property. For these tracks, theIsConfirmed
property of the object istrue
.
In generated code, reports return as equivalent structures with field names
corresponding to the property names of the objectDetection
object or
the property names of the objectTrack
objects, based on the
TargetReportFormat
property.
The format and coordinates of the measurement states or track states is determined
by the specifications of the HasRangeRate
,
HasElevation
, HasINS
,
TaregetReportFormat
, and
DetectionCoordinates
properties. For more details, see Detection and Track State Coordinates.
numReports
— Number of reported detections or tracks
nonnegative integer
Number of reported detections or tracks, returned as a nonnegative integer.
numReports
is equal to the length of the
reports
argument.
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 |
|
FieldOfView | Field of view of the sensor, returned as a 2-by-1 vector of
positive real values, [ |
RangeLimits | Minimum and maximum range of sensor, in meters, specified as a
1-by-2 nonnegative real-valued vector of the form
|
RangeRateLimits | Minimum and maximum range rate of sensor, in meters per second,
specified as a 1-by-2 real-valued vector of the form
|
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 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 radarDataGenerator
coverageConfig | Sensor and emitter coverage configuration |
radarTransceiver | Create corresponding radar transceiver from
radarDataGenerator |
perturb | Apply perturbations to object |
perturbations | Perturbation defined on object |
Examples
Model Air Traffic Control Tower Scanning
Create three targets by specifying their platform ID, position, and velocity.
tgt1 = struct('PlatformID',1, ... 'Position',[0 -50e3 -1e3], ... 'Velocity',[0 900*1e3/3600 0]); tgt2 = struct('PlatformID',2, ... 'Position',[20e3 0 -500], ... 'Velocity',[700*1e3/3600 0 0]); tgt3 = struct('PlatformID',3, ... 'Position',[-20e3 0 -500], ... 'Velocity',[300*1e3/3600 0 0]);
Create an airport surveillance radar that is 15 meters above the ground.
rpm = 12.5; fov = [1.4; 5]; % [azimuth; elevation] scanrate = rpm*360/60; % deg/s updaterate = scanrate/fov(1); % Hz sensor = radarDataGenerator(1,'Rotator', ... 'UpdateRate',updaterate, ... 'MountingLocation',[0 0 -15], ... 'MaxAzimuthScanRate',scanrate, ... 'FieldOfView',fov, ... 'AzimuthResolution',fov(1));
Generate detections from a full scan of the radar.
simTime = 0; detBuffer = {}; while true [dets,numDets,config] = sensor([tgt1 tgt2 tgt3],simTime); detBuffer = [detBuffer; dets]; %#ok<AGROW> % Is full scan complete? if config.IsScanDone break % yes end simTime = simTime + 1/sensor.UpdateRate; end radarPosition = [0 0 0]; tgtPositions = [tgt1.Position; tgt2.Position; tgt3.Position];
Visualize the results.
clrs = lines(3); figure hold on % Plot radar position plot3(radarPosition(1),radarPosition(2),radarPosition(3),'Marker','s', ... 'DisplayName','Radar','MarkerFaceColor',clrs(1,:),'LineStyle','none') % Plot truth plot3(tgtPositions(:,1),tgtPositions(:,2),tgtPositions(:,3),'Marker','^', ... 'DisplayName','Truth','MarkerFaceColor',clrs(2,:),'LineStyle', 'none') % Plot detections if ~isempty(detBuffer) detPos = cellfun(@(d)d.Measurement(1:3),detBuffer, ... 'UniformOutput',false); detPos = cell2mat(detPos')'; plot3(detPos(:,1),detPos(:,2),detPos(:,3),'Marker','o', ... 'DisplayName','Detections','MarkerFaceColor',clrs(3,:),'LineStyle','none') end xlabel('X(m)') ylabel('Y(m)') axis('equal') legend('Location','east')
Detect Radar Emission with radarDataGenerator
Create a radar emission and then detect the emission using a radarDataGenerator
object.
First, create a 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 radarDataGenerator
.
sensor = radarDataGenerator(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]
Point Radar at Target
Create a radar that can be pointed directly at targets of interest to generate statistical detections. This setup is useful in cases where the azimuth and elevation of the target are already estimated by a tracker. Thus the radar can be cued to detect the target to update the track in between surveillance updates and other target track updates. To specify such a radar, set the ScanMode
property of radarDataGenerator
to "Custom"
.
rdr = radarDataGenerator(1,'ScanMode','Custom','HasElevation',true)
rdr = radarDataGenerator with properties: SensorIndex: 1 UpdateRate: 1 DetectionMode: 'Monostatic' ScanMode: 'Custom' InterferenceInputPort: 0 MountingLocation: [0 0 0] MountingAngles: [0 0 0] EffectiveFieldOfView: [2 10] LookAngle: [0 0] RangeLimits: [0 100000] DetectionProbability: 0.9000 FalseAlarmRate: 1.0000e-06 ReferenceRange: 100000 TargetReportFormat: 'Clustered detections' Use get to show all properties
Create a target at which to point the radar. The target is located at a range of 1 km from the radar at an azimuth of 10 degrees and an elevation of 5 degrees.
tgtRg = 1e3; tgtAz = 10; tgtEl = 5; [X,Y,Z] = sph2cart(deg2rad(tgtAz),deg2rad(tgtEl),tgtRg); tgt = struct(PlatformID=1,Position=[X Y Z]);
Point the radar directly at the target. Generate the statistical detection.
rdr.LookAngle = [tgtAz tgtEl]; simTime = 0; dets = rdr(tgt,simTime);
Compare the measured target location to the actual position.
detpos = dets{1}.Measurement; ttb = table(detpos,tgt.Position', ... RowNames=["X" "Y" "Z"],VariableNames=["Measured" "Actual"])
ttb=3×2 table
Measured Actual
________ ______
X 986.54 981.06
Y 177.22 172.99
Z 67.795 87.156
Create a theaterPlot
object. Plot the radar, the target, and the radar detections. Overlay a plot of the radar coverage.
tp = theaterPlot(AxesUnits=["m" "m" "m"],XLimits=[0 2e3]); pltPlotter = platformPlotter(tp,DisplayName="Radar Platform"); tgtPlotter = platformPlotter(tp,DisplayName="Targets", ... MarkerFaceColor="#D95319"); plotPlatform(pltPlotter,[0 0 0]) plotPlatform(tgtPlotter,tgt.Position) covPlotter = coveragePlotter(tp,DisplayName="Radar Coverage"); covcfg = coverageConfig(rdr); plotCoverage(covPlotter,covcfg) detPlotter = detectionPlotter(tp,DisplayName="Radar Detections"); plotDetection(detPlotter,detpos') axis equal
Algorithms
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] |
MechanicalAzimuthLimits | [-45 45] |
MechanicalElevationLimits | [-10 0] |
ElectronicAzimuthLimits | [-45 45] |
ElectronicElevationLimits | [-10 0] |
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
|
MechanicalAzimuthLimits | [0 360] |
MechanicalElevationLimits | [-10 0] |
ElevationResolution | 10/sqrt(12) |
This syntax sets these properties:
Property | Value |
ScanMode | 'Mechanical' |
FieldOfView | [1; 10] |
HasElevation | false |
MechanicalAzimuthLimits | [-45 45] |
MechanicalElevationLimits | [-10 0] |
ElectronicAzimuthLimits | [-45 45] |
ElectronicElevationLimits | [-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.
The LookAngle
property is not read-only only for this mode. and
enables the BeamShape
property.
This syntax also disables these properties:
MaxAzimuthScanRate | MaxElevationScanRate | MechanicalAzimuthLimits |
MechanicalElevationLimits | ElectronicAzimuthLimits | ElectronicElevationLimits |
MechanicalAngle | ElectronicAngle | FieldOfView |
EmissionsInputPort |
In this syntax, these properties are now tunable:
CenterFrequency | Bandwidth | DetectionProbability |
ReferenceRange | ReferenceRCS | FalseAlarmRate |
RangeLimits | RangeRateLimits | MaxUnambiguousRange |
MaxUnambiguousRadialSpeed | AzimuthResolution | ElevationResolution |
ElevationResolution | RangeRateResolution |
Radar Sensor Detection Modes
The radarDataGenerator
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 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 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 the 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 the azimuth and elevation of the target or transmitter. These measurements can only be reported in a spherical coordinate system.
Detection and Track State Coordinates
The format of the measurement states or track states is determined by the specifications
of the HasRangeRate
, HasElevation
,
HasINS
, TaregetReportFormat
, and
DetectionCoordinates
properties.
There are two general types of detection or track coordinates:
Cartesian coordinates — Enabled by specifying the
DetectionCoordinates
property as'Body'
,'Scenario'
, or'Sensor rectangular'
. The complete form of a Cartesian state is[x; y; z; vx; vy; vz]
, wherex
,y
, andz
are the Cartesian positions andvx
,vy
, andvz
are the corresponding velocities. You can only setDetectionCoordinates
as'Scenario'
when theHasINS
property is set totrue
, so that the sensor can transform sensor detections or tracks to the scenario frame.
Spherical coordinates — Enabled by specifying the
DetectionCoordinates
property as'Sensor spherical'
. The complete form of a spherical state is[az; el; rng; rr]
, whereaz
,el
,rng
, andrr
represent azimuth angle, elevation angle, range, and range rate, respectively. When theDetectionMode
property of the sensor is set to'ESM'
or'Bistatic'
, the sensor can only report detections in the'Sensor spherical'
frame.
When the HasRangeRate
property is set to false
,
vx
, vy
, and vz
are removed from
the Cartesian state coordinates and rr
is removed from the spherical
coordinates.
When the HasElevation
property is set to false
,
z
and vz
are removed from the Cartesian state
coordinates and el
is removed from the spherical coordinates.
When the DetectionMode
property is set to 'ESM'
,
the sensor can only report detections in the 'Sensor spherical'
frame as
[az; el]
.
When the DetectionMode
property is set to
'Bistatic'
, the sensor can only report detections in the
'Sensor spherical'
frame as [az; el; rng; rr]
. Here,
rng
and rr
are the bistatic range and range rate,
respectively.
Measurement Parameters
The MeasurementParameters
property of an output detection consists
of an array of structures that describes a sequence of coordinate transformations from a
child frame to a parent frame, or the inverse transformations. 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 this 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 from the scenario frame to the
platform frame, and then from the 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.
If the detections are reported in platform rectangular coordinates and
HasINS
is set to false
, the transformation
consists only of the identity.
The table shows the fields of the MeasurementParameters
structure.
Not all fields have to be present in the structure. The specific 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, 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 a rectangular frame, if
|
Radar Loop Gain
The radar equation relates the signal-to-noise ratio of a received signal to the transmitted radar power, target distance and target radar cross-section and other radar parameters.
where
S/N: signal-to-noise ratio (dimensionless)
Pt: peak transmitted power (W)
Gt: transmit antenna gain (dimensionless)
Gr: receive antenna gain (dimensionless)
λ: radar wavelength (m)
σ: radar target cross-section (m²)
kb: Boltzmann's constant (W/Hz/K)
T0: system noise temperature (K)
B: receiver bandwidth (Hz)
NF: noise figure (dimensionless)
L: general loss factor that combines losses along the transmitter-target-receiver path (dimensionless)
Separating out the signal-to-noise ratio dependence on range and radar cross-section from the other parameters yields
where all the other parameters are lumped together into C'.
When expressed in dB, the radar equation is
where the constant C = 10 logC' is
the radar loop gain stored in the RadarLoopGain
property. C can be thought of as a constant combining all the terms of
the radar design. Radar loop gain is a measure of the sensitivity of the radar. With
C, you can determine the expected SNR of a received
target signal at distance R with radar cross-section
RCS.
The detectability factor is the minimum SNR required to declare a detection with a
specified probability of detection (Pd) in the DetectionProbability
and
specified probability false alarm (Pfa) in the FalseAlarmRate
property.
The minimum radar loop gain can be derived from the receiver operating characteristic (ROC)
curve of a radar. Using the ROC curves you can find the SNR as a function of Pd and Pfa. The
radar loop gain is the minimum SNR. The ROC curves depend on the number of pulses and the
Swerling target model.
References
[1] Doerry, Armin W. "Earth Curvature and Atmospheric Refraction Effects on Radar Signal Propagation." Sandia Report SAND2012-10690, Sandia National Laboratories, Albuquerque, NM, January 2013. https://prod.sandia.gov/techlib-noauth/access-control.cgi/2012/1210690.pdf.
[2] Doerry, Armin W. "Motion Measurement for Synthetic Aperture Radar." Sandia Report SAND2015-20818, Sandia National Laboratories, Albuquerque, NM, January 2015. https://pdfs.semanticscholar.org/f8f8/cd6de8042a7a948d611bcfe3b79c48aa9dfa.pdf.
Version History
Introduced in R2021a
See Also
radarScenario
| radarTracker
| radarEmitter
| radarEmission
| rcsSignature
| radarChannel
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 (한국어)