Convolution of Complex Signals

Explore why convolution between two complex signals is more computationally expensive compared to real signals.

We'll cover the following

The convolution output y[n]y[n] between two signals x[n]x[n] and h[n]h[n] is expressed as:

y[n]=mx[m]h[nm]y[n]=\sum _m x[m]h[n-m]

Real and imaginary parts

When the two signals are complex, we can write

x[n]=xI[n]+jxQ[n]h[n]=hI[n]+jhQ[n]\begin{align*} x[n] &= x_I[n]+jx_Q[n]\\ h[n] &= h_I[n]+jh_Q[n] \end{align*}

in which the subscripts II and QQ refer to inphase (real) and quadrature (imaginary) parts of the signal.

Now the multiplication in convolution can be split as:

yI[n]=mxI[m]hI[nm]mxQ[m]hQ[nm]yQ[n]=mxQ[m]hI[nm]+mxI[m]hQ[nm]\begin{align*} y_I[n]&=\sum _m x_I[m]h_I[n-m] - \sum _m x_Q[m]h_Q[n-m]\\ y_Q[n]&= \sum _m x_Q[m]h_I[n-m] + \sum _m x_I[m]h_Q[n-m] \end{align*}

This can also be written as:

yI[n]=xI[n]hI[n]xQ[n]hQ[n]yQ[n]=xQ[n]hI[n]+xI[n]hQ[n]\begin{align*} y_I[n] &= x_I[n]*h_I[n] - x_Q[n]*h_Q[n]\\ y_Q[n] &= x_Q[n]*h_I[n] + x_I[n]*h_Q[n] \end{align*}

This is drawn in the figure below:

Get hands-on with 1200+ tech skills courses.