Trait basic_dsp_vector::conv_types::ComplexImpulseResponse [−][src]
pub trait ComplexImpulseResponse<T>: Sync where
T: RealNumber, { fn is_symmetric(&self) -> bool; fn calc(&self, x: T) -> Complex<T>; }
A convolution function in time domain and complex number space
Required Methods
fn is_symmetric(&self) -> bool
Indicates whether this function is symmetric around 0 or not.
Symmetry is defined as self.calc(x) == self.calc(-x)
.
fn calc(&self, x: T) -> Complex<T>
Calculates the convolution for a data point
Trait Implementations
impl<'a, S, T, N, D> Convolution<'a, S, T, &'a ComplexImpulseResponse<T>> for DspVec<S, T, N, D> where
S: ToSliceMut<T>,
T: RealNumber,
N: ComplexNumberSpace,
D: TimeDomain,
DspVec<S, T, N, D>: TimeToFrequencyDomainOperations<S, T> + Clone + ConvolutionOps<DspVec<InlineVector<T>, T, N, D>, S, T, N, D>,
[src]
impl<'a, S, T, N, D> Convolution<'a, S, T, &'a ComplexImpulseResponse<T>> for DspVec<S, T, N, D> where
S: ToSliceMut<T>,
T: RealNumber,
N: ComplexNumberSpace,
D: TimeDomain,
DspVec<S, T, N, D>: TimeToFrequencyDomainOperations<S, T> + Clone + ConvolutionOps<DspVec<InlineVector<T>, T, N, D>, S, T, N, D>,
fn convolve<B>(
&mut self,
buffer: &mut B,
function: &ComplexImpulseResponse<T>,
ratio: T,
len: usize
) where
B: for<'b> Buffer<'b, S, T>,
[src]
fn convolve<B>(
&mut self,
buffer: &mut B,
function: &ComplexImpulseResponse<T>,
ratio: T,
len: usize
) where
B: for<'b> Buffer<'b, S, T>,
Convolves self
with the convolution function impulse_response
. For performance consider to to use FrequencyMultiplication
instead of this operation depending on len
. Read more
Implementors
impl ComplexImpulseResponse<f32> for ComplexTimeLinearTableLookup<f32>
impl ComplexImpulseResponse<f64> for ComplexTimeLinearTableLookup<f64>