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
- Fast-time/slow-time 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)
- Root-MUSIC 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 cell-averaging CFAR (CA-CFAR)
- 1D/2D ordered-statistic CFAR (OS-CFAR)
-
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 x-y plane. Positive x-axis is 0 deg, positive y-axis is 90 deg
- theta (deg): angle on z-x plane. Positive z-axis is 0 deg, x-y 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 z-axis. Positive yaw rotates object from positive x-axis to positive y-axis
- pitch (deg): rotation along y-axis. Positive pitch rotates object from positive x-axis to positive z-axis
- roll (deg): rotation along x-axis. Positive roll rotates object from positive z-axis to negative y-axis
- 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 range-Doppler matrixradarsimpy.processing.range_doppler_fft
: Range-Doppler processingradarsimpy.processing.cfar_ca_1d
: 1D Cell Averaging CFAR (CA-CFAR)radarsimpy.processing.cfar_ca_2d
: 2D Cell Averaging CFAR (CA-CFAR)radarsimpy.processing.cfar_os_1d
: 1D Ordered Statistic CFAR (OS-CFAR)radarsimpy.processing.cfar_os_2d
: 2D Ordered Statistic CFAR (OS-CFAR)radarsimpy.processing.doa_music
: Estimate DoA using MUSIC for a ULAradarsimpy.processing.doa_root_music
: Estimate DoA using Root-MUSIC 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