## Complete Communications Engineering

Processing of a complex signal represented by real and imaginary parts is an inherent part of DSP processing. One of the important blocks is the Estimator of complex signal magnitude and angle from the real signal (Re) and imaginary signal (Im) components.

The Coordinate Rotation Digital Computer (CORDIC) algorithm is an efficient method for estimating the magnitude and angle of complex signals.

The CORDIC algorithm consists of three parts: preprocessing, cascade connection of key blocks and post-processing. Figure 3 illustrates one of the key blocks in the cascade connection.

Preprocessing takes signal values and treats them separately. Absolute values |Re| and |Im| form the signal vector in the first quadrant. Then processing in the cascade connection of key blocks is performed. The number of key blocks N defines the precision (error) of the magnitude and angle estimation. In each key block the vector is rotated by the angle π/2(n+2). If the vector imaginary part is positive, the rotation is clockwise; if negative, the rotation is counter clockwise. The signs of the rotation direction define the signs of constants Vn  in the sum for angle estimation (see below). After N rotations the vector will be almost horizontal and its magnitude will be equal to the real part. The post processing block updates the angle value based on the signs of the input real and imaginary parts.

The algorithm is described using the following equations:

A0 = SRe+SIm;B0= – SRe+SIm;

Sn = sign(Bn-1);

An= Cn-1= SnBn-1·0.5 + An-1;

Bn = Dn-1 = 2(SnAn-1·0.5 + Bn-1);

n = 0,…,N-1.

Magnitude = CN-1;

Vn = atan(2-n-1);K –constant that depends on N.