Single Target Channel#

class SingleTargetRadarChannel(target_range, radar_cross_section, target_azimuth=0.0, target_zenith=0.0, target_exists=True, velocity=0, attenuate=True, **kwargs)[source]#

Bases: RadarChannelBase[SingleTargetRadarChannelRealization], Serializable

Model of a radar channel featuring a single reflecting target.

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 a single target at 10m distance
 6channel = SingleTargetRadarChannel(10, 1, attenuate=False)
 7simulation.set_channel(device, device, channel)
 8
 9# Configure an FMCW radar with 5 GHz bandwidth illuminating the target
10radar = Radar(device)
11radar.waveform = FMCW(10, 5e9, 90 / 5e9, 100 / 5e9)
12
13# Configure a simulation evluating the radar's operating characteristics
14simulation.add_evaluator(ReceiverOperatingCharacteristic(radar, channel))
15simulation.new_dimension('snr', dB(np.arange(0, -22, -2).tolist()))
16simulation.num_samples = 1000
17
18# Run simulation and plot resulting ROC curve
19result = simulation.run()
20result.plot()
Parameters:
  • target_range (float | Tuple[float, float]) – Absolute distance of target and radar sensor in meters. Either a specific distance or a range of minimal and maximal target distance.

  • radar_cross_section (float) – Radar cross section (RCS) of the assumed single-point reflector in m**2

  • target_azimuth (float, optional) – Target location azimuth angle in radians, considering spherical coordinates. Zero by default.

  • target_zenith (float, optional) – Target location zenith angle in radians, considering spherical coordinates. Zero by default.

  • target_exists (bool, optional) – True if a target exists, False if there is only noise/clutter (default 0 True)

  • velocity (float | np.ndarray , optional) – Velocity as a 3D vector (or as a float), in m/s (default = 0)

  • attenuate (bool, optional) – If True, then signal will be attenuated depending on the range, RCS and losses. If False, then received power is equal to transmit power.

Raises:

ValueError – If radar_cross_section < 0. If carrier_frequency <= 0. If more than one antenna is considered.

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:

SingleTargetRadarChannelRealization

Returns: The recalled realization instance.

property radar_cross_section: float#

Access configured radar cross section.

Returns:

radar cross section [m**2]

Return type:

float

property target_azimuth: float#

Target position azimuth in spherical coordiantes.

Returns:

Azimuth angle in radians.

property target_exists: bool#

Does an illuminated target exist?

property target_range: float | Tuple[float, float]#

Absolute distance of target and radar sensor.

Returns: Target range in meters.

Raises:

ValueError – If the range is smaller than zero.

property target_velocity: float | ndarray#

Perceived target velocity.

Returns: Velocity in m/s.

property target_zenith: float#

Target position zenith in spherical coordiantes.

Returns:

Zenith angle in radians.