Skip to content

radarsimx/radarsimpy

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

RadarSimPy logo

Windows Unit Tests Ubuntu Unit Tests MacOS Unit Tests Documentation Download

RadarSimPy

A Radar Simulator for Python

RadarSimPy is a powerful and versatile Python-based Radar Simulator that models radar transceivers and simulates baseband data from point targets and 3D models. Its signal processing tools offer range/Doppler processing, direction of arrival estimation, and beamforming using various cutting-edge techniques, and you can even characterize radar detection using Swerlingโ€™s models. Whether youโ€™re a beginner or an advanced user, RadarSimPy is the perfect tool for anyone looking to develop new radar technologies or expand their knowledge of radar systems.


Key Features

  • ๐Ÿ“ก Radar Modeling
    • Transceiver modeling
    • Arbitrary waveform (CW, FMCW, PMCW, Pulse, ...)
    • Phase noise
    • Phase/amplitude modulation (CDM, FDM, DDM, TDM, ...)
    • Fast-time/slow-time modulation
  • ๐ŸŽฎ Simulation
    • Baseband data from point targets & 3D models
    • Interference simulation
    • Target RCS simulation
    • LiDAR point cloud simulation
  • ๐Ÿ“ถ Signal Processing
    • Range/Doppler processing
    • DoA estimation (MUSIC, Root-MUSIC, ESPRIT, IAA)
    • Beamforming (Capon, Bartlett)
    • CFAR (CA-CFAR, OS-CFAR)
  • ๐Ÿ“ˆ Characterization
    • Radar detection characteristics (Swerlingโ€™s models)

Dependencies

  • Python >= 3.9
  • NumPy >= 2.0
  • SciPy
  • PyMeshLab, PyVista, trimesh, or meshio

Platform-specific requirements:


Installation

Download the pre-built module and place the radarsimpy folder in your project directory:

your_project.py
your_project.ipynb
radarsimpy/
  โ”œโ”€โ”€ __init__.py
  โ”œโ”€โ”€ [platform-specific binaries]
  โ”œโ”€โ”€ radar.py
  โ”œโ”€โ”€ processing.py
  โ””โ”€โ”€ ...

Platform-specific binaries:

  • Windows: radarsimcpp.dll, simulator.xxx.pyd
  • Linux: libradarsimcpp.so, simulator.xxx.so
  • MacOS: libradarsimcpp.dylib, simulator.xxx.so

Acceleration

This module supports CPU/GPU parallelization:

  • CPU: via OpenMP
  • GPU: via CUDA (since v6.0.0)
CPU (x86-64) CPU (ARM64) GPU (CUDA)
Windows โœ”๏ธ โŒ๏ธ โœ”๏ธ
Linux โœ”๏ธ โŒ๏ธ โœ”๏ธ
MacOS โœ”๏ธ โœ”๏ธ โŒ๏ธ

performance


Coordinate Systems

Global Coordinate

  • axis (m): [x, y, z]
  • phi (deg): angle on the x-y plane. 0 deg is the positive x-axis, 90 deg is the positive y-axis
  • theta (deg): angle on the z-x plane. 0 deg is the positive z-axis, 90 deg is the x-y plane

phi_theta

Local Coordinate

  • yaw (deg): rotation along the z-axis. Positive yaw rotates the object from the positive x-axis to the positive y-axis
  • pitch (deg): rotation along the y-axis. Positive pitch rotates the object from the positive x-axis to the positive z-axis
  • roll (deg): rotation along the x-axis. Positive roll rotates the object from the positive y-axis to the positive z-axis
  • origin (m): [x, y, z], the motion (rotation and translation) centor of the object. Radar's origin is always at [0, 0, 0]

yaw_pitch_roll

  • azimuth (deg): azimuth -90 ~ 90 deg equal to phi -90 ~ 90 deg
  • elevation (deg): elevation -90 ~ 90 deg equal to theta 180 ~ 0 deg

azimuth_elevation


Usage Examples

Find more usage examples at radarsimx.com. Source files are available in the radarsimnb repository.


Build

Check Build Instructions


API Reference

See the Documentation


Contributing

Contributions, issues, and feature requests are welcome! Please open an issue or submit a pull request on GitHub.


License

This project is licensed under the terms of the LICENSE file.