Radar Waveform

class RadarWaveform[source]

Bases: Serializable

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.html"
    link FMCW "fmcw.html"
    

The currently available radar waveforms are:

abstract energy(bandwidth, oversampling_factor)[source]

Energy of the radar waveform.

Parameters:
  • bandwidth (float) – Bandwidth of the radar waveform in Hz.

  • oversampling_factor (int) – Oversampling factor of the radar waveform.

Return type:

float

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

abstract estimate(signal, state)[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.

  • state (ReceiveState) – State of the device the radar is assigned to.

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 frame_duration(bandwidth)[source]

Duration of a single radar frame in seconds.

Parameters:

bandwidth (float) – Bandwidth of the radar waveform in Hz.

Return type:

float

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

abstract max_range(bandwidth)[source]

The waveform’s maximum detectable range in meters.

Parameters:

bandwidth (float) – Bandwidth of the radar waveform in Hz.

Return type:

float

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

abstract ping(state)[source]

Generate a single radar frame.

Parameters:

state (TransmitState) – State of the device the radar is assigned to.

Return type:

Signal

Returns:

Single-stream signal model of a single radar frame.

abstract range_bins(bandwidth)[source]

Discrete sample bins of the radial range sensing.

Parameters:

bandwidth (float) – Bandwidth of the radar waveform in Hz.

Return type:

ndarray

Returns:

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

abstract range_resolution(bandwidth)[source]

Resolution of the radial range sensing in meters.

Parameters:

bandwidth (float) – Bandwidth of the radar waveform in Hz.

Return type:

float

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

abstract samples_per_frame(bandwidth, oversampling_factor)[source]

Number of samples in a single radar frame.

Parameters:
  • bandwidth (float) – Bandwidth of the radar waveform in Hz.

  • oversampling_factor (int) – Oversampling factor of the radar waveform.

Return type:

int

Returns:

Number of samples in a single radar frame.

abstract property max_relative_doppler: float[source]

Maximum relative detectable radial doppler frequency shift in Hz.

\[\Delta f_\mathrm{Max} = \frac{v_\mathrm{Max}}{\lambda}\]
abstract property power: float[source]

Power of the radar waveform.

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

property relative_doppler_bins: ndarray[source]

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

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

abstract property relative_doppler_resolution: float[source]

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

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