Compensate for I/Q imbalance
The IQImbalanceCompensator
System
object™ compensates for the imbalance between the in-phase
and quadrature components of a modulated signal.
To compensate for I/Q imbalance:
Define and set up the IQImbalanceCompensator
object.
See Construction.
Call step
to compensate for the
I/Q imbalance according to the properties of comm.IQImbalanceCompensator
.
The behavior of step
is specific to each object in
the toolbox.
The adaptive algorithm inherent to the I/Q imbalance compensator is compatible with M-PSK, M-QAM, and OFDM modulation schemes, where M>2.
Note
The output of the compensator might be scaled and rotated, that is, multiplied by a complex number, relative to the reference constellation. In practice, this is not an issue as receivers correct for this prior to demodulation through the use of channel estimation.
Note
Starting in R2016b, instead of using the step
method
to perform the operation defined by the System object™, you can
call the object with arguments, as if it were a function. For example, y
= step(obj,x)
and y = obj(x)
perform
equivalent operations.
H = comm.IQImbalanceCompensator
creates
a compensator System object, H
, that compensates
for the imbalance between the in-phase and quadrature components of
the input signal.
H = comm.IQImbalanceCompensator(
creates
an I/Q imbalance compensator object, Name
,Value
)H
, with each
specified property Name
set to the specified Value
.
You can specify additional name-value pair arguments in any order
as (Name1
,Value1
,...,NameN
,ValueN
).
|
Source of compensator coefficients Specify either |
|
Initial coefficient used to compensate for I/Q imbalance The initial coefficient is a complex scalar that can be either
single or double precision. The default value is |
|
Source of step size for coefficient adaptation Specify either |
|
Adaptation step size Specifies the step size used by the algorithm in estimating
the I/Q imbalance. This property is accessible only when |
|
Creates input port to control compensator coefficient adaptation When this logical property is |
|
Create port to output compensator coefficients When this logical property is |
reset | Reset states of the IQImbalanceCompensator System object |
step | Compensate I/Q Imbalance |
Common to All System Objects | |
---|---|
release | Allow System object property value changes |
One of the major impairments affecting direct conversion receivers is the imbalance between the received signal’s in-phase and quadrature components. Rather than improving the front-end, analog hardware, it is more cost effective to tolerate a certain level of I/Q imbalance and then implement compensation methods. A circularity-based blind compensation algorithm is used as the basis for the I/Q Imbalance Compensator.
A generalized I/Q imbalance model is shown, where g is the amplitude imbalance and ϕ is the phase imbalance (ideally, g = 1 and ϕ = 0). In the figure, H(f) is the nominal frequency response of the branches due to, for example, lowpass filters. HI(f) and HQ(f) represent the portions of the in-phase and quadrature amplitude and phase responses that differ from the nominal response. With perfect matching, HI(f) = HQ(f) = 1.
Let z(t) be the ideal baseband equivalent signal of the received signal, r(t), where its Fourier transform is denoted as Z(f). Given the generalized I/Q imbalance model, the Fourier transform of the imbalanced signal, x(t) = xI(t) + xQ(t), is
where G1(f) and G2(f) are the direct and conjugate components of the I/Q imbalance. These components are defined as
Applying the inverse Fourier transform to X(f), the signal model becomes x(t) = g1(t) * z(t) + g2(t) * z*(t).
This suggests the compensator structure as shown in which discrete-time notation is used to express the variables. The compensated signal is expressed as y(n) = x(n) + wx*(n).
A simple algorithm of the form
is used to determine the weights, because it ensures that the
output is “proper”, that is, [1]. The initial value of w is
determined by the InitialCoefficient
property,
which has a default value of 0 + 0i
. M is
the step size, as specified in the StepSize
property.
[1] Anttila, L., M. Valkama, and M. Renfors. “Blind compensation of frequency-selective I/Q imbalances in quadrature radio receivers: Circularity-based approach”, Proc. IEEE ICASSP, pp.III-245–248, 2007.
[2] Kiayani, A., L. Anttila, Y. Zou, and M. Valkama, “Advanced Receiver Design for Mitigating Multiple RF Impairments in OFDM Systems: Algorithms and RF Measurements”, Journal of Electrical and Computer Engineering, Vol. 2012.