Digital Signal Processing Tricks - Fast multiplication of complex numbers

Richard G. Lyons

December 11, 2007

Richard G. LyonsDecember 11, 2007

The multiplication of two complex numbers is one of the most common functions performed in digital signal processing.

It's mandatory in all discrete and fast Fourier transformation algorithms, necessary for graphics transformations, and used in processing digital communications signals. Be it in hardware or software, it's always to our benefit to streamline the processing necessary to perform a complex multiply whenever we can.

If the available hardware can perform three additions faster than a single multiplication, there's a way to speed up a complex multiply operation.  The multiplication of two complex numbers, a + jb and c + jd, results in the complex product

R + jI = (a + jb)(c + jd) = (ac - bd) + j(bc + ad). (Eq. 13-14)

We can see that Eq. (13 -14) requires four multiplications and two additions. (From a computational standpoint we'll assume a subtraction is equivalent to an addition.)

Instead of using Eq. (13 -14), we can calculate the following intermediate values

k1 = a(c + d)
k2 = d(a + b)     (Eq. 13 -15)
k3 = c(b - a).

We then perform the following operations to get the final R and I

R = k1 - k2 , and I = k1 + k3. (Eq. 13 -16)

The reader is invited to plug the k values from Eq. (13 -15) into Eq. (13 -16) to verify that the expressions in Eq. (13 -16) are equivalent to Eq. (13 -14).

The intermediate values in Eq. (13 -15) required three additions and three multiplications, while the results in Eq. (13 -16) required two more additions.

So we traded one of the multiplications required in Eq. (13 -14) for three addition operations needed by Eq. (13 -15) and Eq. (13 -16).

If our hardware uses fewer clock cycles to perform three additions than a single multiplication, we may well gain overall processing speed by using Eq. (13 -15) and Eq. (13 -16) instead of Eq. (13 -14) for complex multiplication.

Used with the permission of the publisher, Prentice Hall, this on-going series of articles is based on copyrighted material from "Understanding Digital Signal Processing, Second Edition" by Richard G. Lyons. The book can be purchased on line.

Richard Lyons is a consulting systems engineer and lecturer with Besser Associates. As a lecturer with Besser and an instructor for the University of California Santa Cruz Extension, Lyons has delivered digitasl signal processing seminars and training course at technical conferences as well at companies such as Motorola, Freescale, Lockheed Martin, Texas Instruments, Conexant, Northrop Grumman, Lucent, Nokia, Qualcomm, Honeywell, National Semiconductor, General Dynamics and Infinion.

Loading comments...