# Deconvolve

Advanced Analysis Library Only

AnalysisLibErrType Deconvolve (double YArray[], int numYElements, double XArray[], int numXElements, double HArray[]);

## Purpose

Calculates the deconvolution of YArray with XArray.

Deconvolve assumes YArray to be the result of the convolution of XArray with some system response (HArray). The function realizes the deconvolution operation using Fourier transform pairs. Deconvolve obtains the output sequence HArray using the following formula:

where | X(f) is the Fourier transform of XArray
| Y(f) is the Fourier transform of YArray
| InvFFT is the inverse Fourier transform

## Parameters

Input
Name | Type | Description
YArray | double-precision array | Input array to deconvolve with XArray.
numYElements | integer | Number of elements in YArray.
XArray | double-precision array | Input array with which to deconvolve YArray. The size of this array must be at least numYElements.
numXElements | integer | Number of elements in XArray. numXElements numYElements
Output
Name | Type | Description
HArray | double-precision array | Output array that is YArray deconvolved with XArray. This array must be (numYElements — numXElements + 1) elements long.

## Return Value

Name | Type | Description
status | AnalysisLibErrType | A value that specifies the type of error that occurred. Refer to analysis.h for definitions of these constants.