pub struct SynchronizationAnalysis;Expand description
Synchronisation analysis for coupled oscillators / chaotic systems.
Implementations§
Source§impl SynchronizationAnalysis
impl SynchronizationAnalysis
Sourcepub fn pecora_carroll_sync(
drive_orbit: &[Vec<f64>],
response_orbit: &[Vec<f64>],
sync_idx: usize,
tol: f64,
) -> bool
pub fn pecora_carroll_sync( drive_orbit: &[Vec<f64>], response_orbit: &[Vec<f64>], sync_idx: usize, tol: f64, ) -> bool
Pecora–Carroll synchronisation check.
Drives a response system (with the same structure as the drive) by replacing one of its variables with the drive’s corresponding variable.
Returns true if the synchronisation error decays below tol.
drive_orbit and response_orbit are trajectories of the same length;
sync_idx is the variable index that is replaced in the response.
Sourcepub fn phase_synchronization_index(phi1: &[f64], phi2: &[f64]) -> f64
pub fn phase_synchronization_index(phi1: &[f64], phi2: &[f64]) -> f64
Phase synchronisation index (mean resultant length of phase differences).
Given two phase time-series phi1 and phi2 (in radians), computes
R = |⟨exp(i(φ₁ − φ₂))⟩|
R = 1 means perfect phase synchronisation; R ≈ 0 means asynchronous.
Sourcepub fn generalised_sync_check(
resp1: &[Vec<f64>],
resp2: &[Vec<f64>],
tol: f64,
) -> bool
pub fn generalised_sync_check( resp1: &[Vec<f64>], resp2: &[Vec<f64>], tol: f64, ) -> bool
Generalised synchronisation check via the auxiliary system method.
Two copies of the response system starting at different initial conditions
should converge to the same trajectory if GS holds. Returns true if
the distance between resp1 and resp2 at the end is below tol.
Sourcepub fn mutual_information(x: &[f64], y: &[f64], n_bins: usize) -> f64
pub fn mutual_information(x: &[f64], y: &[f64], n_bins: usize) -> f64
Mutual information estimate between two scalar signals using histogram
binning with n_bins bins.
Sourcepub fn instantaneous_phase(signal: &[f64]) -> Vec<f64>
pub fn instantaneous_phase(signal: &[f64]) -> Vec<f64>
Compute instantaneous phase of a signal via the Hilbert transform approximation (using the discrete analytic signal via FFT-like unwrapping).
This is a simple numerical approximation using finite differences. Returns the unwrapped phase array.
Sourcepub fn cross_correlation_zero_lag(x: &[f64], y: &[f64]) -> f64
pub fn cross_correlation_zero_lag(x: &[f64], y: &[f64]) -> f64
Cross-correlation between two signals at lag 0 (normalised).
Trait Implementations§
Source§impl Clone for SynchronizationAnalysis
impl Clone for SynchronizationAnalysis
Source§fn clone(&self) -> SynchronizationAnalysis
fn clone(&self) -> SynchronizationAnalysis
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreAuto Trait Implementations§
impl Freeze for SynchronizationAnalysis
impl RefUnwindSafe for SynchronizationAnalysis
impl Send for SynchronizationAnalysis
impl Sync for SynchronizationAnalysis
impl Unpin for SynchronizationAnalysis
impl UnsafeUnpin for SynchronizationAnalysis
impl UnwindSafe for SynchronizationAnalysis
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> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
Source§fn to_subset(&self) -> Option<SS>
fn to_subset(&self) -> Option<SS>
self from the equivalent element of its
superset. Read moreSource§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).Source§fn to_subset_unchecked(&self) -> SS
fn to_subset_unchecked(&self) -> SS
self.to_subset but without any property checks. Always succeeds.Source§fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
self to the equivalent element of its superset.