Short answer
10*log(bw/fs)
to take into account the oversampling operation because the awgn()
function specifies the signal-to-noise ratio per sample, in dB.
Longer answer
The discrete time AWGN model is
$$Y = X+N$$
where X is data from continuous time $X(t)$, N is noise sequence from AWGN process $N(t)$ and Y is receive symbols.
If $X(t)$ is characterized by its baseband equivalent limited between $[-W/2, +W/2] \textrm{ (Hz)}$, then we can identify $X(t)$ by observing $Y$ at a rate $W$ symbols per second. See chapter 2, sampling theorem and Theorem of irrelevance.
Call $P$ the average power (joules per second). The sample power $E_s= P/W$ and the noise symbol power is $N_0$. The signal noise ratio per symbol is defined $\mathrm{SNR} = \frac{P}{BW_0} = E_s/N_0$.
If the complex baseband signal is oversampled $\alpha = f_s/W$, the noise sample power is still $N_0$ while the data sample power is reduced $\alpha$ times, thus $E_s/N_0 = \mathrm{SNR} \times W/f_s$.
In dB, $E_s/N_0 = \mathrm{SNR} + 10\log_{10}{(W/f_s)}$.
The awgn()
function add AWG noise by the previously defined $E_s/N_0$.