Multi Target Channel#

class MultiTargetRadarChannel(attenuate=True, interference=True, *args, **kwargs)[source]#

Bases: RadarChannelBase[MultiTargetRadarChannelRealization], Serializable

Model of a spatial radar channel featuring multiple reflecting targets.

The following minimal example outlines how to configure the channel model within the context of a Simulation:

 1# Initialize a single device operating at 78.5 GHz
 2simulation = Simulation()
 3device = simulation.new_device(carrier_frequency=78.5e9)
 4
 5# Create a radar channel modeling two targets at 10m and 50m distance
 6channel = MultiTargetRadarChannel(attenuate=False)
 7simulation.set_channel(device, device, channel)
 8
 9first_target = VirtualRadarTarget(
10    FixedCrossSection(1),
11    pose=Transformation.From_Translation(np.array([10, 0, 0])),
12    static=False,
13)
14second_target = VirtualRadarTarget(
15    FixedCrossSection(1),
16    pose=Transformation.From_Translation(np.array([0, 50, 0])),
17    static=True,
18) 
19channel.add_target(first_target)
20channel.add_target(second_target)
21
22# Configure an FMCW radar with 5 GHz bandwidth illuminating the target
23radar = Radar(device)
24radar.waveform = FMCW(10, 5e9, 90 / 5e9, 100 / 5e9)
25
26# Configure a simulation evluating the radar's operating characteristics
27simulation.add_evaluator(ReceiverOperatingCharacteristic(radar, channel))
28simulation.new_dimension('snr', dB(np.arange(0, -22, -2).tolist()))
29simulation.num_samples = 1000
30
31# Run simulation and plot resulting ROC curve
32result = simulation.run()
33result.plot()
Parameters:
  • attenuate (bool, optional) – Should the propagated signal be attenuated during propagation modeling? Enabled by default.

  • interference (bool, optional) – Should the channel model consider interference between the linked devices? Enabled by default.

add_target(target)[source]#

Add a new target to the radar channel.

Parameters:

target (RadarTarget) – Target to be added.

Return type:

None

make_target(moveable, cross_section, *args, **kwargs)[source]#

Declare a moveable to be a target within the radar channel.

Parameters:
  • moveable (Moveable) – Moveable to be declared as a target.

  • cross_section (RadarCrossSectionModel) – Radar cross section model of the target.

  • *args – Additional positional arguments passed to the target’s constructor.

  • **kwargs – Additional keyword arguments passed to the target’s constructor.

Returns:

The newly created target.

Return type:

PhysicalRadarTarget

recall_realization(group)[source]#

Recall a realization of this channel type from its HDF serialization.

Parameters:

group (h5py.Group) – HDF group to which the channel realization was serialized.

Return type:

MultiTargetRadarChannelRealization

Returns: The recalled realization instance.

interfernce: bool#

Consider interference between linked devices.

Only applies in the bistatic case, where transmitter and receiver are two dedicated device instances.

property targets: Set[RadarTarget]#

Set of targets considered within the radar channel.