Passband modulation at 2.4GHz

As a project requirement, I am supposed to modulate a complex baseband signal to a carrier frequency of 2.4 GHz. These are the steps I followed for the baseband modulation and demodulation:

Generate Data -> OQPSK Modulation -> Up Sample -> Pulse shaping -> AWGN Channel -> Matched Filter -> Down Sample -> OQPSK Demodulation

The sampling frequency at baseband is 12 MHz. Now if I were to modulate this baseband signal to a carrier at 2.4 GHz, I believe that these are the steps to be followed:

%Generate Carrier
t = (0 : 1/Fs : (length(baseband_Signal)-1)*1/Fs)
carrier = sqrt(2)*exp(1i*2*pi*Fc*t);

where sampling frequency $Fs=12MHz$ and carrier frequency $Fc=2.4GHz$

% Frequency upconvert to passband.
xUp = real(baseband_Signal.*carrier);

% Downconvert to baseband
yACI = rx_sgl.*conj(carrier);

When I perform upconversion, I expect to have 2 peaks centered at +2.4GHz and -2.4 GHz when I plot the frequency spectrum. However I see that $xUp$ is centered at 0.

I am not sure about what I am missing. Should the complex baseband signal again be upsampled ?

• Your sampling frequency Fs=12MHz is too small to simulate the carrier. You need at least 2*(2.4GHz+B). – Harris Sep 1 '15 at 13:19
• For the purpose of pulse shaping, I have already upsampled the signal. Do you mean that I should upsample my signal again @Harris? – smyslov Sep 1 '15 at 13:37
• No you don't need to upsample again but your carrier should be incremented with finer time increments, e.g Fs>=(2*(2.4e9+12e6)). – Harris Sep 1 '15 at 16:58
• I meant Ts<1/(2*(2.4e9+12e6)) – Harris Sep 1 '15 at 17:05