# GPS signal tracking

I have a complex input signal of 300 ms at baseband. I have already performed acquisition on this signal and acquired four GPS satellites and have the code phase and Doppler frequency of each of them.

Now for tracking I am following Kai Borre's MATLAB code for a GPS software receiver. But, this code is written for a real input signal at IF (intermediate frequency).

Now I need my signal (which is currently on baseband (zero-IF)), to be at 1.5 MHz IF (intermediate frequency).

Is it practically possible to change the complex signal at baseband to a real signal at IF (1.5 MHz) without losing the information on imaginary part? My sampling rate is 5 MHz.

• Mix it down numerically to complex baseband! That's but a multiplication with $e^{-j2\pi f_{IF} t}$; the values of $f_{IF}$ and $t$ both depending on both the IF frequency and sample rate. Jul 2, 2018 at 10:23
• Thanks, I already have the signal at complex baseband. but I have a code for a signal at IF frequency. Now I have two choices: 1: either I bring my baseband signal to IF which I think is practically not possible. 2: I make changes in the code so that it works for baseband signal. Which RF frontend can I use to receive signals at IF frequency? I tried RTLSDR and USRP frontends and both gives output at baseband. Jul 2, 2018 at 11:46
• well, then mix up by multiplication with $e^{j2\pi f_{IF}t}$ (you might need to interpolate to a sufficient sampling rate first), and then throw away imaginary part. Jul 2, 2018 at 11:47
• @Priyanka.P can you edit your question to tell us exactly what you're doing when mixing, and how that fails? Jul 2, 2018 at 18:06
• Hello Marcus, I have edited my question. My baseband sampling rate is 5 MHz and I need 1.5 MHz IF. Jul 3, 2018 at 9:20

As far as converting from complex baseband to real IF, it's the opposite as what receivers normally do. You can certainly modulate a signal from complex baseband to real IF by multiplying the real part by $cos(2\pi ft)$ and the imaginary part by $-sin(2\pi ft)$ and then add them together, like normal transmitters do.