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:
The signed (CCW positive) angle made between the positive real axis and the above vector is:
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:
Arg{s*} = -Arg{s}. |
