ComplexKernelProcessor<T>.Convolve Method

Definition

Namespace: Numerics.NET.SignalProcessing
Assembly: Numerics.NET (in Numerics.NET.dll) Version: 10.0.0

Overload List

Convolve(Vector<T>) Computes the convolution of a vector with the stored kernel (allocating).
Convolve(ReadOnlySpan<T>, Span<T>) Computes the convolution of a signal with the stored kernel.
Convolve(Vector<T>, Vector<T>) Computes the convolution of a vector with the stored kernel (non-allocating).
Convolve(Int32, ReadOnlySpan<Complex<T>>, Int32, Int32, Span<Complex<T>>, Int32) Computes the convolution of a complex signal with the stored kernel.

Convolve(Int32, ReadOnlySpan<Complex<T>>, Int32, Int32, Span<Complex<T>>, Int32)

Computes the convolution of a complex signal with the stored kernel.
C#
public override void Convolve(
	int signalLength,
	ReadOnlySpan<Complex<T>> signal,
	int signalStride,
	int resultLength,
	Span<Complex<T>> result,
	int resultStride
)

Parameters

signalLength  Int32
The length of the input signal.
signal  ReadOnlySpan<Complex<T>>
A read-only span containing the complex input signal.
signalStride  Int32
The stride between successive elements in the signal. Use 1 for contiguous data.
resultLength  Int32
The expected length of the result (should match GetOutputLength(Int32)).
result  Span<Complex<T>>
A span to store the convolution result. Must have capacity for at least resultLength elements.
resultStride  Int32
The stride between successive elements in the result. Use 1 for contiguous output.

Remarks

Complex convolution computes: y[n] = Σ_m x[n - (m - a)] · h[m], where a is the anchor index. The operation preserves complex arithmetic throughout.

This method automatically selects between direct (time-domain) and FFT (frequency-domain) algorithms based on the ProcessingMethod setting and signal/kernel sizes.

See Also