Radar Device Operation

%%{init: {'theme': 'dark'}}%% flowchart LR subgraph Radar direction LR subgraph Waveform Modulation TargetEstimation --- Demodulation end subgraph BeamForming TxBeamform[Tx Beamforming] RxBeamform[Rx Beamforming] end Modulation --> TxBeamform Demodulation --- RxBeamform end subgraph Device direction TB txslot>Tx Slot] rxslot>Rx Slot] end estimations{{Target Estimations}} txsignal{{Tx Signal Model}} rxsignal{{Rx Signal Model}} TxBeamform --> txsignal RxBeamform --- rxsignal txsignal --> txslot rxsignal --- rxslot TargetEstimation --- estimations
class PointDetection(position, velocity, power)

Bases: object

A single radar point detection.

Parameters
  • position (np.ndarray) – Cartesian position of the detection in cartesian coordinates.

  • velocity (np.ndarray) – Velocity vector of the detection in m/s

  • power (float) – Power of the detection.

Raises

ValueError – If position is not three-dimensional. If velocity is not three-dimensional. If power is smaller or equal to zero.

property position: numpy.ndarray

Position of the detection.

Returns

Cartesian position in m.

Return type

np.ndarray

Raises

ValueError – If position is not a three-dimensional vector.

property velocity: numpy.ndarray

Velocity of the detection.

Returns

Velocity vector in m/s.

Return type

np.ndarray

Raises

ValueError – If velocity is not a three-dimensional vector.

property power: float

Detected power.

Returns

Power.

Return type

float

Raises

ValueError – If power is smaller or equal to zero.

class RadarCube(data, angle_bins, velocity_bins, range_bins)

Bases: object

data: numpy.ndarray
angle_bins: numpy.ndarray
velocity_bins: numpy.ndarray
range_bins: numpy.ndarray
plot_range(title=None, axes=None)

Visualize the cube’s range data.

Parameters
  • title (str, optional) – Plot title.

  • axes (Optional[plt.Axes], optional) – Matplotlib axes to plot the graph to. If none are provided, a new figure is created.

Returns

The visualization figure. None if axes were provided.

Return type

Optional[plt.Figure]

plot_range_velocity(title=None, interpolate=True)

Visualize the cube’s range-velocity profile.

Parameters
  • title (str, optional) – Plot title.

  • interpolate (bool, optional) – Interpolate the axis for a square profile plot. Enabled by default.

Return type

plt.Figure

class RadarWaveform

Bases: object

Base class for waveform generation of radars.

abstract ping()

Generate a single radar frame.

Returns

Model of the radar frame.

Return type

Signal

abstract estimate(signal)
Return type

ndarray

abstract property sampling_rate: float

The optional sampling rate required to process this waveform.

Returns

Sampling rate in Hz.

Return type

sampling_rate (float)

abstract property range_bins: numpy.ndarray

Sample bins of the depth sensing.

Returns

Ranges in m.

Return type

np.ndarray

abstract property velocity_bins: numpy.ndarray

Sample bins of the radial velocity sensing.

Returns

Velocities in m/s.

Return type

np.ndarray

class Radar

Bases: hermespy.core.device.DuplexOperator

HermesPy representation of a mono-static radar sensing its environment.

waveform: Optional[RadarWaveform]
property transmit_beamformer: Optional[hermespy.beamforming.beamformer.TransmitBeamformer]

Beamforming applied during signal transmission.

Return type

Optional[TransmitBeamformer]

Returns

The beamformer. None, if no beamformer is configured during transmission.

property receive_beamformer: Optional[hermespy.beamforming.beamformer.ReceiveBeamformer]

Beamforming applied during signal transmission.

Return type

Optional[ReceiveBeamformer]

Returns

The beamformer. None, if no beamformer is configured during transmission.

property sampling_rate: float
Return type

float

property frame_duration: float
Return type

float

property energy: float

Average energy of the transmitted and received signal.

Returns

Energy.

Return type

flot

transmit(duration=0.0)
Return type

Tuple[Signal]

receive()
Return type

Tuple[RadarCube]