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 ?

  • $\begingroup$ Your sampling frequency Fs=12MHz is too small to simulate the carrier. You need at least 2*(2.4GHz+B). $\endgroup$
    – Harris
    Commented Sep 1, 2015 at 13:19
  • $\begingroup$ For the purpose of pulse shaping, I have already upsampled the signal. Do you mean that I should upsample my signal again @Harris? $\endgroup$
    – smyslov
    Commented Sep 1, 2015 at 13:37
  • $\begingroup$ 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)). $\endgroup$
    – Harris
    Commented Sep 1, 2015 at 16:58
  • $\begingroup$ I meant Ts<1/(2*(2.4e9+12e6)) $\endgroup$
    – Harris
    Commented Sep 1, 2015 at 17:05


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Browse other questions tagged or ask your own question.