Struct VMDResult
#[non_exhaustive]pub struct VMDResult {
pub imfs: Vec<IMF>,
pub center_frequencies: Vec<f64>,
pub mode_energies: Vec<f64>,
pub iterations: usize,
pub converged: bool,
}Expand description
Result of a vmd decomposition.
Fields (Non-exhaustive)§
This struct is marked as non-exhaustive
Struct { .. } syntax; cannot be matched against without a wildcard ..; and struct update syntax will not work.imfs: Vec<IMF>K band-limited modes, sorted by ascending center frequency.
center_frequencies: Vec<f64>Center frequencies ω_k in normalized frequency (cycles/sample,
[0, 0.5]), ascending — matches the ordering of imfs.
mode_energies: Vec<f64>Per-mode time-domain L² energy Σ_t u_k(t)². Useful as one of three
inputs to VMDResult::redundancy.
iterations: usizeNumber of ADMM iterations executed.
converged: booltrue if the ADMM convergence criterion was satisfied before
max_iterations.
Implementations§
§impl VMDResult
impl VMDResult
pub fn reconstruct(&self) -> Vec<f64>
pub fn reconstruct(&self) -> Vec<f64>
Sum of the extracted modes: Σ_k u_k(t).
Compare against the input signal to measure reconstruction quality:
‖x − reconstruct()‖² / ‖x‖² is the relative residual energy. With
the default τ = 0 this is approximate (~1e-4 on the paper signal);
set τ > 0 to drive it toward zero via dual ascent.
pub fn redundancy(&self) -> VmdRedundancy
pub fn redundancy(&self) -> VmdRedundancy
Compute pairwise redundancy diagnostics. See VmdRedundancy.
Trait Implementations§
Auto Trait Implementations§
impl Freeze for VMDResult
impl RefUnwindSafe for VMDResult
impl Send for VMDResult
impl Sync for VMDResult
impl Unpin for VMDResult
impl UnwindSafe for VMDResult
Blanket Implementations§
§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§unsafe fn clone_to_uninit(&self, dest: *mut u8)
unsafe fn clone_to_uninit(&self, dest: *mut u8)
clone_to_uninit)§impl<T> IntoEither for T
impl<T> IntoEither for T
§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more§impl<T> Pointable for T
impl<T> Pointable for T
§impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
§fn to_subset(&self) -> Option<SS>
fn to_subset(&self) -> Option<SS>
self from the equivalent element of its
superset. Read more§fn is_in_subset(&self) -> bool
fn is_in_subset(&self) -> bool
self is actually part of its subset T (and can be converted to it).§fn to_subset_unchecked(&self) -> SS
fn to_subset_unchecked(&self) -> SS
self.to_subset but without any property checks. Always succeeds.§fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
self to the equivalent element of its superset.