Radar Channels#

Hermes’ radar channels can be used to simulate basic propagation characteristics of sensing signals. They can be thought of as stripped down raytracing channels which consider only a single reflection in between the transmitting and receiving device, with the reflection being generated by target objects specified by the user.

classDiagram class RadarChannelBase { <<Abstract>> +realize() +propagate() } class SingleTargetRadarChannel { +propagate() } class MultiTargetRadarChannel { +propagate() } class RadarChannelRealization { <<Abstract>> +propagate() } class SingleTargetRadarChannelRealization { +propagate() } class MultiTargetRadarChannelRealization { +propagate() } class RadarPathRealization { <<Abstract>> +propagation_delay() +relative_velocity() +propagation_response() } class RadarInterferenceRealization { +propagation_delay() +relative_velocity() +propagation_response() } class RadarTargetRealization { <<Abstract>> +propagation_delay() +relative_velocity() +propagation_response() } class RadarTarget { <<Abstract>> +get_cross_section() : RadarCrossSectionModel +get_velocity() +get_forwards_transformation() +get_backwards_transformation() } class VirtualRadarTarget { +get_cross_section() : RadarCrossSectionModel +get_velocity() +get_forwards_transformation() +get_backwards_transformation() } class PhysicalRadarTarget { +RadarCrossSectionModel cross_section +Moveable moveable +get_cross_section() : RadarCrossSectionModel +get_velocity() +get_forwards_transformation() +get_backwards_transformation() } RadarChannelBase o-- RadarChannelRealization : realize() SingleTargetRadarChannel o-- SingleTargetRadarChannelRealization : realize() MultiTargetRadarChannel o-- MultiTargetRadarChannelRealization : realize() RadarChannelRealization *-- RadarPathRealization MultiTargetRadarChannel *-- RadarTarget SingleTargetRadarChannel --|> RadarChannelBase MultiTargetRadarChannel --|> RadarChannelBase SingleTargetRadarChannelRealization --|> RadarChannelRealization MultiTargetRadarChannelRealization --|> RadarChannelRealization RadarInterferenceRealization --|> RadarPathRealization RadarTargetRealization --|> RadarPathRealization PhysicalRadarTarget --|> RadarTarget VirtualRadarTarget --|> RadarTarget click RadarChannelBase href "channel.radar.RadarChannelBase.html" click SingleTargetRadarChannel href "channel.radar.SingleTargetRadarChannel.html" click MultiTargetRadarChannel href "channel.radar.MultiTargetRadarChannel.html" click RadarChannelRealization href "channel.radar.RadarChannelRealization.html" click SingleTargetRadarChannelRealization href "channel.radar.SingleTargetRadarChannelRealization.html" click MultiTargetRadarChannelRealization href "channel.radar.MultiTargetRadarChannelRealization.html" click RadarPathRealization href "channel.radar.RadarPathRealization.html" click RadarInterferenceRealization href "channel.radar.RadarInterferenceRealization.html" click RadarTargetRealization href "channel.radar.RadarTargetRealization.html" click RadarTarget href "channel.radar.RadarTarget.html" click VirtualRadarTarget href "channel.radar.VirtualRadarTarget.html" click PhysicalRadarTarget href "channel.radar.PhysicalRadarTarget.html"

There are currently two types of Radar Channels, namely the easy-to-use SingleTargetRadarChannel, considering only a single reflector between its two linked devices, and the more complex MultiTargetRadarChannel, which allows for the specification of multiple reflectors with individual Cross Sections, that may represent Virtual Targets or existing Physical Targets.

A radar channel linking two devices indexed by \(\alpha\) and \(\beta\) and located at cartesian coordinates \(\mathbf{p}_{\mathrm{Device}}^{(\alpha)}\) and \(\mathbf{p}_{\mathrm{Device}}^{(\beta)}\) while moving with a global velocity of \(\mathbf{v}_{\mathrm{Device}}^{(\alpha)}\) and \(\mathbf{v}_{\mathrm{Device}}^{(\beta)}\) respectively, is modeled by the impulse response

\[\mathbf{H}^{(\alpha,\beta)}(t, \tau) = \mathbf{H}_{\mathrm{LOS}}^{(\alpha, \beta)}(t) \delta(\tau - \tau_{\mathrm{Device}}^{(\alpha,\beta)}) + \sum_{\ell=1}^{L} \mathbf{H}_{\mathrm{Target}}^{(\alpha, \beta, \ell)}(t) \delta(\tau - \tau_{\mathrm{Target}}^{(\alpha,\beta,\ell)})\]

