Digital Signal Processing Tricks – Fast multiplication of complex numbers
The multiplication of two
It's mandatory in all discrete and fast
If the available hardware can perform three additions faster than asingle multiplication, there's a way to speed up a complex multiplyoperation. The multiplication of two complex numbers,
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 twoadditions. (From a computationalstandpoint we'll assume a subtraction is equivalent to an addition. )
Instead of using Eq. (13 -14), we can calculate the followingintermediate values
k1 = a(c + d)
k3 = c(b – a).
We then perform the following operations to get the final R and I
R = k1 – k2 , and
The reader is invited to plug the k values from Eq. (13 -15) intoEq.(13 -16) to verify that the expressions in Eq. (13 -16) are equivalenttoEq. (13 -14).
The intermediate values in Eq. (13 -15) required three additions andthree multiplications, while the results in Eq. (13 -16) required twomore additions.
So we traded one of the multiplications required in Eq. (13 -14) forthree addition operations needed by Eq. (13 -15) and Eq. (13 -16).
If our hardware uses fewer clock cycles to perform three additionsthan a single multiplication, we may well gain overall processing speedby using Eq. (13 -15) and Eq. (13 -16) instead of Eq. (13 -14) forcomplexmultiplication.
Usedwith the permission of the publisher, Prentice Hall, this on-goingseries of articles is based on copyrighted material from “
Richard Lyons is a consultingsystems engineer and lecturer with