Interactive MATLAB GUI for radar data replay
Author: RaSS Team
Date: 2025‑09‑15
The RadarReplayGUI function implements an interactive MATLAB GUI for replaying and analyzing radar data with optional video synchronization. It provides visualization, target tracking, and micro-Doppler analysis in a multi-panel layout.
| Feature | Description |
|---|---|
| Range–Doppler | Computes 2‑channel range‑doppler maps with optional clutter removal (MTI) and CFAR detection. |
| Micro‑Doppler | Generates a time‑frequency micro‑doppler profile. |
| Target Tracking | Maintains tracks across frames using spatial & temporal thresholds. |
| Video Sync | Loads an external video file (mp4/avi/mov) and syncs it to the radar timeline with adjustable speed / offset. |
| Nulling | User‑configurable null angle – useful to suppress undesidered target. |
The GUI emulates a 2×3 layout:
- RD (Range‑Doppler) & Video (spanning two panels)
- Angle/Time, Micro‑Doppler, and Polar views
| Item | Minimum Version |
|---|---|
| MATLAB® | R2020a or newer (works up to 2024b) |
| Image Processing Toolbox | Optional – for VideoReader and image display. |
| Signal Processing Toolbox | Optional – used for FFT & CFAR utilities (built‑ins are fine). |
No external packages or toolboxes are required beyond the default MATLAB installation.
git clone https://github.com/mandugo/IEEE-AESS-Radar-Challenge-2025-RaSS-Team/
cd IEEE-AESS-Radar-Challenge-2025-RaSS-Team-
Add helper functions – The MATLAB GUI relies on a handful of helper scripts located in
functions/.addpath(fullfile(pwd,'functions'));
-
Run the GUI – In MATLAB command window:
RadarReplayGUI
The script will automatically create the main figure, build all UI components and load the helper functions.
-
Load radar data
- Click “Load…” under FILES → Radar MAT
- Choose a
.matfile that contains variabledata.
Example structure:size(data) = [num_frames, 2, num_chirps, ns].
-
Load video (optional)
- Click “Load…” under VIDEOS. Supported formats:
mp4,avi,mov.
- Click “Load…” under VIDEOS. Supported formats:
-
Playback controls
Button Action Play/Pause Toggle playback. When playing, frames advance automatically at ~30 fps (timer period 0.033 s). Step > Advance one frame manually. Stop Reset to the first frame and clear tracks. Loop Enable/disable looping when reaching the last frame. -
Adjust parameters
- Range max, CFAR guard/training cells, null angle, video speed / offset are all editable via their respective edit fields or checkboxes.
| Control | Default value | Description |
|---|---|---|
| Range Max [m] | 25 |
Truncates the display to this maximum range. |
| Null angle [deg] | 8.4 |
Beamforming null direction (degrees). For no nulling or tick No Nulling. |
| CFAR Pfa | 1e‑4 |
Desired false alarm probability. |
| Gd/Tr (r,d) | 15,15;5,5 |
Guard & training cells for CFAR in range and doppler dimensions. |
| Video speed [x] | 2.7 |
Video playback speed relative to radar time. |
| Video t0 [s] | 0.0 |
Initial video offset (positive → video delayed). |
All helper functions live in the functions/ folder:
| Function | Purpose | File |
|---|---|---|
apply_cfar |
CFAR detection | functions/apply_cfar.m |
calculate_beamforming_weights |
Compute 2‑beam weights for nulling | functions/calculate_beamforming_weights.m |
clutterRemoval |
MTI clutter removal | functions/clutterRemoval.m |
extract_targets |
Extract target coordinates from detections | functions/extract_targets.m |
rangeDopplerProcessing |
2‑D FFT and range–doppler | functions/rangeDopplerProcessing.m |
update_tracks |
Maintain track history | functions/update_tracks.m |
setupVisualization, updateVisualization |
Build & refresh axes | functions/setupVisualization.m, functions/updateVisualization.m |
-
Initialization
- Defines radar parameters (chirps, bandwidth, frequency, etc.).
- Computes derived quantities (slope, FFT sizes, Doppler axes).
- Creates a GUI window with visualization panels and a control sidebar.
-
Radar Data Loading
- Loads radar frames from
.mat. - Updates FFT sizes and axes (range, velocity).
- Pre-allocates micro-Doppler history.
- Updates status in the GUI.
- Loads radar frames from
-
Video Loading
- Reads video frames into memory.
- Extracts timestamps and frame rate.
- Stores video metadata for synchronized playback.
-
Playback
- Timer-driven loop (
onTick) processes frames at ~30 FPS. - Each frame processing includes:
- Clutter Removal (if enabled).
- Range–Doppler Processing per channel.
- Null Steering across antennas.
- CFAR Detection to identify targets.
- Micro-Doppler Extraction.
- Target Tracking with spatial/time gating and history.
- Visualization Update of all panels.
- Optional Video Frame Injection aligned to radar timeline.
- Timer-driven loop (
-
Shutdown
- Cleans up timers and GUI state on close.
MIT © 2025 RaSS Team. See LICENSE for details.
