A Radar Simulator for Python
Please fill out this form to request the module
Key Features

Radar Modeling
 Radar transceiver modeling
 Arbitrary waveform
 Phase noise
 Phase/amplitude modulation
 Fasttime/slowtime modulation

Simulation
 Simulation of radar baseband data from point targets
 Simulation of interference
 Simulation of radar baseband data from 3D modeled objects/environment (
#raytracing
)  Simulation of target’s RCS (
#raytracing
)  Simulation of LiDAR point cloud from 3D modeled objects/environment (
#raytracing
)

Signal Processing
 Range/Doppler processing
 Direction of arrival (DoA) estimation
 MUltiple SIgnal Classication (MUSIC) DoA estimation for a uniform linear array (ULA)
 RootMUSIC DoA estimation for a ULA
 Estimation of Signal Parameters via Rational Invariance Techniques (ESPRIT) DoA estimation for a ULA
 Beamformer
 Capon beamformer
 Bartlett beamformer
 Constant false alarm rate (CFAR)
 1D/2D cellaveraging CFAR (CACFAR)
 1D/2D orderedstatistic CFAR (OSCFAR)

Characterization
 Radar detection characteristics based on Swerling’s models
Dependence
 numpy
 scipy
 meshio
 Visual C++ Runtime (Windows only)
Installation
To use the module, please put the radarsimpy folder within your project folder as shown below.

Windows
 your_project.py
 your_project.ipynb
 radarsimpy
 __init__.py
 radarsimc.dll
 scene.xxx.pyd
 …

Linux
 your_project.py
 your_project.ipynb
 radarsimpy
 __init__.py
 libradarsimc.so
 scene.xxx.so
 …
Acceleration
This module supports CPU/GPU parallelization. CPU parallelization is implemented through OpenMP. GPU parallelization (CUDA) has been added since v6.0.0.
CPU  GPU (CUDA)  

Windows  ✅  ✅ 
Linux  ✅  ✅ 
macOS  ❌  ❌ 
Coordinate Systems

Scene Coordinate
 axis (m):
[x, y, z]
 phi (deg): angle on xy plane. Positive xaxis is 0 deg, positive yaxis is 90 deg
 theta (deg): angle on zx plane. Positive zaxis is 0 deg, xy plane is 90 deg
 azimuth (deg): azimuth 90 ~ 90 deg equal to phi 90 ~ 90 deg
 elevation (deg): elevation 90 ~ 90 deg equal to theta 180 ~ 0 deg
 axis (m):

Object’s Local Coordinate
 axis (m):
[x, y, z]
 yaw (deg): rotation along zaxis. Positive yaw rotates object from positive xaxis to positive yaxis
 pitch (deg): rotation along yaxis. Positive pitch rotates object from positive xaxis to positive zaxis
 roll (deg): rotation along xaxis. Positive roll rotates object from positive zaxis to negative yaxis
 origin (m):
[x, y, z]
 rotation (deg):
[yaw, pitch, roll]
 rotation (deg/s): rate
[yaw rate, pitch rate, roll rate]
 axis (m):
Usage Examples

Radar modeling and point target simulation

Radar modeling and 3D scene simulation with raytracing

3D modeled target’s RCS simulation

LiDAR point cloud

Characterization
API Reference

Radar Model: Classes to define a radar system
radarsimpy.Transmitter
: Radar transmitterradarsimpy.Receiver
: Radar receiverradarsimpy.Radar
: Radar system

Simulator: Radar baseband signal simulator
radarsimpy.simulator.simpy
: Simulates and generates raw time domain baseband data (Python engine)radarsimpy.simulator.simc
: Simulates and generates raw time domain baseband data (C++ engine)

Raytracing: Raytracing module for radar scene simulation
radarsimpy.rt.lidar_scene
: Simulates LiDAR’s point cloud based on a 3D environment model with ray tracingradarsimpy.rt.rcs_sbr
: Simulates target’s radar cross section (RCS) based on the 3D model with ray tracingradarsimpy.rt.scene
: Simulates radar’s response signal in a 3D environment model with ray tracing

Processing: Basic radar signal processing module
radarsimpy.processing.range_fft
: Calculate range profile matrixradarsimpy.processing.doppler_fft
: Calculate rangeDoppler matrixradarsimpy.processing.range_doppler_fft
: RangeDoppler processingradarsimpy.processing.cfar_ca_1d
: 1D Cell Averaging CFAR (CACFAR)radarsimpy.processing.cfar_ca_2d
: 2D Cell Averaging CFAR (CACFAR)radarsimpy.processing.cfar_os_1d
: 1D Ordered Statistic CFAR (OSCFAR)radarsimpy.processing.cfar_os_2d
: 2D Ordered Statistic CFAR (OSCFAR)radarsimpy.processing.doa_music
: Estimate DoA using MUSIC for a ULAradarsimpy.processing.doa_root_music
: Estimate DoA using RootMUSIC for a ULAradarsimpy.processing.doa_esprit
: Estimate DoA using ESPRIT for a ULAradarsimpy.processing.doa_capon
: Capon (MVDR) beamforming for a ULAradarsimpy.processing.doa_bartlett
: Bartlett beamforming for a ULA

Tools: Receiver operating characteristic analysis
radarsimpy.tools.roc_pd
: Calculate probability of detection (Pd) in receiver operating characteristic (ROC)radarsimpy.tools.roc_snr
: Calculate the minimal SNR for certain probability of detection (Pd) and probability of false alarm (Pfa) in receiver operating characteristic (ROC)
0 Comments