class="resources"
![]() |
algorithm specifies the method used for computing the convolution. When algorithm is set to direct, the VI computes convolution using the direct form of linear convolution, x*y[i] = Sum(x[k]y[i-k]). When algorithm is set to frequency domain (default), the VI computes convolution using an FFT-based technique.
The direct method is typically faster for small input sizes, whereas the frequency-domain method is faster for large input sizes. Additionally, slight numerical differences can exist between the two methods.
|
||||
![]() |
X is input sequence 1. | ||||
![]() |
Y is input sequence 2. | ||||
![]() |
X * Y is the convolution of X and Y. | ||||
![]() |
error returns any error or warning from the VI. You can wire error to the Error Cluster From Error Code VI to convert the error code or warning into an error cluster. |
The Convolution VI is located on both the Time Domain palette and the Advanced FIR Filtering palette because you can use it in both time domain analysis and in filtering.
The Convolution VI computes the convolution of the input sequences X and Y using the following equation.

where the symbol * denotes convolution.
The VI uses the following equation to perform the discrete implementation of the convolution and obtain the elements of X * Y.

where h is X * Y, n is the number of elements in X, m is the number of elements in Y, size is the total number of elements in X * Y, and the indexed elements outside the ranges of X and Y are zero.
The convolution operation performed by this VI is not a circular convolution. Because x(t)*y(t)
X(f)Y(f) is a Fourier transform pair, you can create a circular version of the convolution using a block diagram similar to the block diagram shown in the following illustration.
