[][src]Trait basic_dsp_vector::ConvolutionOps

pub trait ConvolutionOps<A, S, T, N, D> where
    S: ToSliceMut<T>,
    T: RealNumber,
    N: NumberSpace,
    D: Domain
{ fn convolve_signal<B>(
        &mut self,
        buffer: &mut B,
        impulse_response: &A
    ) -> VoidResult
    where
        B: for<'a> Buffer<'a, S, T>
; }

Provides a convolution operation for types which at some point are slice based.

Required methods

fn convolve_signal<B>(
    &mut self,
    buffer: &mut B,
    impulse_response: &A
) -> VoidResult where
    B: for<'a> Buffer<'a, S, T>, 

Convolves self with the convolution function impulse_response. For performance it's recommended to use multiply both vectors in frequency domain instead of this operation.

Failures

TransRes may report the following ErrorReason members:

  1. VectorMustBeInTimeDomain: if self is in frequency domain.
  2. VectorMetaDataMustAgree: in case self and impulse_response are not in the same number space and same domain.
  3. InvalidArgumentLength: if self.points() < impulse_response.points().
Loading content...

Implementors

impl<S, SO, T, N, D, NO, DO> ConvolutionOps<DspVec<SO, T, NO, DO>, S, T, NO, DO> for DspVec<S, T, N, D> where
    S: ToSliceMut<T>,
    SO: ToSliceMut<T>,
    T: RealNumber,
    N: NumberSpace,
    D: TimeDomain,
    DspVec<S, T, N, D>: TimeToFrequencyDomainOperations<S, T> + Clone,
    DspVec<SO, T, N, D>: TimeToFrequencyDomainOperations<SO, T> + Clone,
    NO: PosEq<N> + NumberSpace,
    DO: TimeDomain
[src]

Loading content...