Goal is to achieve 8 samples per symbol for BPSK signal. After analyzing the plot of below code, IMHO its not 8 sps, I am right? If yes what I do wrong?

% Generate BPSK signal
data = randi([0 1],20,1);
bpskModulator = comm.BPSKModulator;
modData = bpskModulator(data);
% Filter parameters
rolloff = 0.35;
span = 6;
sps = 8;
rrcFilter = rcosdesign(rolloff,span,sps);
txSig = upfirdn(modData,rrcFilter,sps);
plot(real(txSig), '-*')
title("Upfirdn interpolated")

enter image description here

  • 1
    $\begingroup$ Marcin- this does look like 8 samples per symbol to me. Can you add the eye diagram of this and show your symbol boundaries and what you count for samples per symbol? $\endgroup$ Jun 9 at 15:00
  • $\begingroup$ Dan- after plotting an eye diagram, 8 samples per symbol gives good result so it has to be correct. My understanding was wrong. You made me realize that sampling points do not always occur at peak points in time domain waveform. Here is the eye diagram. I added some noise (30 dB SNR) postimg.cc/LgHyj42X $\endgroup$ Jun 10 at 8:25

Your signal is 8 samples per symbol. After reviewing your eye diagram it also appears that the signal is only root-raised cosine filtered. It should go through one more root raised cosine filter before final decision (the matched filter in the receiver) for optimum performance in the presence of noise.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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