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.