## Carrier frequency correction using real IQ Started by 2 years ago6 replieslatest reply 2 years ago203 views

How do i do carrier frequency correction using real IQ?

If I have complex IQ z i can just do:

zn -> zn * exp(i*(phi*n + theta))

where phi is some frequency offset and theta is some phase offset.

But what if z is real and the IQ is interleaved?

[ - ] well - if by 'interleaved' you mean z = [real(z0) imag(z0) real(z1) imag(z1) ...] then you need to deinterleave it and do the same:

zout(n) -> (z(2*n) + i*z(2*n+1)) * exp(i*(phi*n + theta))

[ - ] sorry it's not interleaved, it's just real. I realize now that was wrong.

[ - ] Can you do this without doing a hilbert transform first?

[ - ] From memory and without confirming the math I am not sure. Things are easier if the frequency offset is a lot bigger than your bandwidth. Then after modulation with the complex sinusoid you get the negative frequencies in the imaginary part of the result and the positive frequencies in the real part, but I am not quite sure what happens if the frequency offset is smaller than the bandwidth...

[ - ]  