# Problem converting from Eb/N0 to SNR

I'm doubtful about which of these is correct:

1. $$\frac{E_b}{N_0}=\frac{SNR}{k}\frac{T_{symbol}}{2T_{sampling}}=\frac{SNR}{k}\frac{L}{2}$$
2. $$\frac{E_b}{N_0}=\frac{SNR}{k}\frac{T_{symbol}}{T_{sampling}}=\frac{SNR}{k}L$$

$$L$$ is the interpolation factor and $$k=log_2(M)$$ (number of bits per symbol).

There's just a difference of a $$1/2$$ factor. I know where this relation comes from, and that $$1/2$$ depends on noise power being $$\sigma_N^2=N_0/2$$ (baseband) or $$\sigma_N^2=N_0$$ (passband). Since I want to generate $$\sigma_N^2$$ given a certain $$E_b/N_o$$, I'm not sure which one to pick.

If I have $$y(t)=x(t)+n(t)$$, with $$n(t)$$ being AWGN and $$x(t)=s(t)\cos(\omega_c t)$$, so $$x(t)$$ is passband and $$s(t)$$ is baseband, I'm not sure if I should pick the second one because I'm adding it to $$x(t)$$ or the first one.

• Is this for simulation purposes or just mathematics? Oct 25, 2019 at 18:16
• Mainly simulation, but I'm also interested in the maths behind it. Oct 26, 2019 at 11:08
• See the first paragraph of this answer. Mar 19, 2021 at 20:45

I'm not comfortable with either of your two equations, in part because you don't define any of the three variables involved, but also because I think there's an easier way to understand $$E_b/N_0$$ and simulate it.

I think the most important thing to know about $$E_b/N_0$$ is that it is measured at the matched filter's output. The first consequence of this is that the measurement is done at baseband.

Let's assume that your signal $$s(t)$$ is linearly modulated, so $$s(t) = \sum_k a_k p(t-kT_p),$$ where $$R_p = 1/T_p$$ is the baud rate and the information is transmitted by the symbols $$a_k$$ which are elements of an $$M$$-PAM constellation with average energy $$E_p$$. Furthermore, the Nyquist pulse $$p(t)$$ has unit energy.

Let's assume the system has zero noise. In this case, the output of the matched filter, sampled at rate $$R_p$$, is equal to $$a_k$$ and its average energy is $$E_p$$. Then, the average energy per bit at the matched filter's output is $$E_b = \frac{E_p}{\log_2(M)}.$$

Now let us consider the noise. Assume that the input to the matched filter is $$n(t)$$, which has power spectral density $$N_0/2$$. Then the filter's output sampled at rate $$R_p$$ is a Gaussian random variable with variance $$\sigma_n^2 = N_0/2$$.

The signal-to-noise ratio is defined as the ratio of the average energy per bit to the average energy of a noise sample: $$\text{SNR} = \frac{E_b}{\sigma_n^2} = \frac{2E_b}{N_0}.$$ You often see the SNR defined instead as $$E_b/N_0$$; the reason is that, in a quadrature system, the total noise energy in the receiver is $$2\sigma_n^2 = N_0$$. As long as the definition is made clear, one could use either one.

Let's see how to simulate this. Say you want to simulate 4-PAM at $$E_b/N_0 = 10$$. First, generate 4-PAM symbols with $$E_b=1$$, or $$E_p = 2$$. Then, generate noise with variance $$\sigma^2 = N_0/2 = E_b/(2 \times 10) = 1/20$$. Assuming Matlab:

% generate 100 random a_k
a = 2*(randi([0,3],1,100)-1.5);
% scale them so that Ep=2, Eb=1
a = a*sqrt(2/5);
% Noise has N0 = 1/10, so N0/2 = sigma2 = 1/20
n = sqrt(1/20)*randn(1,100);
% matched filter's output:
y = a + n;


Now y has $$E_b/N_0 = 10$$.

Note that extending this to quadrature modulation is trivial: just think of the quadrature system as two parallel PAM systems, each with noise variance $$N_0/2$$.

I realize that I have only indirectly answered your question, but I hope this is still useful.

• Thanks for your post, it's quite interesting! Actually, my equations contained an error (forgot about adding $k$) but they're now fixed. What I'm trying to do is taking into account the process of interpolation. I got equation no. 2 from here SNR = EbNo + 10*log10(k) - 10*log10(nSamp);. I wrote to a paper something very similar to what you explained but I was unsure as to whether I should pick $\sigma_N^2=N_0/2$ or $\sigma_N^2=N_o$ and try to come up with a general equation for any modulation. Oct 26, 2019 at 11:08
• @researcher9 I don't understand that Matlab example. I don't like their communications functions and so I always use my own, along the lines of my sample code above. You may also want to check out this textbook: eceserv0.ece.wisc.edu/~sethares/telebreak.html (the pdf is towards the end of the page)
– MBaz
Oct 28, 2019 at 0:40
• So you think what they explain here is wrong? I'm not using their comm functions, but it's the only place where I've seen they take interpolation into account to generate noise power. Also, I've been checking that book frequently but haven't found anything about noise aside from the section "improving SNR" Oct 28, 2019 at 12:38
• @researcher9 I don't think it's wrong, it's just that they think about noise in a way that makes little sense to me. I believe the right way to simulate a digital comm system is to add noise to the matched filter's output with the variance required to obtain the desired Eb/N0. Trying to add noise to the "analog" signal before the matched filter means going to a lot of trouble in order to obtain an identical result.
– MBaz
Oct 28, 2019 at 14:04
• @researcher9 Take a look at the section on matched filtering.
– MBaz
Oct 28, 2019 at 14:04