classdef monostaticRadarSensor< fusion.internal.remotesensors.ScanningSensor & fusion.internal.remotesensors.mixin.DisplayUtils & radarfusion.internal.scenario.mixin.DetectionSensor & scenario.internal.mixin.Perturbable
%monostaticRadarSensor  Monostatic scanning radar detection generator
%   sensor = monostaticRadarSensor(sensorIndex) returns a statistical model
%   to simulate detections for a monostatic scanning radar with its
%   SensorIndex property set to sensorIndex.
%
%   sensor = monostaticRadarSensor(sensorIndex, scanConfig) configures the
%   monostatic radar sensor to use a predefined scan configuration,
%   scanConfig. scanConfig can be one of 'No scanning' | 'Raster' |
%   'Rotator' | 'Sector'.
%
%   The configuration options above provide a convenient means to configure
%   the radar for commonly implemented scan modes. Additional adjustments
%   to these pre-defined configurations can be made to match the scan mode
%   for a specific radar. The scan mode of the radar is controlled by the
%   following properties: 'ScanMode', 'FieldOfView',
%   'MaxMechanicalScanRate', 'MechanicalScanLimits', and
%   'ElectronicScanLimits'.
%
%   The radar changes the look angle between each update by stepping the
%   mechanical and electronic position of the beam according to the angular
%   span specified in the FieldOfView property. The radar scans out the
%   total region in azimuth and elevation defined by the radar's mechanical
%   and electronic scan limits. If the scan limits for azimuth or elevation
%   are set to [0 0], then no scanning is performed along that dimension
%   for that scan mode. If the max mechanical scan rate is set to 0 for
%   azimuth or elevation, then no mechanical scanning is performed along
%   that dimension.
%
%   The radar models range and elevation biases induced by propagation
%   through the troposphere using a single exponential model. This means
%   that measured ranges will be further than the line-of-sight range to
%   the target and that measured elevations will indicate targets arriving
%   from heights above their true height. These effects are more pronounced
%   when the line-of-sight path between the radar and target lies at lower
%   altitudes, as the atmosphere is thicker at these altitudes.
%
%   sensor = monostaticRadarSensor(..., 'Name', value) returns a
%   monostaticRadarSensor object by specifying its properties as name-value
%   pair arguments. Unspecified properties have default values. See the
%   list of properties below.
%
%   Step method syntax:
%   
%   DETS = step(SENSOR, TARGETS, TIME) generates radar detections from the
%   L-element array of structs, TARGETS, at the current simulation time,
%   TIME. TIME is a scalar value in seconds. DETS is an M-element cell
%   array of objectDetection objects. The radar generates detections at the
%   rate defined by the UpdateRate property.
%
%   TARGETS is a struct array of platform structures. The fields are listed
%   <a href="matlab:help fusion.internal.interfaces.DataStructures/platformStruct">here</a>.
%
%   The Measurement and MeasurementNoise properties of the returned
%   objectDetections are reported in the coordinate system specified by
%   monostaticRadarSensor's DetectionCoordinates property as given in the
%   table below.
%
%       Detection           | Measurement       
%       Coordinates         | Dimensions        
%       --------------------+-------------------
%       Scenario            | [x;y;z;vx;vy;vz]
%       Body                | [x;y;z;vx;vy;vz]
%       Sensor rectangular  | [x;y;z;vx;vy;vz]
%       Sensor spherical    | [az;el;rg;rr]
%
%   When detections are reported in rectangular coordinates, velocities are
%   only reported when the HasRangeRate property is true.
%
%   When detections are reported in spherical coordinates, elevation and
%   range rate are only reported when their enabling properties
%   HasElevation and HasRangeRate are set to true.
%
%   The MeasurementParameters property of the returned objectDetection
%   objects is set to an array of measurement parameter structures. The
%   fields are listed <a href="matlab:help fusion.internal.interfaces.DataStructures/measurementParametersStruct">here</a>.
%   When these transformations are applied in order, the reported
%   measurements will be transformed to the top-level frame. When HasINS is
%   true, the top-level frame is the scenario coordinate frame, otherwise
%   it is the coordinate frame of the platform on which the sensor is
%   mounted.
%
%   The ObjectAttributes property for each detection is set to a struct
%   with the following fields:
%       TargetIndex     Unique identifier of the platform which generated
%                       the detection. For false alarms, this value is
%                       negative.
%
%       SNR             Signal-to-noise ratio of the detection in decibels.
%
%   DETS = step(SENSOR, TARGETS, EMRADAR, TIME) includes information about
%   interference in the scenario modeled as a cell array of radarEmission
%   objects, EMRADAR. This input is enabled when the HasInterference
%   property is set to true. The interfering emissions will interfere with
%   the received radar returns, resulting in a degradation of detection
%   performance when the radar is looking in the direction of an
%   interfering emission.
%
%   DETS = step(SENSOR, TARGETS, INS, TIME) includes pose information for
%   the sensor's platform provided by the INS input with the reported
%   detections. This input is enabled when the HasINS property is set to
%   true. The INS information can be used by tracking and fusion algorithms
%   to estimate the target positions in the NED frame. INS is a struct with
%   the following fields:
%
%        Position      Position of the GPS receiver in the local NED
%                      coordinate system specified as a real finite 1-by-3 
%                      array in meters.
% 
%        Velocity      Velocity of the GPS receiver in the local NED 
%                      coordinate system specified as a real finite 1-by-3 
%                      array in meters per second.
%
%       Orientation    Orientation of the INS with respect to the local NED
%                      coordinate system specified as a scalar quaternion
%                      or a 3-by-3 real-valued orthonormal frame rotation
%                      matrix. Defines the frame rotation from the local
%                      NED coordinate system to the current INS body
%                      coordinate system. This is also referred to as a
%                      "parent to child" rotation.
%
%   [..., NUMDETS, CONFIG] = step(...) optionally returns the number of
%   valid detections in the cell array DETS and the configuration of the
%   sensor at the current simulation time, CONFIG. The fields of the sensor
%   configuration structure are listed <a href="matlab:help fusion.internal.interfaces.DataStructures/sensorConfigStruct">here</a>.
%
%   When the monostaticRadarSensor's MaxNumDetectionsSource property is set
%   to 'Auto', NUMDETS is always set to the length of DETS. When
%   MaxNumDetectionsSource is set to 'Property', DETS is always a cell
%   array with length determined by the value of the MaxNumDetections
%   property. In this case, the first NUMDETS elements of DETS hold valid
%   detections and the remaining elements of DETS are set to a default
%   value.
%   
%   Detections can only be reported by monostaticRadarSensor at time
%   intervals given by the reciprocal of the UpdateRate property. The
%   IsValidTime flag on the CONFIG structure is set to false when detection
%   updates are requested at times that are not aligned with the configured
%   update rate.
%
%   monostaticRadarSensor can also be used to generate detections using
%   targets generated by <a href="matlab:help('trackingScenario')">trackingScenario</a>.
%
%   The monostaticRadarSensor System object is not recommended unless you
%   require C/C++ code generation. Instead, use the fusionRadarSensor
%   System object. The fusionRadarSensor object provides additional
%   properties for modeling radar sensors, including the ability to
%   generate tracks and clustered detections. Currently, fusionRadarSensor
%   does not support C/C++ code generation.
%
%   monostaticRadarSensor properties:
%     SensorIndex               - Unique identifier of sensor system
%     UpdateRate                - Sensor update rate
%     MountingLocation          - Sensor's mounting location on platform
%     MountingAngles            - Sensor's mounting angles on platform
%     FieldOfView               - Angular field of view for a radar dwell
%     HasRangeAmbiguities       - Enable range ambiguities
%     MaxUnambiguousRange       - Maximum unambiguous detection range
%     HasRangeRateAmbiguities   - Enable range rate ambiguities
%     MaxUnambiguousRadialSpeed - Maximum unambiguous detection radial
%                                 speed
%     ScanMode                  - Scan mode used by radar
%     MaxMechanicalScanRate     - Maximum mechanical scan rate
%     MechanicalScanLimits      - Mechanical scan limits
%     MechanicalAngle           - Mechanical antenna angle (read-only)
%     ElectronicScanLimits      - Electronic beam scan limits
%     ElectronicAngle           - Electronic beam scan angle (read-only)
%     LookAngle                 - Look angle of sensor (read-only)
%     DetectionProbability      - Detection probability
%     FalseAlarmRate            - Rate at which false alarms are reported
%     ReferenceRange            - Range where detection probability is
%                                 achieved
%     ReferenceRCS              - Target's radar cross section (RCS) at
%                                 which detection probability is achieved
%     RadarLoopGain             - Loop gain of radar (read-only)
%     HasElevation              - Elevation scanning and measurements
%     HasRangeRate              - Enable range rate measurements
%     AzimuthResolution         - Azimuthal resolution
%     ElevationResolution       - Elevation resolution
%     RangeResolution           - Range resolution
%     RangeRateResolution       - Range rate resolution
%     AzimuthBiasFraction       - Fractional azimuthal bias component
%     ElevationBiasFraction     - Fractional elevation bias component
%     RangeBiasFraction         - Fractional range bias component
%     RangeRateBiasFraction     - Fractional range rate bias component
%     HasINS                    - Enable input of platform's pose
%     HasNoise                  - Add noise to measurements
%     HasFalseAlarms            - Enable false detections
%     HasOcclusion              - Enable occlusion of extended objects
%     MaxNumDetectionsSource    - Source of maximum number of detections
%     MaxNumDetections          - Maximum number of reported detections
%     DetectionCoordinates      - Coordinate system used for detections
%     HasInterference           - Enable RF interference input
%     Bandwidth                 - Half power bandwidth of sensor
%     CenterFrequency           - Center frequency of sensor
%     Sensitivity               - Minimum operational sensitivity
%
%   monostaticRadarSensor methods:
%     step             - Generate radar detections from targets
%     perturbations    - Define perturbations to the monostaticRadarSensor
%     perturb          - Apply perturbations to the monostaticRadarSensor
%     release          - Allow property value and input characteristics changes
%     clone            - Create monostaticRadarSensor object with same property values
%     isLocked         - Locked status (logical)
%     <a href="matlab:help matlab.System/reset   ">reset</a>            - Reset states of monostaticRadarSensor object
%     coverageConfig   - Report the monostaticRadarSensor object scanning coverage configuration
%
%   % EXAMPLE 1: Model an air traffic control tower
%
%   % Create targets.
%   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 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 = monostaticRadarSensor(1,'Rotator', ...
%       'UpdateRate',updaterate, ...
%       'MountingLocation',[0 0 -15], ...
%       'MaxMechanicalScanRate',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];
%
%   clrs = lines(3);
%
%   figure; hold on;
%   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();
%
%   % EXAMPLE 2: Model an array that scans in azimuth and elevation
%
%   % Create targets.
%   tgt1 = struct( ...
%       'PlatformID', 1, ...
%       'Position', [0 -50e3 -1e3], ...
%       'Speed', 900*1e3/3600);
%   
%   tgt2 = struct( ...
%       'PlatformID', 2, ...
%       'Position', [20e3 0 -500], ...
%       'Speed', 700*1e3/3600);
%   
%   tgt3 = struct( ...
%       'PlatformID', 3, ...
%       'Position', [-20e3 0 -500], ...
%       'Speed', 300*1e3/3600);
% 
%   % Create a radar which uses an electronic raster scan within a volume
%   % of interest south of the radar's location
%   sensor = monostaticRadarSensor(1,'Raster', 'ScanMode', 'Electronic',...
%               'MountingAngles', [180 0 0]);
% 
%   % 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];
%
%   clrs = lines(3);
%
%   figure; hold on;
%   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();
%
%   See also: radarEmission, radarEmitter, radarChannel.

 
%   Copyright 2017-2022 The MathWorks, Inc.

    methods
        function out=monostaticRadarSensor
            % Support name-value pair arguments when constructing object
        end

        function out=bodyToSensor(~) %#ok<STOUT>
        end

        function out=defaultObjectAttributes(~) %#ok<STOUT>
        end

        function out=defaultOutput(~) %#ok<STOUT>
        end

        function out=defaultPerturbations(~) %#ok<STOUT>
        end

        function out=getMeasurementLength(~) %#ok<STOUT>
            % Length of measurement property for objectDetection objects
            % returned by the sensor
        end

        function out=getNumInputsImpl(~) %#ok<STOUT>
            % Define total number of inputs for system with optional inputs
        end

        function out=getNumMeasDims(~) %#ok<STOUT>
            % Number of dimensions measured by sensor
        end

        function out=getPropertyGroups(~) %#ok<STOUT>
        end

        function out=getPropertyGroupsImpl(~) %#ok<STOUT>
            % Define property section(s) for System block dialog
        end

        function out=getPropertyGroupsLongImpl(~) %#ok<STOUT>
        end

        function out=getTransmitReceiveParameter(~) %#ok<STOUT>
            % Compute the waveform parameters based on radar metrics
        end

        function out=getWaveformParameter(~) %#ok<STOUT>
            % Compute the waveform parameters based on radar metrics
        end

        function out=isInactivePropertyImpl(~) %#ok<STOUT>
            % Return false if property is visible based on object 
            % configuration, for the command line and System block dialog
        end

        function out=isInputComplexityMutableImpl(~) %#ok<STOUT>
        end

        function out=isInputSizeMutableImpl(~) %#ok<STOUT>
        end

        function out=loadObjectImpl(~) %#ok<STOUT>
            % Set properties in object obj to values in structure s
        end

        function out=resetImpl(~) %#ok<STOUT>
        end

        function out=saveObjectImpl(~) %#ok<STOUT>
            % Set properties in structure s to values in object obj
        end

        function out=setupImpl(~) %#ok<STOUT>
            % Perform one-time calculations, such as computing constants
        end

        function out=stepImpl(~) %#ok<STOUT>
        end

        function out=validateInputsImpl(~) %#ok<STOUT>
            % Validate inputs to the step method at initialization (or
            % whenever an input size changes)
        end

    end
    properties
        %AzimuthBiasFraction  Fractional azimuthal bias component
        %   Specify a nonnegative scalar defining the azimuthal bias
        %   component of the radar as a fraction of the radar's azimuthal
        %   resolution defined by the AzimuthResolution property value.
        %   This value sets a lower bound on the azimuthal accuracy of the
        %   radar.
        %
        %   Default: 0.1
        AzimuthBiasFraction;

        %AzimuthResolution  Azimuthal resolution (deg)
        %   Specify a positive scalar defining the azimuthal resolution of
        %   the radar. The radar's azimuthal resolution defines the minimum
        %   separation in azimuth angle at which the radar can distinguish
        %   two targets. This typically corresponds to the azimuthal 3 dB
        %   beamwidth of the radar. Defined in degrees.
        %
        %   Default: 1
        AzimuthResolution;

        %Bandwidth  Bandwidth of radar waveform
        Bandwidth;

        % Waveform properties (used to model interference)
        %CenterFrequency  Center frequency of radar
        CenterFrequency;

        %DetectionCoordinates  Coordinate system used to report detections
        %   Specify coordinate system used to report detections as one of
        %   'Scenario' | 'Body' | 'Sensor rectangular' | 'Sensor
        %   spherical'. 'Scenario' can only be selected when the sensor's
        %   HasINS property is set to true. When set to 'Scenario',
        %   detections are reported in the scenario's coordinate frame.
        %   When set to 'Body', detections are reported in the body frame
        %   of the sensor's platform using the rectangular coordinate
        %   system. When set to 'Sensor rectangular', detections are
        %   reported using the radar's sensor coordinate frame using the
        %   rectangular coordinate system. When set to 'Sensor spherical',
        %   detections are reported using a spherical coordinate system
        %   centered at the radar and aligned with the orientation of the
        %   radar mounted on the platform. Measurements are ordered as [az,
        %   el, range, range rate]. Angles are in degrees, range in meters,
        %   and range rate in meters per second. Reporting of elevation and
        %   range rate depends on the corresponding HasElevation and
        %   HasRangeRate property values.
        %
        %   Default: 'Body'
        DetectionCoordinates;

        %DetectionProbability  Detection probability
        %   Probability of detecting a target with radar cross section,
        %   ReferenceRCS, at a range of ReferenceRange.
        %   DetectionProbability is a scalar value on the interval (0,1],
        %   and ReferenceRange and ReferenceRCS are additional
        %   monostaticRadarSensor properties.
        %
        %   Default: 0.9
        DetectionProbability;

        %ElevationBiasFraction  Fractional elevation bias component
        %   Specify a nonnegative scalar defining the elevation bias
        %   component of the radar as a fraction of the radar's elevation
        %   resolution defined by the ElevationResolution property value.
        %   This value sets a lower bound on the elevation accuracy of the
        %   radar. This property only applies when you set HasElevation
        %   property to true.
        %
        %   Default: 0.1
        ElevationBiasFraction;

        %ElevationResolution  Elevation resolution (deg)
        %   Specify a positive scalar defining the elevation resolution of
        %   the radar. The radar's elevation resolution defines the minimum
        %   separation in elevation angle at which the radar can
        %   distinguish two targets. This typically corresponds to the
        %   elevation 3 dB beamwidth of the radar. This property only
        %   applies when you set HasElevation property to true. Defined in
        %   degrees.
        %
        %   Default: 1
        ElevationResolution;

        %FalseAlarmRate  Rate at which false alarms are reported
        %   Specify a scalar value on the interval [1e-7 1e-3] defining the
        %   probability of reporting a false detection within each
        %   resolution cell of the radar. Resolution cells are determined
        %   from the AzimuthResolution and RangeResolution properties and
        %   when enabled the ElevationResolution and RangeRateResolution
        %   properties.
        %
        %   Default: 1e-6
        FalseAlarmRate;

        %HasFalseAlarms  Enable false detections
        %   Set this property to true to include false alarms in the
        %   reported detections. Set this property to false to report only
        %   true detections.
        %
        %   Default: true
        HasFalseAlarms;

        %HasInterference  Enable RF interference input
        %   Set this property to true to enable the RF interference input.
        %
        %   Default: false
        HasInterference;

        %HasOcclusion  Enable occlusion of extended objects
        %   Set this property to true to model occlusion of objects by the
        %   spatial extent of other objects in the scenario. Set this
        %   property to false to disable occlusion of objects. Setting this
        %   property to false will also disable the merging of objects
        %   sharing a common sensor resolution cell. This ensures that
        %   every object in the scenario has an opportunity to generate a
        %   detection.
        %
        %   Default: true
        HasOcclusion;

        %HasRangeAmbiguities  Enable range ambiguities
        %   Set to true to model a radar which cannot resolve range
        %   ambiguities. When a radar cannot resolve range ambiguities,
        %   targets at ranges beyond the MaxUnambiguousRange property value
        %   are wrapped into the interval of [0 MaxUnambiguousRange]. When
        %   false, targets are reported at their unwrapped range.
        %
        %   Default: false
        HasRangeAmbiguities;

        % "Has" properties
        %HasRangeRate  Enable range rate measurements
        %   Set to true to model a radar capable of estimating range rate
        %   from target detections. Set to false to model a radar which
        %   cannot measure range rate.
        %
        %   Default: false
        HasRangeRate;

        %HasRangeRateAmbiguities  Enable range rate ambiguities
        %   Set to true to model a radar which cannot resolve range rate
        %   ambiguities. When a radar cannot resolve range rate
        %   ambiguities, targets at range rates outside of the interval
        %   MaxUnambiguousRadialSpeed are wrapped into the interval defined
        %   by the MaxUnambiguousRadialSpeed property. When false, targets
        %   at range rates outside of the MaxUnambiguousRadialSpeed
        %   property interval are not wrapped to into the range rate
        %   interval. This property only applies when you set HasRangeRate
        %   property to true.
        %
        %   Default: false
        HasRangeRateAmbiguities;

        %MaxUnambiguousRadialSpeed  Maximum unambiguous detection radial speed (m/s)
        %   Specify a scalar value greater than 0 defining the maximum
        %   radial speed at which the radar can unambiguously resolve the
        %   range rate of a target. Targets detected at range rates whose
        %   magnitude is greater than the maximum unambiguous radial speed
        %   will be wrapped into the range rate interval
        %   [-MaxUnambiguousRadialSpeed MaxUnambiguousRadialSpeed]. This
        %   property only applies to true target detections when you set
        %   HasRangeRate property to true and set the
        %   HasRangeRateAmbiguities property to true.
        %
        %   This property also defines the range rate interval over which
        %   false target detections will be generated. This property only
        %   applies to false target detections when you set HasFalseAlarms
        %   property to true and HasRangeRate property to true.
        %   
        %   Specified in meters per second.
        %
        %   Default: 200
        MaxUnambiguousRadialSpeed;

        % Limit properties
        %MaxUnambiguousRange  Maximum unambiguous detection range (m)
        %   Specify a scalar value greater than 0 defining the maximum
        %   range at which the radar can unambiguously resolve the range of
        %   a target. Targets detected at ranges beyond the unambiguous
        %   range will be 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 defines the maximum range at which false
        %   alarms are generated. This property applies to false target
        %   detections when you set HasFalseAlarms property to true.
        %
        %   Specified in meters.
        %
        %   Default: 100e3
        MaxUnambiguousRange;

        %RadarLoopGain  Overall radar transmit and receive detection performance
        %   Read-only property specifying the relationship between the
        %   radar's reported signal-to-noise ratio, snr, and the target's
        %   radar cross section, rcs, and range:
        %
        %       snr = RadarLoopGain + rcs - 40*log10(range)
        %
        %   Here, snr and rcs are specified in dB and dBsm respectively and
        %   range is in meters. RadarLoopGain is derived using the
        %   DetectionProbability, ReferenceRange, ReferenceRCS, and
        %   FalseAlarmRate property values.
        RadarLoopGain;

        %RangeBiasFraction  Fractional range bias component
        %   Specify a nonnegative scalar defining the range bias component
        %   of the radar as a fraction of the radar's range resolution
        %   defined by the RangeResolution property value. This value sets
        %   a lower bound on the range accuracy of the radar.
        %
        %   Default: 0.05
        RangeBiasFraction;

        %RangeRateBiasFraction  Fractional range rate bias component
        %   Specify a nonnegative scalar defining the range rate bias
        %   component of the radar as a fraction of the radar's range rate
        %   resolution defined by the RangeRateResolution property value.
        %   This value sets a lower bound on the range rate accuracy of the
        %   radar. This property only applies when you set HasRangeRate
        %   property to true.
        %
        %   Default: 0.05
        RangeRateBiasFraction;

        %RangeRateResolution  Range rate resolution (m/s)
        %   Specify a positive scalar defining the range rate resolution of
        %   the radar. The radar's range rate resolution defines the
        %   minimum separation in range rate at which the radar can
        %   distinguish two targets. This property only applies when you
        %   set HasRangeRate property to true. Defined in meters per
        %   second.
        %
        %   Default: 10
        RangeRateResolution;

        %RangeResolution  Range resolution (m)
        %   Specify a positive scalar defining the range resolution of the
        %   radar. The radar's range resolution defines the minimum
        %   separation in range at which the radar can distinguish two
        %   targets. Defined in meters.
        %
        %   Default: 100
        RangeResolution;

        %ReferenceRCS  Target's radar cross section at which detection probability is achieved (dBsm)
        %   Target's radar cross section (RCS) at which the target will be
        %   detected at ReferenceRange with a detection probability of
        %   DetectionProbability. ReferenceRCS is a real scalar value
        %   specified in decibel square meters (dBsm). DetectionProbability
        %   and ReferenceRange are additional monostaticRadarSensor properties.
        %
        %   Default: 0
        ReferenceRCS;

        %ReferenceRange  Range where detection probability is achieved (m)
        %   Range where a target with radar cross section, ReferenceRCS is
        %   detected with a probability of DetectionProbability.
        %   ReferenceRange is a positive real scalar value specified in
        %   meters. DetectionProbability and ReferenceRCS are additional
        %   monostaticRadarSensor properties.
        %
        %   Default: 100e3
        ReferenceRange;

        %ScanMode  Scan mode used by sensor
        %   Specify the scan mode used by the sensor as one of 'No
        %   scanning' | 'Mechanical' | 'Electronic' | 'Mechanical and
        %   electronic'. When set to 'No scanning', no scanning is
        %   performed by the sensor. When set to 'Mechanical', the sensor
        %   scans mechanically across the azimuth and elevation limits
        %   specified by the MechanicalScanLimits property. When set to
        %   'Electronic', the sensor scans electronically across the
        %   azimuth and elevation limits specified by the
        %   ElectronicScanLimits property. When set to '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.
        %
        %   In all scan modes except 'No scanning', the scan positions step
        %   by the sensor's field of view between dwells.
        %
        %   Default: 'Mechanical'
        ScanMode;

        %Sensitivity  Minimum operational sensitivity of receiver (dBmi)
        %   Includes isotropic antenna receive gain.
        %
        %   Default: -50
        Sensitivity;

    end
end
