Average bit error and symbol energy How do you draw decision boundaries given this type of 16-qam constellation diagram, I know that there should be no vacant decision boundary but I can't seem to get it.Also, assuming that the correct decision boundary is drawn, how do you derive its total probability of error, if we let the SNR ratios of all symbols are equal?
The optimal decision regions are the Voronoi Regions. I dont know, if this is what you are looking after.

import numpy as np

points = np.array([(1,1), (1,-1), (-1,1), (-1,-1), (3,3), (3,0), (3,-3), (0,-3), (-3,-3), (-3,0), (-3,3), (0,3), (5,0), (0,5), (-5,0), (0,-5)])
from scipy.spatial import Voronoi, voronoi_plot_2d
vor = Voronoi(points)
voronoi_plot_2d(vor)
plt.axis('equal'); plt.xlim((-7,7)); plt.ylim((-7,7));




I actually, consider analytically calculating the error probability of this constellation a very hard task, since the regions are not very regular.