pub struct Amp {
pub variance: AmpVariance,
/* private fields */
}Expand description
The MIMO detector of LAMA: the hard decisions of the decoupled channel, its bit LLRs, and its estimates $z$ with the variance of the decoupled noise.
Fields§
§variance: AmpVarianceThe variance estimate of the decoupled channel.
Implementations§
Source§impl Amp
impl Amp
Sourcepub fn new(constellation: Constellation, iterations: usize) -> Result<Amp>
pub fn new(constellation: Constellation, iterations: usize) -> Result<Amp>
LAMA with iterations iterations and the postulated variance.
§Errors
Error::Config for zero iterations.
Sourcepub fn iterations(&self) -> usize
pub fn iterations(&self) -> usize
Iterations.
Trait Implementations§
Source§impl MimoDetector for Amp
impl MimoDetector for Amp
Source§fn constellation(&self) -> &Constellation
fn constellation(&self) -> &Constellation
The alphabet of every stream (the labels of
MimoDetector::detect index its
points).Source§fn has_soft_output(&self) -> bool
fn has_soft_output(&self) -> bool
Whether
MimoDetector::llr gives bit LLRs (false: it returns an error).Source§fn soft_estimate(
&self,
h: &ArrayView2<'_, C64>,
y: &[C64],
noise_var: f64,
) -> Result<Option<Estimates>>
fn soft_estimate( &self, h: &ArrayView2<'_, C64>, y: &[C64], noise_var: f64, ) -> Result<Option<Estimates>>
The estimates of the transmitted symbols and their noise variances, when the
detector forms them (
None for the detectors that decide on the lattice). Read moreSource§fn detect(
&self,
h: &ArrayView2<'_, C64>,
y: &[C64],
noise_var: f64,
) -> Result<Vec<usize>>
fn detect( &self, h: &ArrayView2<'_, C64>, y: &[C64], noise_var: f64, ) -> Result<Vec<usize>>
The label of the decided point of every transmit stream. Read more
Source§fn llr(
&self,
h: &ArrayView2<'_, C64>,
y: &[C64],
noise_var: f64,
) -> Result<Vec<f64>>
fn llr( &self, h: &ArrayView2<'_, C64>, y: &[C64], noise_var: f64, ) -> Result<Vec<f64>>
Bit LLRs, $n_{t} \log_{2} M$ of them (positive for a 0). Read more
Source§fn detect_llr(
&self,
h: &ArrayView2<'_, C64>,
y: &[C64],
noise_var: f64,
) -> Result<(Vec<usize>, Vec<f64>)>
fn detect_llr( &self, h: &ArrayView2<'_, C64>, y: &[C64], noise_var: f64, ) -> Result<(Vec<usize>, Vec<f64>)>
The labels and the bit LLRs of one channel use, those of
MimoDetector::detect and MimoDetector::llr; the detectors with soft
output get both from one search. Read moreSource§fn detect_block(
&self,
h: &ArrayView2<'_, C64>,
y: &ArrayView2<'_, C64>,
noise_var: f64,
) -> Result<Array2<usize>>
fn detect_block( &self, h: &ArrayView2<'_, C64>, y: &ArrayView2<'_, C64>, noise_var: f64, ) -> Result<Array2<usize>>
Detect every column of
y (n_rx × T) with the same channel: the labels,
n_tx × T. The detectors of this module factor the channel once for the block. Read moreimpl StructuralPartialEq for Amp
Auto Trait Implementations§
impl Forget for Amp
impl Freeze for Amp
impl RefUnwindSafe for Amp
impl Send for Amp
impl Sync for Amp
impl Unpin for Amp
impl UnsafeUnpin for Amp
impl UnwindSafe for Amp
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more