sdr.esn0_to_snr(esn0: ArrayLike, sps: int = 1) NDArray[float_]

Converts from \(E_s/N_0\) to \(S/N\).

\[ \frac{S}{N} = \frac{E_s}{N_0} \frac{f_{sym}}{f_s} \]

Parameters:
esn0: ArrayLike

Symbol energy \(E_s\) to noise PSD \(N_0\) ratio in dB.

sps: int = 1

Samples per symbol \(f_s / f_{sym}\).

Returns:

The signal-to-noise ratio \(S/N\) in dB.

Examples

Convert from \(E_s/N_0 = 5\) dB to \(S/N\) with 1 sample per symbol. In discrete-time systems, when there is 1 sample per symbol, \(S/N\) is equivalent to \(E_s/N_0\).

In [1]: sdr.esn0_to_snr(5, sps=1)
Out[1]: 5.0

Convert from \(E_s/N_0 = 10\) dB to \(S/N\) with 4 samples per symbol.

In [2]: sdr.esn0_to_snr(10, sps=4)
Out[2]: 3.979400086720376