Main Content

sensorClutterModel

Clutter model for custom sensor specification

Since R2025a

    Description

    scModel = sensorClutterModel(modelName) creates a prebuilt sensor clutter 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 ClutterModel 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

    Clutter model name, specified as "uniform-poisson" or "nonuniform-poisson".

    Data Types: char | string

    Output Arguments

    collapse all

    Clutter model for the sensor, returned as one of these objects:

    modelNameModel Object
    "uniform-poisson"UniformPoissonModel
    "nonuniform-poisson"NonUniformPoissonModel

    You can use the output clutter model object to define the ClutterModel property of a CustomSensor object.

    Version History

    Introduced in R2025a