Skip to content

Kg1511/MTIR

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

29 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

MTIR - Moving Target Indication Radar Workflow

MATLAB-based radar signal-processing workflow for simulating a moving target, generating FMCW chirp signals, applying matched filtering / pulse compression, performing MTI filtering, building Range-Doppler visualizations, and experimenting with CFAR-based target detection.

This repository is a learning + implementation project around Moving Target Indication (MTI) radar and the software pipeline used to process radar returns into interpretable detection outputs.


About

MTIR is a MATLAB project focused on the signal-processing workflow behind Moving Target Indication radar. The project models radar parameters, generates transmitted and received chirp signals, simulates delay and Doppler shift from a moving target, adds noise, applies matched filtering, performs MTI filtering, and visualizes the processed output using range profiles and Range-Doppler maps.

The main goal is to understand how raw radar returns can be transformed step-by-step into useful target-detection information. Instead of treating radar processing as a black box, the workflow breaks the system into smaller stages such as waveform generation, radial velocity calculation, noise simulation, pulse compression, MTI cancellation, Doppler FFT, Range-Doppler mapping, and CFAR detection.

From a software-engineering perspective, the project emphasizes modular MATLAB scripts, clear processing stages, debugging through visualization, and validation of intermediate outputs. The repository also includes generated figures and PDF outputs to document how the signal changes across the pipeline.


Core Workflow

Radar System Parameters
        |
        v
FMCW Chirp / Waveform Generation
        |
        v
Moving Target Simulation
(range delay + Doppler shift)
        |
        v
Noise Injection
(AWGN-style signal corruption)
        |
        v
Matched Filtering / Pulse Compression
        |
        v
MTI Filtering
(2-pulse canceller for moving-target emphasis)
        |
        v
Doppler FFT
        |
        v
Range-Doppler Map
        |
        v
CFAR Detection + Visualization

Features

  • FMCW radar signal simulation in MATLAB
  • Radar parameter setup for range, bandwidth, chirp time, slope, carrier frequency, and PRF
  • Moving target modeling using position, velocity, range delay, and Doppler shift
  • Radial velocity calculation from radar-target geometry
  • Transmitted, received, delayed, and Doppler-shifted signal visualization
  • Additive noise simulation for received radar signals
  • Matched filtering / pulse compression workflow
  • MTI filtering using a two-pulse canceller concept
  • Doppler FFT across pulses
  • Range-Doppler map generation
  • 1D and 3D range-profile visualizations
  • CFAR detection experiments with training cells, guard cells, and probability of false alarm setup

Tech Stack

Area Tools / Concepts
Programming MATLAB
Signal Processing FFT, 2D FFT, Doppler FFT, cross-correlation
Radar Concepts FMCW radar, MTI radar, PRF, range resolution, Doppler shift
Detection CFAR, training cells, guard cells, false alarm probability
Visualization MATLAB plots, surface plots, Range-Doppler maps
Workflow Modular scripts, intermediate output validation, debugging plots

Repository Structure

MTIR/
├── README.md
├── system_parameters.m                 # Radar constants and system-level parameter setup
├── calc_rad.m                          # Radial velocity calculation from target/radar geometry
├── waveform.m                          # Transmitted/received chirp signal simulation and plots
├── noise_filter.m                      # Noise, matched filtering, MTI filtering, Doppler FFT, RDM plots
├── cfar_detection.m                    # CFAR detection experiment and range-profile visualization
├── sample.m                            # Reference FMCW radar generation + range/Doppler + CFAR flow
├── sample_wave.m                       # Basic sampled waveform experiment
├── Figures/                            # Generated output figures
├── MF_and_MTI_output.pdf               # Matched filter and MTI output visualization
├── updated_MF_and_MTI_output.pdf       # Updated MF/MTI output visualization
└── cfar_detection_3D range profile visualisation.pdf

Important Scripts

system_parameters.m

Defines the radar system constants and target setup, including speed of light, range resolution, bandwidth, maximum range, PRF, chirp time, chirp slope, carrier frequency, radar position, target position, target velocity, round-trip delay, and Doppler shift.

calc_rad.m

Computes the radial component of the target velocity with respect to the radar position. This is useful for estimating the Doppler effect caused by the moving target.

waveform.m

Generates and plots transmitted chirp signals, carrier/baseband signal components, received delayed signals, and Doppler-shifted signals.

noise_filter.m

Adds noise to the received signal, applies matched filtering, performs MTI filtering using pulse differencing, generates Doppler FFT outputs, and visualizes Range-Doppler maps.

cfar_detection.m

Implements CFAR-style detection experiments using training cells, guard cells, automatic thresholding, and false-alarm probability configuration.

sample.m

Contains a reference FMCW radar simulation flow with target range/velocity setup, beat-signal generation, range FFT, Range-Doppler map generation, and 2D CFAR-style detection.


How to Run

Open MATLAB in the repository folder.

For the complete reference simulation:

run('sample.m')

For the modular MTI workflow, run the scripts stage by stage after checking variable dependencies:

run('system_parameters.m')
run('waveform.m')
run('noise_filter.m')
run('cfar_detection.m')

Note: Some files are experimental stage scripts. If a script depends on variables generated in an earlier stage, run the pipeline in order or consolidate the stages into a single driver script.


Visual Outputs

The repository includes output files and figures for reviewing intermediate radar-processing stages:

  • Matched Filter output
  • MTI filter output
  • Transmitted / received / delayed / Doppler-shifted signal plots
  • 1D range profile plots
  • Range-Doppler map visualizations
  • 3D Range-Doppler / range-profile plots
  • CFAR single-trial and multi-trial visualizations

What I Learned / Implemented

  • Designed a radar-processing workflow from system parameters to detection output
  • Modeled range delay and Doppler shift for a moving target
  • Implemented matched filtering / pulse compression concepts in MATLAB
  • Built MTI filtering logic using pulse-to-pulse differencing
  • Generated Range-Doppler maps using FFT-based processing
  • Implemented CFAR detection experiments with training/guard cells
  • Used visualization heavily to debug and validate signal-processing stages
  • Improved the workflow iteratively through multiple commits, plots, and output refinements

Current Status

  • MATLAB-based radar simulation scripts implemented
  • MTI filtering and matched-filter outputs generated
  • Range-Doppler map visualizations added
  • CFAR detection experiments added
  • Output figures and PDFs included
  • Future cleanup needed for a single end-to-end driver script and improved documentation of run order

Future Improvements

  • Add a single main.m driver script for the full pipeline
  • Convert stage scripts into reusable MATLAB functions
  • Add configuration files for radar parameters and target scenarios
  • Add automated checks for input dimensions and variable dependencies
  • Add clearer comparison plots for before/after MTI filtering
  • Add unit-style validation for radial velocity, FFT dimensions, and CFAR thresholds
  • Export clean PNG outputs for README previews
  • Add comments explaining formulas and radar assumptions in more detail

GitHub Topics

matlab radar mti-radar moving-target-indication fmcw-radar radar-signal-processing matched-filter pulse-compression cfar range-doppler-map doppler-fft signal-processing simulation data-visualization scientific-computing


Author

Kartik Gupta
GitHub: Kg1511

Releases

Packages

Contributors

Languages