pub struct Uplink {
pub antennas: usize,
pub large_scale: Vec<f64>,
pub snr_lin: f64,
pub pilots: Option<usize>,
}Expand description
The uplink of $K$ users of large-scale fading large_scale to antennas antennas,
at the normalised transmit SNR snr_lin of every user (see the module).
Fields§
§antennas: usizeThe number $M$ of base-station antennas.
large_scale: Vec<f64>The large-scale fading $\beta_{k}$ of every user.
snr_lin: f64The normalised transmit SNR $p_{u}$ of every user (linear).
pilots: Option<usize>The length $\tau$ of the pilots of the estimated CSI; perfect CSI if None.
Implementations§
Source§impl Uplink
impl Uplink
Sourcepub fn new(
antennas: usize,
large_scale: Vec<f64>,
snr_lin: f64,
) -> Result<Uplink>
pub fn new( antennas: usize, large_scale: Vec<f64>, snr_lin: f64, ) -> Result<Uplink>
The uplink with perfect CSI.
§Errors
Error::Config for no antenna or user, a large-scale fading that is not
positive and finite, or an SNR that is not.
Sourcepub fn with_pilots(self, tau: usize) -> Result<Uplink>
pub fn with_pilots(self, tau: usize) -> Result<Uplink>
The uplink with the CSI estimated from orthogonal pilots of tau symbols.
§Errors
Error::Config for fewer pilot symbols than users.
Sourcepub fn error_variance(&self) -> Vec<f64>
pub fn error_variance(&self) -> Vec<f64>
The variance $\varepsilon_{k}$ of every entry of the error of the channel estimate of every user, 0 with perfect CSI.
Sourcepub fn estimate_variance(&self) -> Vec<f64>
pub fn estimate_variance(&self) -> Vec<f64>
The variance of every entry of the channel estimate $\hat G$ of every user: $\beta_{k} - \varepsilon_{k}$ ($\beta_{k}$ with perfect CSI).
Sourcepub fn effective_noise_variance(&self) -> f64
pub fn effective_noise_variance(&self) -> f64
The variance $1 + p_{u} \sum_{i} \varepsilon_{i}$ of the noise and of the estimation error at every antenna.
Sourcepub fn rate_bound(&self, receiver: Criterion, k: usize) -> Result<f64>
pub fn rate_bound(&self, receiver: Criterion, k: usize) -> Result<f64>
The closed-form lower bound on the achievable rate of user k (bit/s/Hz) with
the receiver receiver (see the module).
§Errors
Error::Config for a user out of range, MMSE (whose bound is an approximation,
not implemented), MR with one antenna or ZF with $M \le K$.