MATLAB Example: Target Tracking in 3D Space with Three Radars Using UKF Filtering

MATLAB Example: Target Tracking in 3D Space with Three Radars Using UKF Filtering

Filtering in three-dimensional space, integrating radar observation data and the target’s motion model. Each radar observes three measurements: slant range + azimuth angle + elevation angle.

Table of Contents

  • Program Explanation
  • Results
  • MATLAB Source Code

Program Explanation

In three-dimensional space, each radar observes three measurements: slant range + azimuth angle + elevation angle. Additionally, the target model is: constant velocity motion.

Using UKF (Unscented Kalman Filter), the nine measurements from the three radars are fused with the constant velocity motion model to obtain the UKF-related curves and results shown in the image above.

Results

3D Trajectory Comparison:

MATLAB Example: Target Tracking in 3D Space with Three Radars Using UKF Filtering

Error Curve:

MATLAB Example: Target Tracking in 3D Space with Three Radars Using UKF Filtering

Error Output:

MATLAB Example: Target Tracking in 3D Space with Three Radars Using UKF Filtering

MATLAB Source Code

Part of the code is as follows:

% 3 Radar 3D Target Tracking Filtering System - UKF Implementation
% Constant linear motion, customizable number of radars
% Input: Radar observation data (slant range, elevation angle, azimuth angle)
% Output: Target state estimation (position, velocity)
% 2025-11-09/Ver1, Author: matlabfilter (VX same number, for code customization and explanation)

clc; clear; close all;
% rng(0);
%% == System Parameter Configuration ===
% 【Modifiable】 Basic parameters
config.T =0.1;% Sampling period (s) - modifiable
config.total_time =60;% Total simulation time (s) - modifiable
config.num_steps = config.total_time / config.T;
% 【Modifiable】 Radar position configuration [x, y, z] (m) - fixed position, modifiable if needed
radar_positions =[
400,0,0;% Radar 1 position
200,0,0;% Radar 2 position
400,100,0];% Radar 3 position

% 【Modifiable】 Measurement noise standard deviation - adjust according to actual radar accuracy
config.sigma_range =0.01;% Slant range measurement noise standard deviation (m)
config.sigma_elevation =0.01;% Elevation angle measurement noise standard deviation (rad)
config.sigma_azimuth =0.01;% Azimuth angle measurement noise standard deviation (rad)

% 【Modifiable】 Process noise standard deviation - affects the filter's tracking capability
config.sigma_acc =1e-1;% Linear acceleration process noise standard deviation (m/s²)
config.sigma_omega =1e-1;% Angular velocity process noise standard deviation (rad/s)

% 【UKF Parameters】 Unscented transformation parameters
config.alpha =1e-2;% Controls sigma point distribution, typically between 0.001-1
config.beta =2;% Optimal value is 2 (Gaussian distribution)
config.kappa =3-6;% Typically 0 or 3-n

Download the complete code:

https://mall.bilibili.com/neul-next/detailuniversal/detail.html?isMerchant=1&page=detailuniversal_detail&saleType=10&itemsId=13525852&loadingShow=1&noTitleBar=1&msource=merchant_share

MATLAB Example: Target Tracking in 3D Space with Three Radars Using UKF FilteringOr click on the “Read the original text” at the end of the article to jump

<span>If you need help or have custom code requirements related to navigation and positioning filtering, you can contact the author via WeChat below</span>

MATLAB Example: Target Tracking in 3D Space with Three Radars Using UKF Filtering

Leave a Comment