The OQPSK modulator in Matlab produces an output sequence as follows: [0.707 0.707+0.707i -0.707-0.707i ...and so on ] This is the sequence and I am trying to view the frequency spectrum of this sequence. With the sampling rate being 2 MHz, I expect to see a peak centered at 0 with a bandwidth of 2 MHz. When I upsample the above sequence and multiply this sequence with a carrier of say 2.4 GHz, I should have 2 peaks centered at -2.4 GHz and 2.4 GHz and zeros at other frequencies. But somehow, the spectrum is distributed between -2.4 and 2.4 GHz. Am I making a mistake in plotting the frequency spectrum or is there something wrong in what I understood?


1 Answer 1


You're missing a step: pulse shaping. The sequence [.7+.7i, ...] is a sequence of pulse amplitudes. As such, it should not be considered to be signal; in consequence, it does not have a spectrum.

Say your sequence of amplitudes is $A=a_0, a_1, a_2,\ldots$. Now, you need to specify your symbol rate (how many pulses per second you'll transmit). Call this rate $R_p$ and let $T_p=1/R_p$ be the pulse interval. Finally, you need to specify a pulse $p(t)$ that has this property: $$\int_{-\infty}^\infty p(t-kT_p)p(t-lT_p)dt=\begin{cases}1,\textrm{ if $k=l$}\\0,\textrm{ if $k\neq l$}\end{cases}$$for $k$ and $l$ integers. Now you're ready to create your actual signal: $$s(t)=\sum_i a_ip(t-iT_p).$$ This signal:

  • Has a spectrum; specifically, its bandwidth is the same as the bandwidth of the pulse $p(t)$.
  • Can be up-converted to a carrier frequency.
  • Can be converted to an analog signal and physically transmitted over a medium.

For completeness, I'll explain how to recover the amplitudes $a_i$ from $s(t)$ (ignoring noise for simplicity). The receiver can estimate $a_k$ by doing this operation: $$\hat{a_k}=\int_{-\infty}^\infty s(t)p(t-kTp).$$ You can easily verifty that this is the case, using the properties of $p(t)$. Such an operation can be implemented with a matched filter.

  • $\begingroup$ I have a few queries now about the pulse shaping: Based on what I understood, after OQPSK Modultaion, I should apply a pulse shaping filter on the sequence before upsampling it. While pulse shaping, I should specify the no. of samples per symbol, filter order and roll off factor. Should the no. of samples be (sampling rate/symbol rate)? I assume that it is safe to use a roll off factor of 0.5 and how should I decide the filter order? $\endgroup$
    – smyslov
    Commented May 21, 2015 at 8:45

Your Answer

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

Not the answer you're looking for? Browse other questions tagged or ask your own question.