zxs1652 / radarsimpy

Radar Simulator built with Python and C++

Home Page:https://radarsimx.github.io/radarsimpy/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Windows Test Linux Test

Documentations Download-CPU Download-GPU

RadarSimPy

logo

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

    • 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 Classification (MUSIC) DoA estimations 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

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
      • radarsimcpp.dll
      • scene.xxx.pyd
      • ...

  • Linux

    • your_project.py
    • your_project.ipynb
    • radarsimpy
      • __init__.py
      • libradarsimcpp.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

performance

Coordinate Systems

  • Scene 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
    • azimuth (deg): azimuth -90 ~ 90 deg equal to phi -90 ~ 90 deg
    • elevation (deg): elevation -90 ~ 90 deg equal to theta 180 ~ 0 deg
  • Object's Local Coordinate

    • axis (m): [x, y, z]
    • 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 z-axis to the negative y-axis
    • origin (m): [x, y, z]
    • rotation (deg): [yaw, pitch, roll]
    • rotation (deg/s): rate [yaw rate, pitch rate, roll rate]

Usage Examples

The source files of these Jupyter notebooks are available here.

Build

Building radarsimpy requires to access the source code of radarsimcpp. If you don't have access to radarsimcpp, please use the pre-built module instead

  • Windows CPU
build_win.bat
  • Windows CUDA
build_win_cuda.bat
  • Linux CPU
./build_linux.sh
  • Linux CUDA
./build_linux_cuda.sh

API Reference

About

Radar Simulator built with Python and C++

https://radarsimx.github.io/radarsimpy/

License:GNU General Public License v3.0


Languages

Language:Python 76.4%Language:Cython 18.5%Language:MATLAB 2.6%Language:Batchfile 1.3%Language:Shell 1.1%Language:Makefile 0.2%