Version:

Last Modified: June 25, 2019

Computes the deconvolution of two sequences.

The deconvolution operation is performed using Fourier transform pairs.

The set of input data.

This input accepts the following data types:

- Double-precision, floating-point numbers
- 1D array of double-precision, floating-point numbers
- Waveform
- 1D array of waveforms

The number of elements in
**x * y**
must be greater than or equal to the number of elements in
**y**. If the number of elements in
**x * y**
is less than the number of elements in
**y**, the node sets
**x**
to an empty array and returns an error.

Length of each set of input data. This node computes each set of data separately.

This node returns an empty array if
**sample length y**
is greater than
**sample length x * y**.

This input is available only if
**x * y**
is a double-precision, floating-point number.

**Default:
**100

Length of each set of dependent values. This node computes each set of values separately.

**sample length y**
must be greater than 0. This node returns an empty array if
**sample length y**
is greater than
**sample length x * y**.

This input is available only if
**y**
is a double-precision, floating-point number.

**Default:
**100

Error conditions that occur before this node runs.

The node responds to this input according to standard error behavior.

Standard Error Behavior

Many nodes provide an
**error in**
input and an
**error out**
output so that the node can respond to and communicate errors that occur while code is running. The value of
**error in**
specifies whether an error occurred before the node runs. Most nodes respond to values of
**error in**
in a standard, predictable way.

**Default:
**No error

Error information.

The node produces this output according to standard error behavior.

Standard Error Behavior

**error in**
input and an
**error out**
output so that the node can respond to and communicate errors that occur while code is running. The value of
**error in**
specifies whether an error occurred before the node runs. Most nodes respond to values of
**error in**
in a standard, predictable way.

This node can use Fourier identities to derive the deconvolution operation because
$x\left(t\right)*y\left(t\right)\iff X\left(f\right)Y\left(f\right)$
is a Fourier transform pair, where the symbol * denotes convolution, and the deconvolution is the inverse of the convolution operation. If
*h*(*t*) is the signal resulting from the deconvolution of the signals
*x*(*t*) and
*y*(*t*), the Deconvolution node obtains
*h*(*t*) using the following equation:

$h\left(t\right)={F}^{-1}\left(\frac{X\left(f\right)}{Y\left(f\right)}\right)$

where
*X*(*f*) is the Fourier transform of
*x*(*t*), and
*Y*(*f*) is the Fourier transform of
*y*(*t*).

This node performs the discrete implementation of the deconvolution using the following steps.

**Where This Node Can Run:
**

Desktop OS: Windows

FPGA: Not supported

Web Server: Not supported in VIs that run in a web application