Struct ComplexMexicanHat
pub struct ComplexMexicanHat {
pub omega0: f64,
}Expand description
Complex Mexican Hat (Ricker) Wavelet
A complex version of the Mexican Hat wavelet, excellent for detecting singularities and discontinuities in financial data such as jumps, crashes, or sudden volatility changes.
Mathematical form: ψ(t) = (1 - t²) * exp(-t²/2) * exp(iω₀t)
Fields§
§omega0: f64Central frequency parameter
Implementations§
§impl ComplexMexicanHat
impl ComplexMexicanHat
pub fn for_jump_detection() -> Self
pub fn for_jump_detection() -> Self
Create version optimized for jump detection in financial data
Trait Implementations§
§impl Clone for ComplexMexicanHat
impl Clone for ComplexMexicanHat
§fn clone(&self) -> ComplexMexicanHat
fn clone(&self) -> ComplexMexicanHat
1.0.0§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more§impl ContinuousWavelet for ComplexMexicanHat
impl ContinuousWavelet for ComplexMexicanHat
§fn admissibility_constant(&self) -> f64
fn admissibility_constant(&self) -> f64
ComplexMexicanHat admissibility constant.
Empirical fit: C_ψ = 3π / (ω₀ + √2)^{3/2}, where ω₀ + √2
is the wavelet’s spectral peak (matching center_frequency()).
Matches calibration within ~3% for ω₀ ∈ [4, 8] and within ~7%
for ω₀=3 — see
test_admissibility_calibration_spread_stays_bounded in
tests/transforms/cwt_reference.rs for the sweep.
Depends on the 2.0.0 admissibility correction added to
wavelet_function (subtracts ω₀²·exp(−ω₀²/2)·exp(−η²/2)
so Ψ̂(0) = 0). Without that correction the Calderón
integral diverges and no finite C_ψ exists; this formula
is only valid for the corrected wavelet.
Limitations:
- For ω₀ ≤ 2, the correction term is comparable in magnitude to the wavelet itself; reconstruction becomes strongly signal-dependent.
- At very low signal frequencies relative to ω₀ (e.g.
f·n < 8forω₀ ≥ 6), the dominant CWT scale runs out of the typical scale grid’s coverage — the empirical reconstruction underestimates by tens of percent at the slowest frequency.
Use ComplexMorlet or ComplexPaul for amplitude-correct
reconstruction at the most extreme parameter combinations.
§fn wavelet_function(&self, t: f64, scale: f64) -> Complex<f64>
fn wavelet_function(&self, t: f64, scale: f64) -> Complex<f64>
§fn center_frequency(&self) -> f64
fn center_frequency(&self) -> f64
§fn is_complex(&self) -> bool
fn is_complex(&self) -> bool
§fn wavelet_function_includes_l2_norm(&self) -> bool
fn wavelet_function_includes_l2_norm(&self) -> bool
wavelet_function already includes the CWT L2 amplitude
factor 1/√a in its return value. Read more§fn supports_frequency_domain(&self) -> bool
fn supports_frequency_domain(&self) -> bool
§fn sst_inversion_constant(&self) -> f64
fn sst_inversion_constant(&self) -> f64
R_ψ = ∫₀^∞ Ψ̂*(ω) dω / ω, used by
crate::transform::sswt_extract_component to recover an
EMD-like component from an SST ridge. Read more§fn wavelet_fft(
&self,
_buffer: &mut [FftComplex<f64>],
_scale: f64,
_fft_size: usize,
)
fn wavelet_fft( &self, _buffer: &mut [FftComplex<f64>], _scale: f64, _fft_size: usize, )
§impl Debug for ComplexMexicanHat
impl Debug for ComplexMexicanHat
Auto Trait Implementations§
impl Freeze for ComplexMexicanHat
impl RefUnwindSafe for ComplexMexicanHat
impl Send for ComplexMexicanHat
impl Sync for ComplexMexicanHat
impl Unpin for ComplexMexicanHat
impl UnwindSafe for ComplexMexicanHat
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.