sdr.snr_to_esn0(snr: ArrayLike, sps: int = 1) NDArray[float_]

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

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

Parameters:
snr: ArrayLike

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

sps: int = 1

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

Returns:

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

Examples

Convert from \(S/N = 5\) dB to \(E_s/N_0\) 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.snr_to_esn0(5, sps=1)
Out[1]: 5.0

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

In [2]: sdr.snr_to_esn0(10, sps=4)
Out[2]: 16.020599913279625