[][src]Trait basic_dsp_vector::SymmetricTimeToFrequencyDomainOperations

pub trait SymmetricTimeToFrequencyDomainOperations<S, T>: ToFreqResult where
    S: ToSliceMut<T>,
    T: RealNumber
{ fn plain_sfft<B>(self, buffer: &mut B) -> TransRes<Self::FreqResult>
    where
        B: for<'a> Buffer<'a, S, T>
;
fn sfft<B>(self, buffer: &mut B) -> TransRes<Self::FreqResult>
    where
        B: for<'a> Buffer<'a, S, T>
;
fn windowed_sfft<B>(
        self,
        buffer: &mut B,
        window: &dyn WindowFunction<T>
    ) -> TransRes<Self::FreqResult>
    where
        B: for<'a> Buffer<'a, S, T>
; }

Defines all operations which are valid on DataVecs containing real time domain data.

Failures

All operations in this trait set self.len() to 0 if the vector isn't in time domain or with VectorMustHaveAnOddLength if self.points() isn't and odd number.

Required methods

fn plain_sfft<B>(self, buffer: &mut B) -> TransRes<Self::FreqResult> where
    B: for<'a> Buffer<'a, S, T>, 

Performs a Symmetric Fast Fourier Transformation under the assumption that self is symmetric around the center. This assumption isn't verified and no error is raised if the vector isn't symmetric.

This version of the IFFT neither applies a window nor does it scale the vector.

Failures

TransRes may report the following ErrorReason members:

  1. VectorMustBeReal: if self is in complex number space.
  2. VectorMustBeInTimeDomain: if self is in frequency domain.

fn sfft<B>(self, buffer: &mut B) -> TransRes<Self::FreqResult> where
    B: for<'a> Buffer<'a, S, T>, 

Performs a Symmetric Fast Fourier Transformation under the assumption that self is symmetric around the center. This assumption isn't verified and no error is raised if the vector isn't symmetric.

Failures

TransRes may report the following ErrorReason members:

  1. VectorMustBeReal: if self is in complex number space.
  2. VectorMustBeInTimeDomain: if self is in frequency domain.

fn windowed_sfft<B>(
    self,
    buffer: &mut B,
    window: &dyn WindowFunction<T>
) -> TransRes<Self::FreqResult> where
    B: for<'a> Buffer<'a, S, T>, 

Performs a Symmetric Fast Fourier Transformation under the assumption that self is symmetric around the center. This assumption isn't verified and no error is raised if the vector isn't symmetric.

Failures

TransRes may report the following ErrorReason members:

  1. VectorMustBeReal: if self is in complex number space.
  2. VectorMustBeInTimeDomain: if self is in frequency domain.
Loading content...

Implementors

impl<S, T, N, D> SymmetricTimeToFrequencyDomainOperations<S, T> for DspVec<S, T, N, D> where
    DspVec<S, T, N, D>: ToFreqResult,
    <DspVec<S, T, N, D> as ToFreqResult>::FreqResult: RededicateForceOps<DspVec<S, T, N, D>> + FrequencyDomainOperations<S, T> + ResizeOps,
    S: ToSliceMut<T>,
    T: RealNumber,
    N: RealNumberSpace,
    D: TimeDomain
[src]

Loading content...