Single-Target Radar Channel Modeling
- class RadarChannel(target_range, radar_cross_section, target_azimuth=0.0, target_zenith=0.0, target_exists=True, losses_db=0, target_velocity=0, **kwargs)
Bases:
hermespy.channel.channel.Channel
Model of a monostatic radar channel in base-band.
The radar channel is currently implemented as a single-point reflector. The model also considers the presence of self-interference due to leakage from transmitter to receiver.
Attenuation is considered constant and calculated according to the radar range equation. The received signal is considered to have the same power as the transmitted signal, and attenuation will be taken into account in the level of the self-interference.
Moving targets are also taken into account, considering both Doppler and a change in the delay during a drop.
Both the reflected signal and the self interference will have a random phase.
Obs.: Currently only one transmit and receive antennas is supported. Only a radial velocity is considered.
ToDo: Add literature references for this channel model.
- Parameters
target_range (float) – Distance from transmitter to target object
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
losses_db (float, optional) – Any additional atmospheric and/or cable losses, in dB (default = 0)
target_velocity (float, optional) – Radial target velocity, in m/s (default = 0)
- Raises
ValueError – If target_range < 0. If radar_cross_section < 0. If carrier_frequency <= 0. If more than one antenna is considered.
- yaml_tag: str = 'RadarChannel'
YAML serialization tag.
- yaml_matrix = True
- target_exists: bool
- property target_range: float
Access configured target range.
- Returns
range [m]
- Return type
float
- 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.
- Return type
float
- Returns
Azimuth angle in radians.
- property target_zenith: float
Target position zenith in spherical coordiantes.
- Return type
float
- Returns
Zenith angle in radians.
- property losses_db: float
Access configured (atmospheric and cable) losses
- Returns
losses [dB]
- Return type
float
- property delay: float
Get delay from target
- Returns
propagation delay [s]
- Return type
float
- impulse_response(num_samples, sampling_rate)
Sample a new channel impulse response.
Note that this is the core routine from which propagate will create the channel state.
- Parameters
num_samples (int) – Number of samples within the impulse response.
sampling_rate (float) – The rate at which the delay taps will be sampled, i.e. the delay resolution.
- Returns
Impulse response in all number_rx_antennas x number_tx_antennas. 4-dimensional array of size T x number_rx_antennas x number_tx_antennas x (L+1) where L is the maximum path delay (in samples). For the ideal channel in the base class, L = 0.
- Return type
np.ndarray
- classmethod to_yaml(representer, node)
Serialize a radar channel object to YAML.
- Parameters
representer (SafeRepresenter) – A handle to a representer used to generate valid YAML code. The representer gets passed down the serialization tree to each node.
node (RadarChannel) – The channel instance to be serialized.
- Returns
The serialized YAML node.
- Return type
Node