BER Analysis

Analyses the BER to each SNR value.

BER_SNR_analysis.SNR_BER_analysis()

Analyze the BER for each SNR value.

import matplotlib.pyplot as plt
import numpy as np
import sys
import os

path = os.path.abspath(os.path.join(os.path.dirname(__file__), '..'))
sys.path.append(path)
import example as qam

def SNR_BER_analysis():
   """Analyze the BER for each SNR value."""
   plt.close('all')

   n_tests_per_snr = 50
   max_snr = 20

   SNR_values = np.arange(1, max_snr + 1)
   BER_mean_acc = []

   for SNR in SNR_values:
      print("SNR:", SNR)
      BER = np.zeros(n_tests_per_snr)

      for j in range(len(BER)):
            BER[j] = qam.QAMsys(SNR, 0)

      BER_mean = np.mean(BER)
      BER_mean_acc.append(BER_mean)

   plt.figure(1)
   plt.scatter(SNR_values, BER_mean_acc)
   plt.xscale('linear')
   plt.yscale('log')
   plt.xlabel('SNR (dB)')
   plt.ylabel('BER')
   plt.grid()

   plt.show()
../_images/SNR.png