sdr.PSK.bit_error_rate(ebn0: ArrayLike | None = None) ndarray

Computes the bit error rate (BER) at the provided \(E_b/N_0\) values.

Parameters:
ebn0: ArrayLike | None = None

Bit energy \(E_b\) to noise PSD \(N_0\) ratio in dB.

Returns:

The bit error rate \(P_b\).

References

  • John Proakis, Digital Communications, Chapter 4: Optimum Receivers for AWGN Channels.

Examples

See the Phase-shift keying example.

Plot theoretical BER curves for BPSK, QPSK, and 8-PSK in an AWGN channel.

In [1]: bpsk = sdr.PSK(2); \
   ...: qpsk = sdr.PSK(4); \
   ...: psk8 = sdr.PSK(8); \
   ...: ebn0 = np.linspace(0, 10, 1000)
   ...: 

In [2]: plt.figure(figsize=(8, 4)); \
   ...: sdr.plot.ber(ebn0, bpsk.bit_error_rate(ebn0), label="BPSK"); \
   ...: sdr.plot.ber(ebn0, qpsk.bit_error_rate(ebn0), label="QPSK"); \
   ...: sdr.plot.ber(ebn0, psk8.bit_error_rate(ebn0), label="8-PSK"); \
   ...: plt.title("BER curves for BPSK, QPSK, and 8-PSK in an AWGN channel"); \
   ...: plt.tight_layout();
   ...: 
../../_images/sdr_psk_bit_error_rate_1.png