I'm trying to understand the $\\E_b/N_o$ concept and how different coding rates affect it. I've read a bunch of topics, specifically this and this, but I'm still missing something to have a clear picture.

I think I got the idea of $SNR$, as $SNR$ is a ratio of powers that actually exist in the channel, I mean real Watts.

$\\E_s$ from $\\E_s/N_o$ also seems to be clear where comes from, i.e. it is the energy of a symbol in the channel in Joules.

However when it comes to $\\E_b/N_o$ I'm completely lost. Theory says that $\\E_b$ is the energy per information bit, i.e. the bit before an encoder.

  1. What energy is meant here? The bit is still in the digital domain, right?

Further, I'm trying to compare performance of a simple BPSK transceiver ($BER$ vs $\\E_b/N_o$) under different configurations: $uncoded$, coded with rates $1/2, 1/3, 2/3$.

The channel bit rate (=transceiver bandwidth) is fixed for all configurations, meaning that the information bit rate $(R_b)$ is affected. When it comes to simulation in Simulink of uncoded transceiver I set the following parameters:

Data generator Sample time: $Ts=1$

AWGN channel:

enter image description here

In the next iteration I added an encoder with the rate $1/2$.

  1. In order to have correct comparison, shall I multiply $Symbol$ $period$ in AWGN by the code rate=$1/2$?

  2. Shall I leave $Ts=1$ at the data generator? If yes, then I'm even more confused, why different values of $Ts$ provide correct result.


  • $\begingroup$ You may also want to search for related questions/answers on this website; this question comes up from time to time. $\endgroup$
    – MBaz
    May 10, 2022 at 21:52

1 Answer 1


There are a couple of different approaches to explain this. Let's try this one:

You have a receiver with received power $P_r$ watts, so that during a time interval $T$, it receives $TP_r$ joules of energy. Assume that bits (information and overhead) are received at rate $R_c$, so that during that same time interval, $TR_c$ bits are received. Then, each bit in the channel carries $E_c$ bits of energy, where $$E_c = \frac{TP_r}{TR_c} = \frac{P_r}{R_c}.$$

For example, if the received energy is $P_r=1\,\text{W}$ and $R_c=1\,\text{Mb/s}$, then each received bit has $1\,\mu \text{J}$ of energy.

In practice, not all received bits convey actual information: we have error control bits, framing bits, redundant line codes, packet headers, etc. Let's say that information is received at rate $R \leq R_c$, so that $R/R_c$ is the fraction of the total received bits that are actual information.

Continuing the example above, let's say that you use a channel code with rate $1/2$, which means that half the bits are information bits; then $R=R_c/2=500\,\text{kb/s}$ and $R/R_c=0.5$.

The information bits account for same fraction $R/R_c$ the of the total energy, so we have that $$E_b = E_c \frac{R}{R_c}.$$

Continuing the example: $E_c$ is one microjoule, the information rate is one half; then $$E_b = \frac{1\,\mu\text{J}}{2} = 500\,\text{nJ}.$$

Now let's say that the channel rate and received power are constant, and you switch to a code with rate $1/3$. Then, $E_b = 1/3\,\mu\text{J}$: only one third of the energy is used for information, and two thirds are used for parity bits.

  • $\begingroup$ thank you for the reply. I wonder where I could find the "different approaches" you mentioned. I checked Proakis, Sklar, Rice - frequently cited authors by Mathworks, but still none of them describes the concept in a way you did. $\endgroup$
    – Vaims
    May 10, 2022 at 22:54
  • $\begingroup$ Following your example when switching from 1/2 to 1/3, is it correct to use this formula as a base to check SNR change? $SNR=E_bN_{o}+10log_{10}(R_b/B)$ [dB]; when switch to 1/3: $E_bN_o$ decreases from 1/2 to 1/3 = 3/2 (linear), -1.76 [dB]; $SNR_2=E_bN_{o2}+10log_{10}(R_{b2}/B)$ where $E_bN_{o2} = E_bN_{o1} - 1.76$ [dB]; $R_b$ also decreases by 3/2: $10log_{10}(R_{b2}/B) = 10log_{10}(2R_{b1}/3B)$ $Diff[dB] = SNR_2 - SNR_1$ $Diff[dB]= (E_bN_{01}-1.76)-E_bN_{01} +[10log_{10}(2R_{b1}/3B) - 10log_{10}(R_{b1}/B)] = -1.76 + (-1.76) = -3.52 dB$ $\endgroup$
    – Vaims
    May 10, 2022 at 23:19
  • $\begingroup$ @Vaims I dislike those formulas intensely. What is the bandwidth doing there? There are many assumptions behind those formulas, which must be made explicit before you can use them. My recommendation is to take a step back and reconsider what you need. You said you wanted to understand the concept of $E_b/N_0$, and how code rate affects it -- the techniques I explained suffice for that. $\endgroup$
    – MBaz
    May 11, 2022 at 0:16
  • $\begingroup$ Regarding books, I recommend Lapidoth, Blahut, Rimoldi, Lathi and Haykin besides those you mentioned. $\endgroup$
    – MBaz
    May 11, 2022 at 0:17
  • 1
    $\begingroup$ Thanks for the books, I'll check them right away. As for the 2nd part of the question, I'll create another post probably $\endgroup$
    – Vaims
    May 11, 2022 at 9:05

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.