pub struct NomaDownlink {
pub powers: Vec<f64>,
pub rates: Vec<f64>,
}Expand description
A downlink NOMA policy: the power coefficients $a_{1} \ge \dots \ge a_{M}$ of the users ordered by increasing gain and their target rates $\tilde R_{m}$ (bit per channel use).
Fields§
§powers: Vec<f64>Power coefficients $a_{m}$ (summing to 1).
rates: Vec<f64>Target rates $\tilde R_{m}$ (bit per channel use).
Implementations§
Source§impl NomaDownlink
impl NomaDownlink
Sourcepub fn new(powers: Vec<f64>, rates: Vec<f64>) -> Result<NomaDownlink>
pub fn new(powers: Vec<f64>, rates: Vec<f64>) -> Result<NomaDownlink>
The policy of the power coefficients powers and the target rates rates.
§Errors
Error::Config for no user, lengths that differ, negative values or powers that
do not sum to 1.
Sourcepub fn thresholds(&self, snr: f64) -> Vec<f64>
pub fn thresholds(&self, snr: f64) -> Vec<f64>
The thresholds $\psi_{m}^{}$ of the users at the transmit SNR snr (linear): user
$m$ decodes its message when $|h_{m}|^{2} \ge \psi_{m}^{}$ (infinite when condition
(8) fails for one of the messages it decodes).
Sourcepub fn outage(&self, disc: &RandomDisc, snr: f64) -> Result<Vec<f64>>
pub fn outage(&self, disc: &RandomDisc, snr: f64) -> Result<Vec<f64>>
The outage probability of every user at the transmit SNR snr (linear), eq. (9):
$I_{F(\psi_{m}^{*})}(m, M - m + 1)$, $F$ the exact CDF (3).
§Errors
Sourcepub fn outage_high_snr(
&self,
disc: &RandomDisc,
snr: f64,
n: usize,
) -> Result<Vec<f64>>
pub fn outage_high_snr( &self, disc: &RandomDisc, snr: f64, n: usize, ) -> Result<Vec<f64>>
The high-SNR approximation (11) of the outage of every user with n
Gauss–Chebyshev nodes: $\frac{\tau_{m}}{m}\eta^{m}(\psi_{m}^{*})^{m}$, clipped at 1.