This project implements a complete End-to-End Radar Signal Processing Pipeline in MATLAB. It bridges the gap between raw RF physics and high-level autonomous "vision." By simulating the physics of 77GHz FMCW chirps, the system employs a Kalman Filter to track both Position and Velocity in real-time.
The simulation generates 77GHz radar signals, processes them to identify targets amidst noise and "ghost" reflections, and utilizes a 2nd-order Kalman Filter to provide smooth, sub-resolution trajectory estimation.
The system is specifically designed to handle common radar challenges:
- Quantization Noise: Overcoming the 1.5m range resolution limit using recursive estimation.
- Ghost Mitigation: Identifying and ignoring static reflections (ghosts) using predictive Gating Logic.
- State Learning: Monitoring the filter as it "converges" to the true velocity of a high-speed target.
The system models a 77GHz LFM (Linear Frequency Modulation) chirp. By mixing the transmitted signal with the reflected return (heterodyning), we derive the Beat Frequency (
Raw signals are digitized and processed through a Fast Fourier Transform (FFT). Due to the
The core "brain" of the project uses a 2nd-order Discrete Kalman Filter. It maintains a state vector
Smart Gating Logic: The tracker predicts the target's next location. If multiple detections appear (e.g., a real target and a static ghost), the filter associates the data point closest to its prediction, successfully ignoring environmental noise.
I ran this simulation in MATLAB R2025b with the following toolboxes installed:
- Radar Toolbox: Required for FMCW waveform generation and radar transceiver objects.
- Signal Processing Toolbox: Required for the
findpeaksandfftfunctions.
Note: If you do not have the Radar Toolbox, the core signal processing and Kalman filtering logic can still be executed using base MATLAB and the Signal Processing Toolbox.
Below is the real-time output of the system tracking a target moving at 1500 m/s:
radartracking.mp4
- Signal Domain: Shows raw FFT peaks. Note the static "Ghost" peak at 50m which is successfully ignored.
- Spatial Domain: The Yellow Dashed Line (Kalman) provides a smooth path, cutting through the noisy Red Xs(Raw Data).
- State Estimation: The bottom plot shows the filter "learning" and locking onto the target's true velocity despite starting from a default guess.