MATLAB: Adding Noise with Regard to Signal to Noise Ratio (SNR) or EbNo? A signal x takes values from an alphabet set.
My objective is to estimate the channel parameters hest using adaptive methods and then plot the graph of mean square error (MSE) between the estimated coefficients and the actual vs range of SNR values considered. These are the following questions :

Plot of BER vs. signal to noise ratio -- When I want to plot the BER, and the signal takes values other than BPSK say QAM then also I will be estimating the channel coefficients for each snr by adding snr using awgn() using the same code. Then should the X axis be labelled as EsNo or EbNo? In a similar question asked here Adding AWGN noise with a correct noise power to the signal

the answer is to use EbNo. In a Matlab implementation https://www.mathworks.com/matlabcentral/fileexchange/39011-ber-comparison-of-m-ary-qam?focused=5251697&amp;tab=function, using the EbNo range the noise signal of a particular snr is generated. But, the BER plot shown has EbNo on X axis. This is confusing since the awgn() function is using snr and not EbNo.

Plot of error vs snr -- For each noise added, I will calculate the error between the estimates and the actual coefficient. The X axis would be the range of snr and Y Axis the error values. Would the X Axis be snr or EbNo or EsNo irrespective of the symbol set?
In my case the data takes values in symbols and not bits. What should I use? Please help in clearing these concepts. Thank you.
These stuffs $E_s/N_0, E_b/N_0 \textrm{ and SNR}$ are convertible.

\begin{align}
E_s/N_0 &amp;= E_b/N_0 + 10\log_{10}(k) \\
E_s/N_0 &amp;= 10\log_{10}(T_{sym}/T_{samp}) + \mathrm{SNR}
\end{align}

where $k$ is the number of information bits per symbol, $T_{sym}$ is the signal's symbol period and $T_{samp}$ is the signal's sampling period. More details can be found at AWGN channel MATLAB.

And by description of awgn() function:


  y = awgn(x,snr) adds white Gaussian noise to the vector signal x. The
  scalar snr specifies the signal-to-noise ratio per sample, in dB. If x
  is complex, awgn adds complex noise.


In your case, no oversampling thus awgn() uses its snr parameter to generate $E_s/N_0 =$ snr.

You are free to plot your BER curves over $E_s/N_0$ or $E_b/N_0$ because they are equivalent. You just need to convert them back and forth via the modulation order $k$.

However $E_b/N_0$ is usually prefered because (EbN0 wikipedia)


  $E_b/N_0$ directly indicates the power efficiency of the system without
  regard to modulation type, error correction coding or signal bandwidth
  (including any use of spread spectrum). This also avoids any confusion
  as to which of several definitions of "bandwidth" to apply to the
  signal.