[][src]Trait basic_dsp::FrequencyDomainOperations

pub trait FrequencyDomainOperations<S, T> where
    S: ToSliceMut<T>,
    T: RealNumber
{ fn mirror<B>(&mut self, buffer: &mut B)
    where
        B: Buffer<'a, S, T>
;
fn fft_shift(&mut self);
fn ifft_shift(&mut self); }

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

Failures

All operations in this trait set self.len() to 0 if the vector isn't in frequency domain and complex number space.

Required methods

fn mirror<B>(&mut self, buffer: &mut B) where
    B: Buffer<'a, S, T>, 

This function mirrors the spectrum vector to transform a symmetric spectrum into a full spectrum with the DC element at index 0 (no FFT shift/swap halves).

The argument indicates whether the resulting real vector should have 2*N or 2*N-1 points.

Example

use basic_dsp_vector::*;
let mut vector = vec!(1.0, 2.0, 3.0, 4.0, 5.0, 6.0).to_complex_freq_vec();
let mut buffer = SingleBuffer::new();
vector.mirror(&mut buffer);
assert_eq!([1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 5.0, -6.0, 3.0, -4.0], &vector[..]);

fn fft_shift(&mut self)

Swaps vector halves after a Fourier Transformation.

fn ifft_shift(&mut self)

Swaps vector halves before an Inverse Fourier Transformation.

Loading content...

Implementors

impl<S, T, N, D> FrequencyDomainOperations<S, T> for DspVec<S, T, N, D> where
    D: FrequencyDomain,
    N: ComplexNumberSpace,
    S: ToSliceMut<T>,
    T: RealNumber,
    DspVec<S, T, N, D>: ToTimeResult,
    <DspVec<S, T, N, D> as ToTimeResult>::TimeResult: RededicateForceOps<DspVec<S, T, N, D>>, 
[src]

impl<V, S, T> FrequencyDomainOperations<S, T> for Matrix2xN<V, S, T> where
    S: ToSliceMut<T>,
    T: RealNumber,
    V: Vector<T> + FrequencyDomainOperations<S, T>, 
[src]

impl<V, S, T> FrequencyDomainOperations<S, T> for Matrix3xN<V, S, T> where
    S: ToSliceMut<T>,
    T: RealNumber,
    V: Vector<T> + FrequencyDomainOperations<S, T>, 
[src]

impl<V, S, T> FrequencyDomainOperations<S, T> for Matrix4xN<V, S, T> where
    S: ToSliceMut<T>,
    T: RealNumber,
    V: Vector<T> + FrequencyDomainOperations<S, T>, 
[src]

impl<V, S, T> FrequencyDomainOperations<S, T> for MatrixMxN<V, S, T> where
    S: ToSliceMut<T>,
    T: RealNumber,
    V: Vector<T> + FrequencyDomainOperations<S, T>, 
[src]

Loading content...