I/Q Imbalance Correction

Problem

Calculate

\[ \begin{align*} I(t)= & A \cos\omega t, \\ Q(t)= & A \sin \omega t \\ \end{align*} \]

from acquired signal

\[ \begin{align*} I_0(t)= & A \alpha \cos \omega t, \\ Q_0(t)= & A \sin(\omega t+\psi). \end{align*} \]

Equations

From

\[\sin(\omega t + \psi)=\sin \omega t \cos\psi+\cos \omega t \sin\psi\]

we have

\[\begin{pmatrix}I_0(t) \\ Q_0(t)\end{pmatrix} = \begin{pmatrix}\alpha & 0 \\ \sin \psi & \cos \psi\end{pmatrix} \begin{pmatrix}I(t) \\ Q(t)\end{pmatrix} ; \]

I(t) and Q(t) can be obtained by matrix inversion:

\[\begin{pmatrix}I(t) \\ Q(t)\end{pmatrix} = \begin{pmatrix}\alpha^{-1} & 0 \\ -\alpha^{-1}\tan \psi & \frac{1}{\cos \psi}\end{pmatrix} \begin{pmatrix}I_0(t) \\ Q_0(t)\end{pmatrix}. \]

The equation above can be written as

\[\begin{pmatrix}I(t) \\ Q(t)\end{pmatrix} = \begin{pmatrix}a & 0 \\ c & d\end{pmatrix} \begin{pmatrix}I_0(t) \\ Q_0(t)\end{pmatrix} \]

where

\[ \begin{align*} a= & \alpha^{-1}, \\ d= & \frac{1}{cos \psi}, \\ c= & -ad\sin\psi \end{align*} \]

i. e.

\[ \begin{align*} I(t)= & aI_0(t), \\ Q(t)= & cI_0(t) + dQ_0(t). \end{align*} \]

Properties of Time Averages

Let the time average of \(x(t)\) be denoted as \(\langle x(t) \rangle\). Note that the time average of a constant is equal to itself, and the time averages of sine and cosine functions with \(t\) are \(\langle \sin(\omega t) \rangle=\langle \cos( \omega t) \rangle=0\). The following derivations will utilize the above conclusions.

Solving for \(\alpha\)

\[ \begin{align*} & \langle I_0(t) I_0(t)\rangle \\ = & \langle A^2\alpha^2\cos^2\omega t \rangle \\ = & A^2\alpha^2\langle \frac{1}{2}+\frac{1}{2}\cos 2\omega t \rangle(\text{double-angle formula})\\ = & \frac{1}{2} A^2\alpha^2. \end{align*} \]

Similarly,

\[\langle Q_0(t) Q_0(t)\rangle=\frac{1}{2} A^2 .\]

From above two equations, we have

\[\alpha = \sqrt{\frac{\langle I_0(t) I_0(t)\rangle}{\langle Q_0(t) Q_0(t)\rangle}} .\]

Solving for \(\psi\)

\[ \begin{align*} & \langle I_0(t) Q_0(t)\rangle \\ = & A^2\alpha\langle \cos\omega t \sin (\omega t + \psi)\rangle \\ = & A^2\alpha\langle \cos \omega t \cdot (\sin \omega t \cos\psi+\cos \omega t \sin\psi)\rangle \\ = & A^2\alpha\langle \sin \omega t \cos \omega t \cos\psi+\cos^2 \omega t \sin\psi\rangle \\ = & A^2\alpha\langle \frac{1}{2} \cos\psi \sin 2 \omega t+(\frac{1}{2}+\frac{1}{2}\cos 2\omega t) \sin\psi\rangle \\ = & A^2\alpha\langle \frac{1}{2} \cos\psi \sin 2 \omega t+\frac{1}{2}\sin\psi+\frac{1}{2}\sin\psi\cos 2\omega t\rangle \\ \end{align*} \]

The first and third terms within the angle brackets involve sine and cosine functions with \(t\), so their time average is zero. The above equation

\[=\frac{1}{2} A^2\alpha\sin\psi .\]

So

\[\sin\psi=\alpha \frac{\langle I_0(t) Q_0(t)\rangle}{\langle I_0(t) I_0(t)\rangle} = \alpha^{-1} \frac{\langle I_0(t) Q_0(t)\rangle}{\langle Q_0(t) Q_0(t)\rangle} ,\]\[\cos \psi = \sqrt{1-\sin^2 \psi}.\]

Calculation of Time Average for Discrete-Time Signals

From the perspective of signal processing, the time average of a discrete-time signal \(x(n)\) is essentially its DC component. Therefore, this time average

\[\langle x(n) \rangle\]

can be computed using a DC removal filter

\[y(n)=x(n)-x(n-1)+Ry(n-1)\]

as follows:

\[\langle x(n) \rangle=x(n)-y(n).\]

The time constant of this filter is \(1/(1-R)\) samples.

Considerations in Practical Calibration

During actual calibration, the receiver is set to receive a sinusoidal signal. Using the method described above, the parameters \(a\), \(c\), and \(d\) for calibration are calculated from the quadrature-demodulated signals \(I_0(t)\) and \(Q_0(t)\).

Since the circuit design already ensures that the value of \(\psi\) is very small, \(\sin\psi\) is close to \(0\), and the RMS value of \(\langle I_0(t) Q_0(t)\rangle\) is often buried in noise. Therefore, the direct method of solving for \(\psi\) described above may not be used. Instead, the unused sideband can be monitored, and \(\sin\psi\) can be adjusted directly to optimize the sideband suppression ratio.

References