pub struct Wiener2d { /* private fields */ }Expand description
The 2-D Wiener interpolator of a set of pilots (see the module).
Implementations§
Source§impl Wiener2d
impl Wiener2d
Sourcepub fn new(
pilots: Vec<(usize, usize)>,
corr: Correlation2d,
noise_to_pilot: f64,
n_taps: usize,
) -> Result<Wiener2d>
pub fn new( pilots: Vec<(usize, usize)>, corr: Correlation2d, noise_to_pilot: f64, n_taps: usize, ) -> Result<Wiener2d>
The interpolator of the pilots at (symbol, subcarrier) positions, for the
correlation corr, the noise of the LS estimates noise_to_pilot =
$\sigma^{2}/E_{p}$ and $N_{\mathrm{tap}}$ = n_taps pilots per position (at most
the number of pilots).
§Errors
comnum_core::Error::Config without pilots, for no tap or more taps than
pilots, a negative noise or Doppler.
Sourcepub fn taps(&self, l: usize, k: usize) -> Vec<usize>
pub fn taps(&self, l: usize, k: usize) -> Vec<usize>
The pilots (indices into the pilot list) used for the position (l, k): the
$N_{\mathrm{tap}}$ nearest in $|\Delta l| f_{D} T_{s} + |\Delta k| \tau \Delta F$.
Sourcepub fn plan(&self, targets: &[(usize, usize)]) -> Result<WienerPlan>
pub fn plan(&self, targets: &[(usize, usize)]) -> Result<WienerPlan>
The estimator of the positions targets, factored once per set of taps: apply it
to the LS estimates of every symbol that shares the pilots and the correlation.
§Errors
comnum_core::Error::Numerical for a singular system.
Sourcepub fn estimate(
&self,
h_ls: &[C64],
targets: &[(usize, usize)],
) -> Result<Vec<C64>>
pub fn estimate( &self, h_ls: &[C64], targets: &[(usize, usize)], ) -> Result<Vec<C64>>
The estimates at the positions targets from the LS estimates h_ls at the
pilots (in their order).
§Errors
comnum_core::Error::Shape unless h_ls has one value per pilot,
comnum_core::Error::Numerical for a singular system.