Main Content


Create constant turn-rate ggiwphd filter


phd = initctggiwphd initializes a constant turn-rate ggiwphd filter with zero components in the filter.


phd = initctggiwphd(detections) initializes a constant turn-rate ggiwphd filter based on information provided in object detections, detections. The function initializes a constant turn-rate state with the same convention as constturn and ctmeas, [x; vx; y; vy; ω; z; vz], where ω is the turn-rate.


This initialization function is not compatible with trackerGNN, trackerJPDA, and trackerTOMHT system objects.


collapse all

Consider an object located at position [1;2;3] with detections uniformly spread around it's extent. The size of the extent is 1.2, 2.3 and 3.5 in x, y and z directions, respectively.

detections = cell(20,1);
location = [1;2;3];
dimensions = [1.2;2.3;3.5];
rng(2018) % Reproducible results
measurements = location + dimensions.*(-1 + 2*rand(3,20));
for i = 1:20
    detections{i} = objectDetection(0,measurements(:,i));

Initialize a constant turn-rate ggiwphd filter with the generated detections.

phd = initctggiwphd(detections);

Check the values of state in the filter has the same position estimates as the mean of measurements.

states = phd.States
states = 7×1


measurementMean = mean(measurements,2)
measurementMean = 3×1


Check the extent and expected number of detections.

extent = phd.ScaleMatrices/(phd.DegreesOfFreedom - 4)
extent = 3×3

    1.4603    0.0885   -0.2403
    0.0885    3.0050   -0.0225
   -0.2403   -0.0225    4.8365

expDetections = phd.Shapes/phd.Rates
expDetections = 20

Input Arguments

collapse all

Object detections, specified as a cell array of objectDetection objects. You can create detections directly, or you can obtain detections from the outputs of sensor objects, such as radarSensor, monostaticRadarSensor, irSensor, and sonarSensor.

Example: detection = objectDetection(0,[1;4.5;3],'MeasurementNoise', [1.0 0 0; 0 2.0 0; 0 0 1.5])

Output Arguments

collapse all

ggiwphd filter, returned as a ggiwphd object.


  • You can use initctggiwphd as the FilterInitializationFcn property of trackingSensorConfiguration.

  • When detections are provided as input, the function adds one component to the density which reflects the mean of the detections. When the function is called without any inputs, a filter is initialized with no components in the density.

  • The function uses the spread of measurements to describe the Inverse-Wishart distribution.

  • The function uses the number of detections to describe the Gamma distribution.

  • The function configures the process noise of the filter by assuming a unit angular acceleration standard deviation.

  • The function specifies a maximum of 500 components in the filter.

Extended Capabilities

C/C++ Code Generation
Generate C and C++ code using MATLAB® Coder™.

Version History

Introduced in R2019a