pub struct Periodogram<T, F>where
    T: Float,{ /* private fields */ }
Expand description

Peaks of Lomb–Scargle periodogram and periodogram as a meta-feature

Periodogram $P(\omega)$ is an estimate of spectral density of unevenly time series. peaks argument corresponds to a number of the most significant spectral density peaks to return. For each peak its period and “signal to noise” ratio is returned:

$$ \mathrm{signal~to~noise~of~peak} \equiv \frac{P(\omega_\mathrm{peak}) - \langle P(\omega) \rangle}{\sigma_{P(\omega)}}. $$

Periodogram can accept other features for feature extraction from periodogram as it was time series without observation errors (unity weights are used if required). You can even pass one Periodogram to another one if you are crazy enough

  • Depends on: time, magnitude
  • Minimum number of observations: as required by sub-features, but at least two
  • Number of features: $2 \times \mathrm{peaks}$ plus sub-features

Implementations§

source§

impl<T, F> Periodogram<T, F>where T: Float, F: FeatureEvaluator<T>,

source

pub fn default_peaks() -> usize

source

pub fn default_resolution() -> f32

source

pub fn default_max_freq_factor() -> f32

source

pub fn set_freq_resolution(&mut self, resolution: f32) -> &mut Self

Set frequency resolution

The larger frequency resolution allows to find peak period with better precision

source

pub fn set_max_freq_factor(&mut self, max_freq_factor: f32) -> &mut Self

Multiply maximum (Nyquist) frequency

Maximum frequency is Nyquist frequncy multiplied by this factor. The larger factor allows to find larger frequency and makes PeriodogramPowerFft more precise. However large frequencies can show false peaks

source

pub fn set_nyquist(&mut self, nyquist: NyquistFreq) -> &mut Self

Define Nyquist frequency

source

pub fn add_feature(&mut self, feature: F) -> &mut Self

Extend a feature to extract from periodogram

source

pub fn set_periodogram_algorithm( &mut self, periodogram_power: PeriodogramPower<T> ) -> &mut Self

source

