sensorMeasurementModel
Description
creates a prebuilt sensor measurement 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
smModel
= sensorMeasurementModel(modelName
)MeasurementModel
property of a CustomSensor
specification.
Examples
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
Measurement model name, specified as one of the following:
"azimuth"
"azimuth-range"
"azimuth-range-rangerate"
"azimuth-elevation"
"azimuth-elevation-range"
"azimuth-elevation-range-rangerate"
"range-rangerate"
"range"
"position"
"position-velocity"
Data Types: char
| string
Output Arguments
Measurement model for the sensor, returned as one of these objects:
modelName | Model Object |
---|---|
"azimuth" | AzimuthModel |
"azimuth-range" | AzimuthRangeModel |
"azimuth-range-rangerate" | AzimuthRangeAndRangeRateModel |
"azimuth-elevation" | AzimuthElevationModel |
"azimuth-elevation-range" | AzimuthElevationRangeModel |
"azimuth-elevation-range-rangerate" | AzimuthElevationRangeAndRangeRateModel |
"range-rangerate" | RangeAndRangeRateModel |
"range" | RangeModel |
"position" | PositionModel |
"position-velocity" | PositionVelocityModel |
You can use the output measurement model object to define the
MeasurementModel
property of a CustomSensor
object.
Version History
Introduced in R2025a
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.
Seleccione un país/idioma
Seleccione un país/idioma para obtener contenido traducido, si está disponible, y ver eventos y ofertas de productos y servicios locales. Según su ubicación geográfica, recomendamos que seleccione: .
También puede seleccionar uno de estos países/idiomas:
Cómo obtener el mejor rendimiento
Seleccione China (en idioma chino o inglés) para obtener el mejor rendimiento. Los sitios web de otros países no están optimizados para ser accedidos desde su ubicación geográfica.
América
- América Latina (Español)
- Canada (English)
- United States (English)
Europa
- 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)