Radar Waveform

class RadarWaveform[source]

Bases: object

Base class for Radar waveform descriptions.

When assigned to a Radar’s waveform property, the waveform’s ping() and estimate() methods are called as subroutines of the Radar’s Radar.transmit() and Radar.receive() routines, respectively.

        classDiagram

    class Radar {
        +waveform : RadarWaveform
        +transmit() : RadarTransmission
        +receive() : RadarReception
    }

    class RadarWaveform {
        <<Abstract>>
        +sampling_rate: float*
        +frame_duration: float*
        +max_range: float*
        +range_resolution: float*
        +range_bins: ndarray
        +max_relative_doppler: float*
        +relative_doppler_resolution: float*
        +energy: float*
        +power: float*
        +ping() : Signal*
        +estimate(Signal) : ndarray*

    }

    class FMCW {
        +sampling_rate: float
        +frame_duration: float
        +max_range: float
        +range_resolution: float
        +range_bins: ndarray
        +max_relative_doppler: float
        +relative_doppler_resolution: float
        +energy: float
        +power: float
        +ping() : Signal
        +estimate(Signal) : ndarray

    }

    Radar *-- RadarWaveform
    FMCW ..|> RadarWaveform
    Radar --> RadarWaveform: ping()
    Radar --> RadarWaveform: estimate()

    link RadarWaveform "#hermespy.radar.radar.RadarWaveform"
    link Radar "radar.radar.Radar.html"
    link FMCW "radar.fmcw.html"
    

The currently available radar waveforms are:

abstract estimate(signal)[source]

Generate a range-doppler map from a single-stream radar frame.

Parameters:

signal (Signal) – Single-stream signal model of a single propagated radar frame.

Return type:

ndarray

Returns:

Numpy matrix (2D array) of the range-doppler map, where the first dimension indicates discrete doppler frequency bins and the second dimension indicates discrete range bins.

abstract ping()[source]

Generate a single radar frame.

Return type:

Signal

Returns:

Single-stream signal model of a single radar frame.

abstract property energy: float

Energy of the radar waveform.

Returns: Radar energy in \(\mathrm{Wh}\).

abstract property frame_duration: float

Duration of a single radar frame in seconds.

Denoted by \(T_{\mathrm{F}}\) of unit \(\left[ T_{\mathrm{F}} \right] = \mathrm{s}\) in literature.

abstract property max_range: float

The waveform’s maximum detectable range in meters.

Denoted by \(R_{\mathrm{Max}}\) of unit \(\left[ R_{\mathrm{Max}} \right] = \mathrm{m}\) in literature.

abstract property max_relative_doppler: float

Maximum relative detectable radial doppler frequency shift in Hz.

\[\Delta f_\mathrm{Max} = \frac{v_\mathrm{Max}}{\lambda}\]

Returns: Shift frequency delta in Hz.

abstract property power: float

Power of the radar waveform.

Returns: Radar power in \(\mathrm{W}\).

property range_bins: ndarray

Discrete sample bins of the radial range sensing.

Returns:

A numpy vector (1D array) of discrete range bins in meters.

abstract property range_resolution: float

Resolution of the radial range sensing in meters.

Denoted by \(\Delta R\) of unit \(\left[ \Delta R \right] = \mathrm{m}\) in literature.

property relative_doppler_bins: ndarray

Realtive discrete sample bins of the radial doppler frequency shift sensing.

Returns:

A numpy vector (1D array) of discrete doppler frequency bins in Hz.

abstract property relative_doppler_resolution: float

Relative resolution of the radial doppler frequency shift sensing in Hz.

\[\Delta f_\mathrm{Res} = \frac{v_\mathrm{Res}}{\lambda}\]

Returns: Doppler resolution in Hz.

abstract property sampling_rate: float

The optional sampling rate required to process this waveform.

Denoted by \(f_\mathrm{s}\) of unit \(\left[ f_\mathrm{s} \right] = \mathrm{Hz} = \tfrac{1}{\mathrm{s}}\) in literature.