I try to implement a qpsk modulator in Octave. The chain is the state of the art I guess:

$$\text{Symbol mapper} \rightarrow \text{Upsample 4} \rightarrow \text{Root raised cosine filter} $$

My main question is about the upsampling. I try to do it two ways:

  • zero hold (I think it is called like that - adding factor-1 last values)
  • zero padding (adding factor-1 zeros, here the spectrum is duplicated and alias filtered by RRC)

I have not tried yet to do a BER measure with AWGN, but eye-diagram and spectrum looks different depending how I upsample. I have the feeling that the spectrum and eye diagram is more correct with zero hold but get a residual bias at the sampling point.

Am I wrong?


1 Answer 1


You have two methods. The second one is right, because it's actually upsampling: inserting zeros, and then suppressing images (what you call aliases here is actualyl called images) through the desired filter.

The first one is actually the same, but instead of the RRC, you use a rectangular filter: When you think about it, holding the last value is like inserting zeros, and then convolving with a 1-amplitude rectangle that is as long as the number of zeros you've inserted.


Your Answer

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