RVP10 algorithm overview

It is often convenient to combine two simultaneous samples of I and Q into a single complex number (called a phaser) of the form:

s = I + jQ

where j is the square root of -1.

Most of the algorithms presented here are defined in terms of the operations performed on the s's, rather than the I and Q's. The use of the complex terms leads to a more concise mathematical expression of the signal processing techniques being used.

During operation, the complex arithmetic is broken down into its real-valued component parts in order to be computed by RVP10. For example, the complex product:

s = W × Y

is computed as:

Real{s} = Real{W} Real{Y} - Imag{W} Imag{Y} 
Imag{s} = Real{W} Imag{Y} + Imag{W}Real{Y}

where Real{} and Imag{} represent the real and imaginary parts of their complex-valued argument. Note that all of the expanded computations are themselves real-valued.

In addition to the usual operations of addition, subtraction, division, and multiplication of complex numbers, we use three additional operators known as modulus, argument, and complex conjugate ( ||, Arg and *). They are defined as follows.

Given a number s in the complex plane, the magnitude (or modulus) of s is equal to the length of the vector joining the origin with s, that is by Pythagoras:

| s | = Re a l { s } 2 + I m a g { s } 2

The signed (CCW positive) angle made between the positive real axis and the above vector is:

= A r g { s } = arctan [ I m a g { s } Re a l { s } ]

where this angle lies between - π and + π and the signs of Real{} and Imag{} determine the proper quadrant. Note that this angle is real, and is uniquely defined as long as |s| is non-zero. When |s| = 0, Arg{s} is undefined.

Finally, the complex conjugate of s is the value obtained by negating the imaginary part of the number, that is:

s * = Re a l { s } j I m a g e { s }
Arg{s*} = -Arg{s}.