/radarsimpy

Radar Simulator built with Python and C++

Primary LanguagePythonMIT LicenseMIT

Build Status DOI

!!! This module needs to be built/used together with RadarSimC (the C++ engine for radar simulator)

Please fill out this form to request the module

RadarSimPy

logo

A Radar Simulator for Python

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
      • 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

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.

API Reference