Struct statime::filters::KalmanConfiguration
source · pub struct KalmanConfiguration {Show 15 fields
pub step_threshold: Duration,
pub deadzone: f64,
pub steer_time: Duration,
pub max_steer: f64,
pub max_freq_offset: f64,
pub initial_frequency_uncertainty: f64,
pub initial_wander: f64,
pub delay_wander: f64,
pub precision_low_probability: f64,
pub precision_high_probability: f64,
pub precision_hysteresis: u8,
pub estimate_threshold: Duration,
pub difference_estimation_boundary: usize,
pub statistical_estimation_boundary: usize,
pub peer_delay_factor: f64,
}
Expand description
Configuration options for KalmanFilter
Fields§
§step_threshold: Duration
Threshold above which errors in time are corrected by steps
deadzone: f64
Band of measured time offsets in which the algorithm doesn’t try to correct the offset, in standard deviations.
steer_time: Duration
Amount of time to take for correcting time offsets, in seconds.
Lower values make the clock correct more quickly, but also less precisely.
max_steer: f64
Maximum frequency offset to introduce during steering (ppm)
max_freq_offset: f64
Maximum correction to frequency (both from steering and to correct for the properties of the clock) the algorithm can make. (ppm)
initial_frequency_uncertainty: f64
Initial uncertainty about the clocks frequency
initial_wander: f64
Initial estimate for the wander of the clock’s frequency in s/s
delay_wander: f64
Amount of uncertainty introduced into the delay over time. Larger values allow quicker adaptation to changing conditions, at the cost of less precise clock synchronization.
This is automatically scaled with the size of the delay. (percentage per second)
precision_low_probability: f64
Likelyhood below which we start pushing the wander selection process towards assuming a more precise clock.
precision_high_probability: f64
Likelyhood above which we start pushing the wander selection process towards assuming a less precise clock.
precision_hysteresis: u8
Amount of resistance to changes in wander (max 127)
estimate_threshold: Duration
Maximum time between sync and delay to consider the combination for automatic channel error estimation. Lower values improve the estimate as it gets polluted less by uncertainties in the clock frequency, but increase startup time.
difference_estimation_boundary: usize
Amount of samples needed to start automatic measurement channel error estimation (max 32)
statistical_estimation_boundary: usize
Amount of samples needed to switch automatic measurement channel error estimation to using sample variance instead of largest-spread. (max 32)
peer_delay_factor: f64
Multiplication factor on uncertainty estimation when it comes from peer delay measurements (to compensate for there being multiple path segments).
Trait Implementations§
source§impl Clone for KalmanConfiguration
impl Clone for KalmanConfiguration
source§fn clone(&self) -> KalmanConfiguration
fn clone(&self) -> KalmanConfiguration
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read moresource§impl Debug for KalmanConfiguration
impl Debug for KalmanConfiguration
source§impl Default for KalmanConfiguration
impl Default for KalmanConfiguration
source§impl PartialEq for KalmanConfiguration
impl PartialEq for KalmanConfiguration
source§fn eq(&self, other: &KalmanConfiguration) -> bool
fn eq(&self, other: &KalmanConfiguration) -> bool
self
and other
values to be equal, and is used
by ==
.impl Copy for KalmanConfiguration
impl StructuralPartialEq for KalmanConfiguration
Auto Trait Implementations§
impl Freeze for KalmanConfiguration
impl RefUnwindSafe for KalmanConfiguration
impl Send for KalmanConfiguration
impl Sync for KalmanConfiguration
impl Unpin for KalmanConfiguration
impl UnwindSafe for KalmanConfiguration
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
source§impl<T> CheckedAs for T
impl<T> CheckedAs for T
source§fn checked_as<Dst>(self) -> Option<Dst>where
T: CheckedCast<Dst>,
fn checked_as<Dst>(self) -> Option<Dst>where
T: CheckedCast<Dst>,
source§impl<Src, Dst> CheckedCastFrom<Src> for Dstwhere
Src: CheckedCast<Dst>,
impl<Src, Dst> CheckedCastFrom<Src> for Dstwhere
Src: CheckedCast<Dst>,
source§fn checked_cast_from(src: Src) -> Option<Dst>
fn checked_cast_from(src: Src) -> Option<Dst>
source§impl<T> CloneToUninit for Twhere
T: Copy,
impl<T> CloneToUninit for Twhere
T: Copy,
source§unsafe fn clone_to_uninit(&self, dst: *mut T)
unsafe fn clone_to_uninit(&self, dst: *mut T)
clone_to_uninit
)source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
source§default unsafe fn clone_to_uninit(&self, dst: *mut T)
default unsafe fn clone_to_uninit(&self, dst: *mut T)
clone_to_uninit
)