I would like to add AWGN noise to my BPSK and QPSK signal. So assume the BPSK signal is x1 and QPSK signal is x2. The EbN0 is $10\textrm{ dB}$. Therefore I will first convert the EbN0 from $\textrm{dB}$ to linear scale. Assume Eb=1 and Es=1.

  • I would like to know can anyone explain to me, should the noise power be N0 or N0/2?

I am really confused since according to this link N0 is used to add noise to one dimensional noise and N0/2 is used to add noise to two dimensional signal. Therefore if Eb=1 and EbN0=10 $\textrm{dB}$

  • Eb=1;

    or should it be


The same thing for QPSK, is it

  • Es=1;



I was thinking that according to convention the N0 is sigma^2/2 however the link above is saying different things.

  • Can anyone explain the correct way of calibrating the noise?
  • And explain if the above reference is incorrect or not?

The kind of AWGN channel you're simulating is sometimes called a "discrete time" channel. That means that you're going to simulate the bit error rate at the output of a decision device, the input to which is produced by a correlator. This is more easily explained by looking into the transmission and reception of a single bit. I'll assume BPSK.

Let's say that you transmit the physical signal $a_0p(t)$, where $a_0$ is either $A$ or $-A$, and $p(t)$ is a pulse of unit energy. To make things easier we'll assume $p(t)$ is symmetrical, that is, $p(t)=p(-t)$ (this is true for all practical systems I know). Note that, in this scenario, the bit energy is $E_b=A^2$.

Assuming that there is no noise, the received signal is $r(t)=a_0p(t)$. The receiver correlates $r(t)$ with the transmitted pulse $p(t)$. The output of the correlator is $$\int_{-\infty}^\infty a_0 p(t)p(t)\,dt=a_0,$$ where I've used the fact that the pulse has unit energy.

Now assume that the input to the correlator is pure Gaussian white noise $n(t)$ with PSD $N_0/2$ and zero mean. Then, the correlator's output is $$n=\int_{-\infty}^\infty n(t)p(t).$$ By the Wiener-Khinchine theorem, $n$ is a zero-mean Gaussian random variable with variance $\sigma_n^2=N_0/2$.

In the case of having signal plus noise at the receiver's input, the output will be $$r=a_0+n$$ because the correlator is linear. Using the value of $r$, a decision can be made on whether $A$ or $-A$ was transmitted.

We define the SNR at the correlator's output as the bit energy divided by the noise variance: $$\text{SNR}=\frac{a_0^2}{\sigma_n^2}=\frac{2E_b}{N_0}=\frac{2A^2}{N_0}.$$


  • When you plot the BER, you'll likely use $E_b/N_0$ in the horizontal axis. The reason is that in quadrature modulations, the total noise power is $N_0$, not $N_0/2$.
  • Practical systems use a matched filter instead of a correlator. The results are exactly the same.
  • In a practical system there will be delay, you transmit multiple pulses instead of only one, etc. Those details are not essential to understanding how the SNR is measured in your simulation.
  • $\begingroup$ Therefore whether it is qpsk or bpsk it is still sqrt(N0/2) that should be multiplied by randn since link above consider N0 for one dimensional noise and N0/2 for two dimensional noise. I am just wondering what would be the difference in calibration of noise power which means the coefficient of randn for different modulation $\endgroup$
    – justin
    Aug 23 '16 at 22:57
  • $\begingroup$ The noise power is always $N_0/2$ per dimension. So, in the case of QPSK, you add noise of that power to the in-phase (real) component and noise of the same power to the quadrature (imaginary) component, for a total noise power (real+imaginary) of $N_0$. $\endgroup$
    – MBaz
    Aug 23 '16 at 23:40

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.