Trait basic_dsp::ConvolutionOps
source · [−]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
) -> Result<(), ErrorReason>
where
B: for<'a> Buffer<'a, S, T>;
}
Expand description
Provides a convolution operation for types which at some point are slice based.
Required Methods
sourcefn convolve_signal<B>(
&mut self,
buffer: &mut B,
impulse_response: &A
) -> Result<(), ErrorReason>where
B: for<'a> Buffer<'a, S, T>,
fn convolve_signal<B>(
&mut self,
buffer: &mut B,
impulse_response: &A
) -> Result<(), ErrorReason>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:
VectorMustBeInTimeDomain
: ifself
is in frequency domain.VectorMetaDataMustAgree
: in caseself
andimpulse_response
are not in the same number space and same domain.InvalidArgumentLength
: ifself.points() < impulse_response.points()
.