pub struct Sic {
pub constellation: Constellation,
pub criterion: Criterion,
pub ordered: bool,
}Expand description
Successive interference cancellation (V-BLAST): detect the stream of largest post-detection SINR with a linear filter, subtract it, repeat.
Fields§
§constellation: ConstellationThe alphabet of every stream.
criterion: CriterionThe filter of every stage.
ordered: boolOrder the streams by SINR (V-BLAST); in their natural order otherwise.
Implementations§
Trait Implementations§
Source§impl MimoDetector for Sic
impl MimoDetector for Sic
Source§fn constellation(&self) -> &Constellation
fn constellation(&self) -> &Constellation
The alphabet of every stream (the labels of
MimoDetector::detect index its
points).Source§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 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 moreSource§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 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 moreimpl StructuralPartialEq for Sic
Auto Trait Implementations§
impl Forget for Sic
impl Freeze for Sic
impl RefUnwindSafe for Sic
impl Send for Sic
impl Sync for Sic
impl Unpin for Sic
impl UnsafeUnpin for Sic
impl UnwindSafe for Sic
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