considering a line-of-sight (LOS) interference component between both devices and a sum of \(L\) first-order reflection components generated by the \(L\) targets. The LOS component

\[\mathbf{H}_{\mathrm{LOS}}^{(\alpha, \beta)}(t) = \frac{ c_0 }{ 4 \pi f_{\mathrm{c}}^{(\alpha)} d_{\mathrm{Device}}^{(\alpha,\beta)} } \mathbf{A}_{\mathrm{Device}}^{(\alpha,\beta)} \exp\left( 2\mathrm{j}\pi f_{\mathrm{c}}^{(\alpha)} (\tau_{\mathrm{Device}}^{(\alpha,\beta)} + \frac{ \overline{v}_{\mathrm{Device}}^{(\alpha,\beta)}}{ c_0 } t ) \right)\]

depends on the distance and resulting time-of-flight delay between the devices

\[\begin{split}d_{\mathrm{Device}}^{(\alpha,\beta)} &= \| \mathbf{p}_{\mathrm{Device}}^{(\alpha)} - \mathbf{p}_{\mathrm{Device}}^{(\beta)} \|_2 \\ \tau_{\mathrm{Device}}^{(\alpha,\beta)} &= \frac{ d_{\mathrm{Device}}^{(\alpha,\beta)} }{ c_0 } \\\end{split}\]

as well as the relative velocity between the devices

\[\overline{v}_{\mathrm{Device}}^{(\alpha,\beta)} = \frac{ (\mathbf{v}_{\mathrm{Device}}^{(\alpha)} - \mathbf{v}_{\mathrm{Device}}^{(\beta)})^\mathsf{T} (\mathbf{p}_{\mathrm{Device}}^{(\alpha)} - \mathbf{p}_{\mathrm{Device}}^{(\beta)} ) }{ d_{\mathrm{Device}}^{(\alpha,\beta)} } \ \text{.}\]

Note that if a mono-static radar configuration is considered, i.e. \(\alpha = \beta\), the LOS component is not considered, since it is equivalent to Leakage between transmit and receive chains. The reflection components generated by the \(L\) targets are modeled by

\[\mathbf{H}_{\mathrm{Target}}^{(\alpha, \beta, \ell)}(t) = \frac{ c_0 \sigma_{\ell}^{\frac{1}{2}} }{ (4 \pi)^{\frac{3}{2}} f_{\mathrm{c}}^{(\alpha)} d_{\mathrm{Target}}^{(\alpha,\ell)} d_{\mathrm{Target}}^{(\beta,\ell)} } \exp\left( 2\mathrm{j}\pi f_{\mathrm{c}}^{(\alpha)} (\tau_{\mathrm{Target}}^{(\alpha,\beta,\ell)} + \frac{ \overline{v}_{\mathrm{Target}}^{(\alpha,\ell)} + \overline{v}_{\mathrm{Target}}^{(\beta,\ell)}}{ c_0 } t ) +\mathrm{j} \phi_{\mathrm{Target}}^{(\ell)} \right)\]

where the distance and resulting time-of-flight delay between the device and the \(\ell\)-th target are given by

\[\begin{split}d_{\mathrm{Target}}^{(\alpha,\ell)} &= \| \mathbf{p}_{\mathrm{Device}}^{(\alpha)} - \mathbf{p}_{\mathrm{Target}}^{(\ell)} \|_2 \\ \tau_{\mathrm{Target}}^{(\alpha,\beta,\ell)} &= \frac{ d_{\mathrm{Target}}^{(\alpha,\ell)} + d_{\mathrm{Target}}^{(\beta,\ell)} }{ c_0 } \ \text{.}\end{split}\]

The doppler shift perceived by the receiving device depends on the velocities on both devices and the target, which results in an overall relative velocity of

\[\overline{v}_{\mathrm{Target}}^{(\alpha,\ell)} = \frac{ (\mathbf{v}_{\mathrm{Target}}^{(\ell)} - \mathbf{v}_{\mathrm{Device}}^{(\alpha)})^\mathsf{T} (\mathbf{p}_{\mathrm{Target}}^{(\ell)} - \mathbf{p}_{\mathrm{Device}}^{(\alpha)} ) }{ d_{\mathrm{Target}}^{(\alpha,\ell)} } \ \text{.}\]