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.FourierAssembly: AltaxoCore (in AltaxoCore.dll) Version: 4.8.3179.0 (4.8.3179.0)
Syntax 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