[−][src]Trait basic_dsp::FrequencyDomainOperations
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>,
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.
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<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>>,
fn mirror<B>(&mut self, buffer: &mut B) where | [src] |
fn fft_shift(&mut self) | [src] |
fn ifft_shift(&mut self) | [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 Matrix2xN<V, S, T> where
S: ToSliceMut<T>,
T: RealNumber,
V: Vector<T> + FrequencyDomainOperations<S, T>,
fn mirror<B>(&mut self, buffer: &mut B) where | [src] |
fn fft_shift(&mut self) | [src] |
fn ifft_shift(&mut self) | [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 Matrix3xN<V, S, T> where
S: ToSliceMut<T>,
T: RealNumber,
V: Vector<T> + FrequencyDomainOperations<S, T>,
fn mirror<B>(&mut self, buffer: &mut B) where | [src] |
fn fft_shift(&mut self) | [src] |
fn ifft_shift(&mut self) | [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 Matrix4xN<V, S, T> where
S: ToSliceMut<T>,
T: RealNumber,
V: Vector<T> + FrequencyDomainOperations<S, T>,
fn mirror<B>(&mut self, buffer: &mut B) where | [src] |
fn fft_shift(&mut self) | [src] |
fn ifft_shift(&mut self) | [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]
impl<V, S, T> FrequencyDomainOperations<S, T> for MatrixMxN<V, S, T> where
S: ToSliceMut<T>,
T: RealNumber,
V: Vector<T> + FrequencyDomainOperations<S, T>,