Sensing¶
The radar module provides all functionalities to implement sensing operations on devices.
It currently implements a single signal processing chain Radar configured by realizations of abstract RadarWaveform and RadarDetector classes:
Within the context of a simulation, we can use the Radar class to configure a device sensing a single target within its field of view:
1from hermespy.radar import Radar, FMCW, ThresholdDetector
2from hermespy.simulation import Simulation
3from hermespy.channel import SingleTargetRadarChannel
4
5# Configure an FMCW radar with a threshold detector
6radar = Radar()
7radar.waveform = FMCW()
8radar.detector = ThresholdDetector(.5)
9
10# Initialize a simulation and configure a radar channel
11simulation = Simulation()
12radar.device = simulation.new_device(carrier_frequency=60e9)
13channel = SingleTargetRadarChannel(.5 * radar.max_range, 1.)
14simulation.scenario.set_channel(radar.device, radar.device, channel)
This snippet initially imports required modules from Hermes’ radar, simulation and channel modules and configures a simulation scenario with a single FMCW Radar Device transmitting at \(60~\mathrm{GHz}\). The transmitted signals are reflected by a single Target with a cross section of \(1~\mathrm{m}^2\) at a distance of half the maximum detectable range. A single simulation drop, consisting of the radar emitting a frame, the frame being propagated over the channel model, the radar receiving the frame and processing it given the configured waveform and detector can be generated by executing the following statement:
1# Generate a single simulation drop
2simulation.scenario.drop()
Afterwards, the generated information is cached at the radar and can be visualized by calling plotting routines:
1# Visualizue the generated radar information
2radar.transmission.signal.plot(title='Transmitted Radar Signal')
3radar.reception.signal.plot(title='Received Radar Signal')
4radar.reception.cube.plot_range(title='Range Power Profile')
5radar.reception.cube.plot_range_velocity(title='Range Velocity Map')
6radar.reception.cloud.visualize(title='Radar Point Cloud')
For more detailed examples, please refer to the Tutorials section. For a detailed description of the individual classes and their methods, refer to the API documentation: