Click or drag to resize

Pfa235ConvolutionConvolute(Double, Double, Double, Double, Double, Double, Double, Double, FourierDirection) Method

Convolves or deconvolves a splitted complex-valued data set data[] (including any user supplied zero padding) with a response function response[]. The result is returned in the splitted complex arrays resultre[] and resultim[]. All arrays including the scratch[] arrays must have the same dimensions (or larger). The data set (and of course the other arrays) can be either one-dimensional, two-dimensional, or three-dimensional, d = 1,2,3. Each dimension must be of the form n = (2**p) * (3**q) * (5**r), because of the underlying FFT.

Namespace: Altaxo.Calc.Fourier
Assembly: AltaxoCore (in AltaxoCore.dll) Version: 4.8.3179.0 (4.8.3179.0)
Syntax
C#
public bool Convolute(
	double[] datare,
	double[] dataim,
	double[] responsere,
	double[] responseim,
	double[] resultre,
	double[] resultim,
	double[] scratchre,
	double[] scratchim,
	FourierDirection isign
)

Parameters

datare  Double
The splitted complex-valued data set. Note, that you have to care for end effects by zero padding. This means, that you have to pad the data with a number of zeros on one end equal to the maximal positive duration or maximal negative duration of the response function, whichever is larger!!
dataim  Double
The imaginary part of the data array.
responsere  Double
The response function must be stored in wrap-around order. This means that the first half of the array response[] (in each dimension) contains the impulse response function at positive times, while the second half of the array contains the impulse response function at negative times, counting down from the element with the highest index. The array must have at least the size of the data array.
responseim  Double
The imaginary part of the response array.
resultre  Double
The real part of the result array. It must have at least the size of the data array.
resultim  Double
The imaginary part of the result array.
scratchre  Double
A work array. If a NULL pointer is passed the work array is allocated and freed auotomatically. If the array is given by the user it must have at least the size of the data array.
scratchim  Double
A work array. If a NULL pointer is passed the work array is allocated and freed auotomatically. If the array is given by the user it must have at least the size of the data array.
isign  FourierDirection
If isign == forward a convolution is performed. If isign == inverse then a deconvolution is performed.

Return Value

Boolean
In the case of a convolution (isign == forward) the value "true" is returned always. In the case of deconvolution (isign == inverse) the value "false" is returned if the FFT transform of the response function is exactly zero for some value. This indicates that the original convolution has lost all information at this particular frequency, so that a reconstruction is not possible. If the transform of the response function is non-zero everywhere the deconvolution can be performed and the value "true" is returned.
See Also