This is where navigation should be.

LCONV - Linear convolution

Usage

h=lconv(f,g);

Description

lconv(f,g) computes the linear convolution of f and g. The linear convolution is given by

\begin{equation*} h\left(l+1\right)=\sum_{k=0}^{L_{h}-1}f\left(k+1\right)g\left(l-k+1\right) \end{equation*}

with \(L_{h} = L_{f} + L_{g} - 1\) where \(L_{f}\) and \(L_{g}\) are the lengths of f and g, respectively.

lconv(f,g,'r') computes the linear convolution of f and g where g is reversed. This type of convolution is also known as linear cross-correlation and is given by

\begin{equation*} h\left(l+1\right)=\sum_{k=0}^{L_{h}-1}f\left(k+1\right)\overline{g\left(k-l+1\right)} \end{equation*}

lconv(f,g,'rr') computes the alternative where both f and g are reversed given by

\begin{equation*} h\left(l+1\right)=\sum_{k=0}^{L_{h}-1}f\left(-k+1\right)g\left(l-k+1\right) \end{equation*}

In the above formulas, \(l-k\), \(k-l\) and \(-k\) are computed modulo \(L_{h}\).

The input arrays f and g can be 1D vectors or one of them can be a multidimensional array. In either case, the convolution is performed along columns with row vectors transformed to columns.