Last Modified: January 12, 2018

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