iqi_cor

I/Q imbalance correction

Calling sequence

y = iqi_cor(x, g, phi)

Parameters

x:

Input I/Q signal (complex vector)

g:

Gain relative imbalance

phi:

Phase imbalance (in radians)

y:

Output I/Q signal, with imbalance corrected

Description

Fix the phase and amplitude imbalance of the received I/Q signal (x is complex). g and phi can be estimated (blind estimation) with the function iq_blind_est.

// Generation of a QAM16 signal  (with IF = 0)
mod = mod_init('qam16',1000,0,50);
[mod,x] = mod_process(mod,prbs(5000));
x = awgn(x,0.02,'c'); // noise simulation
scf(0); clf();
subplot(131); plot_const(x); xtitle("Without imbalance");
;
// I/Q imbalance simulation
x = iqi_simu(x,%pi/10,1.3);
subplot(132); plot_const(x); xtitle("With imbalance");
;
// I/Q imbalance detection
[g,phi] = iqi_blind_est(x);
;
// I/Q imbalance correction
x = iqi_cor(x,g,phi);
subplot(133); plot_const(x); xtitle("Imbalance detected and corrected");