pub fn power(&self, ts: &mut TimeSeries<'_, T>) -> Vec<T>

source

pub fn freq_power(&self, ts: &mut TimeSeries<'_, T>) -> (Vec<T>, Vec<T>)

source§

impl<T, F> Periodogram<T, F>where T: Float, F: FeatureEvaluator<T> + From<PeriodogramPeaks>,

source

pub fn new(peaks: usize) -> Self

New Periodogram that finds given number of peaks

source§

impl<T, F> Periodogram<T, F>where T: Float,

source

pub fn doc() -> &'static str

Trait Implementations§

source§

impl<T, F: Clone> Clone for Periodogram<T, F>where T: Float + Clone,

source§

fn clone(&self) -> Periodogram<T, F>

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl<T, F: Debug> Debug for Periodogram<T, F>where T: Float + Debug,

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl<T, F> Default for Periodogram<T, F>where T: Float, F: FeatureEvaluator<T> + From<PeriodogramPeaks>,

source§

fn default() -> Self

Returns the “default value” for a type. Read more
source§

impl<'de, T, F> Deserialize<'de> for Periodogram<T, F>where T: Float, F: FeatureEvaluator<T> + From<PeriodogramPeaks> + TryInto<PeriodogramPeaks>, <F as TryInto<PeriodogramPeaks>>::Error: Debug,

source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
source§

impl<T, F> EvaluatorInfoTrait for Periodogram<T, F>where T: Float, F: FeatureEvaluator<T> + From<PeriodogramPeaks> + TryInto<PeriodogramPeaks>, <F as TryInto<PeriodogramPeaks>>::Error: Debug,

source§

fn get_info(&self) -> &EvaluatorInfo

Get feature evaluator meta-information
source§

fn size_hint(&self) -> usize

Size of vectors returned by eval(), get_names() and get_descriptions()
source§

fn min_ts_length(&self) -> usize

Minimum time series length required to successfully evaluate feature
source§

fn is_t_required(&self) -> bool

If time array used by the feature
source§

fn is_m_required(&self) -> bool

If magnitude array is used by the feature
source§

fn is_w_required(&self) -> bool

If weight array is used by the feature
source§

fn is_sorting_required(&self) -> bool

If feature requires time-sorting on the input TimeSeries
source§

impl<T, F> FeatureEvaluator<T> for Periodogram<T, F>where T: Float, F: FeatureEvaluator<T> + From<PeriodogramPeaks> + TryInto<PeriodogramPeaks>, <F as TryInto<PeriodogramPeaks>>::Error: Debug,

source§

fn eval(&self, ts: &mut TimeSeries<'_, T>) -> Result<Vec<T>, EvaluatorError>

Vector of feature values or EvaluatorError
source§

fn eval_or_fill(&self, ts: &mut TimeSeries<'_, T>, fill_value: T) -> Vec<T>

Returns vector of feature values and fill invalid components with given value
source§

fn check_ts_length( &self, ts: &TimeSeries<'_, T> ) -> Result<usize, EvaluatorError>

Checks if TimeSeries has enough points to evaluate the feature
source§

impl<T, F> FeatureNamesDescriptionsTrait for Periodogram<T, F>where T: Float, F: FeatureEvaluator<T> + From<PeriodogramPeaks> + TryInto<PeriodogramPeaks>, <F as TryInto<PeriodogramPeaks>>::Error: Debug,

source§

fn get_names(&self) -> Vec<&str>

Vector of feature names. The length and feature order corresponds to eval() output
source§

fn get_descriptions(&self) -> Vec<&str>

Vector of feature descriptions. The length and feature order corresponds to eval() output
source§

impl<T> From<Periodogram<T, Feature<T>>> for Feature<T>where T: Float,

source§

fn from(v: Periodogram<T, Self>) -> Feature<T>

Converts to this type from the input type.
source§

impl<T, F> JsonSchema for Periodogram<T, F>where T: Float, F: FeatureEvaluator<T>,

source§

fn is_referenceable() -> bool

Whether JSON Schemas generated for this type should be re-used where possible using the $ref keyword. Read more
source§

fn schema_name() -> String

The name of the generated JSON Schema. Read more
source§

fn json_schema(gen: &mut SchemaGenerator) -> Schema

Generates a JSON Schema for this type. Read more
source§

impl<T, F> Serialize for Periodogram<T, F>where T: Float, F: FeatureEvaluator<T> + From<PeriodogramPeaks> + TryInto<PeriodogramPeaks>, <F as TryInto<PeriodogramPeaks>>::Error: Debug,

source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>where __S: Serializer,

Serialize this value into the given Serde serializer. Read more
source§

impl<T> TryInto<Periodogram<T, Feature<T>>> for Feature<T>where T: Float,

§

type Error = &'static str

The type returned in the event of a conversion error.
source§

fn try_into( self ) -> Result<Periodogram<T, Self>, <Self as TryInto<Periodogram<T, Self>>>::Error>

Performs the conversion.

Auto Trait Implementations§

§

impl<T, F> RefUnwindSafe for Periodogram<T, F>where F: RefUnwindSafe, T: RefUnwindSafe,

§

impl<T, F> Send for Periodogram<T, F>where F: Send,

§

impl<T, F> Sync for Periodogram<T, F>where F: Sync,

§

impl<T, F> Unpin for Periodogram<T, F>where F: Unpin, T: Unpin,

§

impl<T, F> UnwindSafe for Periodogram<T, F>where F: UnwindSafe, T: UnwindSafe,

Blanket Implementations§

source§

impl<T> Any for Twhere T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<Src, Scheme> ApproxFrom<Src, Scheme> for Srcwhere Scheme: ApproxScheme,

§

type Err = NoError

The error type produced by a failed conversion.
source§

fn approx_from(src: Src) -> Result<Src, <Src as ApproxFrom<Src, Scheme>>::Err>

Convert the given value into an approximately equivalent representation.
source§

impl<Dst, Src, Scheme> ApproxInto<Dst, Scheme> for Srcwhere Dst: ApproxFrom<Src, Scheme>, Scheme: ApproxScheme,

§

type Err = <Dst as ApproxFrom<Src, Scheme>>::Err

The error type produced by a failed conversion.
source§

fn approx_into(self) -> Result<Dst, <Src as ApproxInto<Dst, Scheme>>::Err>

Convert the subject into an approximately equivalent representation.
source§

impl<T> Borrow<T> for Twhere T: ?Sized,

const: unstable · source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for Twhere T: ?Sized,

const: unstable · source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T, Dst> ConvAsUtil<Dst> for T

source§

fn approx(self) -> Result<Dst, Self::Err>where Self: Sized + ApproxInto<Dst, DefaultApprox>,

Approximate the subject with the default scheme.
source§

fn approx_by<Scheme>(self) -> Result<Dst, Self::Err>where Self: Sized + ApproxInto<Dst, Scheme>, Scheme: ApproxScheme,

Approximate the subject with a specific scheme.
source§

impl<T> ConvUtil for T

source§

fn approx_as<Dst>(self) -> Result<Dst, Self::Err>where Self: Sized + ApproxInto<Dst, DefaultApprox>,

Approximate the subject to a given type with the default scheme.
source§

fn approx_as_by<Dst, Scheme>(self) -> Result<Dst, Self::Err>where Self: Sized + ApproxInto<Dst, Scheme>, Scheme: ApproxScheme,

Approximate the subject to a given type with a specific scheme.
source§

fn into_as<Dst>(self) -> Dstwhere Self: Sized + Into<Dst>,

Convert the subject to a given type.
source§

fn try_as<Dst>(self) -> Result<Dst, Self::Err>where Self: Sized + TryInto<Dst>,

Attempt to convert the subject to a given type.
source§

fn value_as<Dst>(self) -> Result<Dst, Self::Err>where Self: Sized + ValueInto<Dst>,

Attempt a value conversion of the subject to a given type.
source§

impl<T> DynClone for Twhere T: Clone,

source§

fn __clone_box(&self, _: Private) -> *mut ()

source§

impl<T> From<T> for T

const: unstable · source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T, U> Into<U> for Twhere U: From<T>,

const: unstable · source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T> ToOwned for Twhere T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

impl<Src> TryFrom<Src> for Src

§

type Err = NoError

The error type produced by a failed conversion.
source§

fn try_from(src: Src) -> Result<Src, <Src as TryFrom<Src>>::Err>

Convert the given value into the subject type.
source§

impl<T, U> TryFrom<U> for Twhere U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
const: unstable · source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<Src, Dst> TryInto<Dst> for Srcwhere Dst: TryFrom<Src>,

§

type Err = <Dst as TryFrom<Src>>::Err

The error type produced by a failed conversion.
source§

fn try_into(self) -> Result<Dst, <Src as TryInto<Dst>>::Err>

Convert the subject into the destination type.
source§

impl<T, U> TryInto<U> for Twhere U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
const: unstable · source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<V, T> VZip<V> for Twhere V: MultiLane<T>,

§

fn vzip(self) -> V

source§

impl<Src> ValueFrom<Src> for Src

§

type Err = NoError

The error type produced by a failed conversion.
source§

fn value_from(src: Src) -> Result<Src, <Src as ValueFrom<Src>>::Err>

Convert the given value into an exactly equivalent representation.
source§

impl<Src, Dst> ValueInto<Dst> for Srcwhere Dst: ValueFrom<Src>,

§

type Err = <Dst as ValueFrom<Src>>::Err

The error type produced by a failed conversion.
source§

fn value_into(self) -> Result<Dst, <Src as ValueInto<Dst>>::Err>

Convert the subject into an exactly equivalent representation.
source§

impl<T> DeserializeOwned for Twhere T: for<'de> Deserialize<'de>,