Main Content

sensorDetectabilityModel

Detectability model for custom sensor specification

Since R2025a

    Description

    sdModel = sensorDetectabilityModel(modelName) creates a prebuilt sensor detectability model based on the model you specify. You can use tab completion to view the available models. You can use this model to define the DetectabilityModel property of a CustomSensor specification.

    example

    Examples

    collapse all

    Create a specification for a marine radar. The radar of interest is on top of a stationary tower.

    radarPosition = [0;0;35]; % radar's relative position to the tower origin.
    towerPosition = [3800;15200;110]; % tower origin location in scenario coordinate.
    radarOrientation = [0 1 0;-1 0 0;0 0 1]; % radar's relative orientation to the tower origin.
    towerOrientation = [-0.2 0.6 0.7;0.9 0.3 0;-0.2 0.7 -0.6]; % tower orientation in scenario coordinate.
    marineRadarSpec = trackerSensorSpec("custom")
    marineRadarSpec = 
      CustomSensor with properties:
    
        MaxNumMeasurements: 32
    
          MeasurementModel: []
        DetectabilityModel: []
              ClutterModel: []
                BirthModel: []
    
              UpdateModels: 0
    
    

    Define the measurement, detectability, clutter, and birth model of the marine radar specification. For measurement, specify that the radar of interest reports the position in the scenario coordinates.

    measurementModel = sensorMeasurementModel("position");
    measurementModel.OriginPosition = zeros(3,1);
    measurementModel.Orientation = eye(3);

    For detectability, specify that the radar detects targets within its field of view around a center beam.

    detectabilityModel = sensorDetectabilityModel("field-of-view");
    detectabilityModel.AzimuthLimits = [-10 10];
    detectabilityModel.ElevationLimits = [-15 15];
    detectabilityModel.RangeLimits = [0 10000];
    detectabilityModel.OriginPosition = cat(2,radarPosition,towerPosition);
    detectabilityModel.Orientation = cat(3,radarOrientation,towerOrientation);
    detectabilityModel.DetectionProbability = 0.95;

    For clutter, specify that the radar assumes a uniform Poisson clutter model, which assumes false measurements or noise (referred to as "clutter") in radar data are uniformly distributed across the observation space.

    clutterModel = sensorClutterModel("uniform-poisson");
    clutterModel.ClutterDensity = 5e-9;

    For birth, specify that the radar assumes a uniform Poisson birth model, which assumes new targets can appear uniformly across the entire observation space.

    birthModel = sensorBirthModel("uniform-poisson");
    birthModel.BirthDensity = 5e-9;

    Configure the marine radar specification using these models.

    marineRadarSpec.MeasurementModel = measurementModel;
    marineRadarSpec.DetectabilityModel = detectabilityModel;
    marineRadarSpec.ClutterModel = clutterModel;
    marineRadarSpec.BirthModel = birthModel;

    To update the specification based on time or measurement, you can set the UpdateModels property to true and specify the ModelUpdateFcn function handle of the specification. For example, the following model update function allows you to update the radar center beam orientation with time, and update the position variance with measurement.

    marineRadarSpec.UpdateModels = true;
    marineRadarSpec.ModelUpdateFcn = @updateRadarSpec;
    function spec = updateRadarSpec(spec, data)
    if ~isempty(data.Time)
        spec.DetectabilityModel.Orientation(:,:,1) = data.TimeVaryingModelData.BeamOrientation;
    end
    if ~isempty(data.MeasurementTime)
        spec.MeasurementModel.PositionVariance = data.MeasurementVaryingModelData.PositionVariance;
    end
    end

    Input Arguments

    collapse all

    Measurement model name, specified as one of the following:

    • "field-of-view".

    • "field-of-view-with-rangerate".

    • "composite-field-of-view".

    • "uniform".

    Data Types: char | string

    Output Arguments

    collapse all

    Detectability model for the sensor, returned as one these objects:

    modelNameModel Object
    "field-of-view"FieldOfViewModel
    "field-of-view-with-rangerate"FieldOfViewAndRangeRateModel
    "composite-field-of-view"CompositeFieldOfViewModel
    "uniform"UniformDetectabilityModel

    You can use the output detectability model object to define the DetectabilityModel property of a CustomSensor object.

    Version History

    Introduced in R2025a