pub struct Oamp {
pub linear: OampLinear,
/* private fields */
}Expand description
The MIMO detector of OAMP with the LMMSE estimator (the outputs of Amp).
Fields§
§linear: OampLinearThe linear estimator.
Implementations§
Trait Implementations§
Source§impl MimoDetector for Oamp
impl MimoDetector for Oamp
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 Oamp
Auto Trait Implementations§
impl Freeze for Oamp
impl RefUnwindSafe for Oamp
impl Send for Oamp
impl Sync for Oamp
impl Unpin for Oamp
impl UnsafeUnpin for Oamp
impl UnwindSafe for Oamp
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