# Multipath Fading¶

This module provides several implementations for statistical time-variant channel models. A single multipath propagation path is modeled as a Rician fading distribution by a sum-of-sinusoids approach

$h_{\ell}(t) = \sqrt{\frac{K_{\ell}}{1 + K_{\ell}}} \mathrm{e}^{\mathrm{j} t \omega_{\ell} \cos(\theta_{\ell,0}) + \mathrm{j} \phi_{\ell,0} } + \sqrt{\frac{1}{N(1 + K_{\ell})}} \sum_{n=1}^{N} \mathrm{e}^{\mathrm{j} t \omega_{\ell} \cos\left( \frac{2\pi n + \theta_{\ell,n}}{N} \right) + \mathrm{j} \phi_{\ell,n}}$

as proposed by Xiao et al.[1]. Each propagation path is composed of a specular component and a diffuse component, with rice factor $$K_{\ell}$$ balancing the power distribution between the both components. The more sinusoids $$N$$ are summed to model the fading, the more accurate the model is, however, Xiao et al.[1] indicate that $$N = 8$$ is a good starting point for balancing accuracy with computational complexity. The overall path has a doppler shift $$\omega_{\ell}$$ that is balanced by the angles $$\theta_{\ell,0}$$ and $$\theta_{\ell,n}$$ for line of sight and diffuse components, respectively, with a random phase $$\phi_{\ell,0}$$ and $$\phi_{\ell,n}$$. Note that for $$K_{\ell} = 0$$, i.e. a non line of sight fading consisting of diffuse components only, this approximates a Rayleigh distribution. This model can is extended by $$L$$ spatial delay taps, meaning there are multiple spatial propagation paths resulting in a delay spread of the transmitted signal at the receiver, so that the overall channel is the sum of all paths

$\mathbf{H}(t,\tau) = \mathbf{A}^{(0)} \sum_{\ell=1}^{L} g_{\ell} h_{\ell}(t) \delta(\tau - \tau_{\ell}) \mathbf{A}^{(1)} \ \text{,}$

with $$g_{\ell}$$ being the gain factor of the $$\ell$$-th path, $$\tau_{\ell}$$ the delay of the $$\ell$$-th path, and $$\mathbf{A}^{(0)}$$ and $$\mathbf{A}^{(1)}$$ being the antenna correlation matrices of the transmitter and receiver, respectively. For MIMO configurations with Devices featuring multiple transmit- or receive-antennas, custom antenna correlations $$A^{(0)}$$ and $$A^{(1)}$$ can be specified for both linked devices, respectively, as proposed by Yu et al.[2]. However, these antenna correlations do not model antenna array responses from spatial wave impingements. Instead, they are purely statistical approximations.

classDiagram class MultipathFadingChannel { +realize() +propagate() } class MultipathFadingRealization { +propagate() } class PathRealization { +propagate() } class MultipathFading5GTDL { +realize() +propagate() } class MultipathFadingCost259 { +realize() +propagate() } class MultipathFadingExponential { +realize() +propagate() } MultipathFadingChannel --o MultipathFadingRealization : realize() PathRealization --* MultipathFadingRealization MultipathFading5GTDL --|> MultipathFadingChannel MultipathFadingCost259 --|> MultipathFadingChannel MultipathFadingExponential --|> MultipathFadingChannel click MultipathFadingChannel href "channel.multipath_fading_channel.MultipathFadingChannel.html" click MultipathFadingRealization href "channel.multipath_fading_channel.MultipathFadingRealization.html" click PathRealization href "channel.multipath_fading_channel.PathRealization.html" click MultipathFading5GTDL href "channel.multipath_fading_templates.MultipathFading5GTDL.html" click MultipathFadingCost259 href "channel.multipath_fading_templates.MultipathFadingCost259.html" click MultipathFadingExponential href "channel.multipath_fading_templates.MultipathFadingExponential.html"

The base equations are implemented in the hermespy.channel.fading.fading.MultipathFadingChannel and its respective hermespy.channel.fading.fading.MultipathFadingRealizaiton / hermespy.channel.fading.fading.MultipathFadingSample. Users may directly use the hermespy.channel.fading.fading.MultipathFadingChannel with their own parameter sets. More conveniently, several standard parameterizations such as hermespy.channel.fading.tdl.TDL hermespy.channel.fading.cost259.Cost259 and hermespy.channel.fading.exponential.Exponential are provided.