Convolution operation is ubiquitous in signal processing applications. The mathematics of convolution is strongly rooted in operation on polynomials. The intent of this text is to enhance the understanding on mathematical details of convolution.
Polynomial functions:
Polynomial functions are expressions consisting of sum of terms, where each term includes one or more variables raised to a non-negative power and each term may be scaled by a coefficient. Addition, Subtraction and multiplication of polynomials are possible.
This article is part of the following books |
Polynomial functions can involve one or more variables. For example, following polynomial expression is a function of variable x. It involves sum of 3 terms where each term is scaled by a coefficient. Polynomial expression involving two variables ‘x’ and ‘y’ is given next.
Representing single variable polynomial functions:
Polynomial functions involving single variable is of specific interest here. In general a single variable (say ‘x’) polynomial is expressed in the following sum of terms form, where
The degree or order of the polynomial function is the highest power of
It is also represented by a vector of coefficients as
Polynomials can also be represented using their roots which is a product of linear terms form, as explained later.
Multiplication of polynomials and linear convolution:
As indicated earlier, mathematical operations like additions, subtractions and multiplications can be performed on polynomial functions. Addition or subtraction of polynomials is straight forward. Multiplication of polynomials is of specific interest in the context of subject discussed here.
Computing the product of two polynomials represented by the coefficient vectors
The product vector is represented as
Or equivalently as
Since the subscripts obey the equality
Which, when written in terms of indices, provides the most widely used form seen in signal processing text books.
This operation is referred as convolution (linear convolution, to be precise), denoted as
Thus when we are computing convolution, we are actually multiplying two polynomials.
Note, that if the polynomials have
The straightforward algorithm (shown below) that implements the above product expression will consume
for i = 0:n+m, ci = 0; for i = 0 :n, for k = 0 to m, c[i+k] = c[i+k] + a[i] · b[k];
Toeplitz Matrix and Convolution:
Convolution operation of two sequences can be viewed as multiplying two matrices as explained next. Given a LTI (Linear Time Invariant) system with impulse response
where, the sequence
Assume that the sequence
Computing each sample in the convolution,
Note the above result. See how the series
Thus, graphically, in convolution, one of the sequences (say
Writing the final result in the previous equation in matrix form,
When the sequences
The matrix representing the incremental delays of
Representing the operation used to construct the Toeplitz matrix out of the sequence
Now, the convolution of
One can quickly vectorize the convolution operation in matlab by using Toeplize matrices as shown below.
y=toeplitz([h0 h1 h2 h3 0 0],[h0 0 0])*x.';
Continue reading on “methods to compute linear convolution“…
For understanding the usage of toeplitz command in Matlab refer [3]
Rate this article: Note: There is a rating embedded within this post, please visit this post to rate it.
References:
[1] Reddi.S.S,”Eigen Vector properties of Toeplitz matrices and their application to spectral analysis of time series”, Signal Processing, Vol 7,North-Holland, 1984,pp 46-56.↗
[2] Robert M. Gray,”Toeplitz and circulant matrices – an overview”,Deptartment of Electrical Engineering,Stanford University,Stanford 94305,USA.↗
[3] Matlab documentation help on Toeplitz command.↗
Topics in this chapter
Books by the author
Wireless Communication Systems in Matlab Second Edition(PDF) Note: There is a rating embedded within this post, please visit this post to rate it. | Digital Modulations using Python (PDF ebook) Note: There is a rating embedded within this post, please visit this post to rate it. | Digital Modulations using Matlab (PDF ebook) Note: There is a rating embedded within this post, please visit this post to rate it. |
Hand-picked Best books on Communication Engineering Best books on Signal Processing |