Many sources describe the BER vs Eb/N0 as

$$ \mathrm{BER} = 0.5 \operatorname{erfc}\left(\sqrt{\frac{E_b}{N_0}}\right) $$

I can verify this relation with (modified from [email protected]):

s = sign(randn(N,10000));
for ii = 1:length(Eb_N0_dB)
  Eb_E0 = 10^(Eb_N0_dB(ii)/10);
  y = s + randn(size(s)) * sqrt(2/Eb_B0);
  ipHat = real(y)>0;
  nErr(ii) = size(find([ip- ipHat]),2);
  SNR = [ SNR 10*log10(0.5/var(noise)) ]; % see description
semilogy(Eb_N0_dB, nErr/length(s)); hold all;
semilogy(Eb_N0_dB, 0.5*erfc(sqrt(10.^(Eb_N0_dB/10))));

However, I am interested in the actual SNR vs. BER, i.e. my signals have a certain level (e.g. 1, -1) and I add some noise described by $\sigma^2$. Many sources describe this relationship as (e.g. http://drum.lib.umd.edu/bitstream/handle/1903/3400/umi-umd-3213.pdf?sequence=1&isAllowed=y):

$$ \mathrm{BER} = 0.5 \operatorname{erfc}\left( \frac{\sqrt{\mathrm{SNR}}}{2\sqrt{2}} \right) $$

However, when I plot

semilogy(SNR, nErr/length(s));
semilogy(SNR, 0.5*erfc(sqrt(10.^(SNR/10)))/(2*sqrt(2)));

the results do not match. I tried all possible SNR definitions I could imagine.

  • $\begingroup$ You have $0.2$ as the coefficient of erfc in your displayed equation, but $0.5$ in your MATLAB code. $\endgroup$ Jul 6, 2017 at 2:45
  • $\begingroup$ You left the 2*sqrt(2) outside the parenth for erfc in the second version of the formula. $\endgroup$
    – Samuel
    Nov 29, 2018 at 12:40

1 Answer 1


I think the reason is a different definition of erfc:


$$ \operatorname{erfc}(x) = \frac{2}{\sqrt{\pi}} \int_x^\infty e^{-z^2} \, \operatorname{d}z $$

whereas the formula in the posting uses

$$ \operatorname{erfc}(x) = \frac{1}{\sqrt{2\pi}} \int_x^\infty e^{-z^2} \, \operatorname{d}z $$

That is, the result matches if the definition is changed to

$$ \mathrm{BER} = 0.5 \operatorname{erfc}\left( \frac{\sqrt{\mathrm{SNR}}}{\sqrt{2}} \right) $$

Another thing to be aware is that the definition of SNR as it is used in this formula is not $\operatorname{var}\{x\}/\sigma^2$ but $d_{\min}^2/\sigma^2$ where $d_{\min}^2$ is the shortest distance between values.


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.