m_ary_ind=64;
SNR_ind =-5:2:30; % Amplio el rango de SNR respecto al que dice el enunciado para simular mas valores
nSymbols=100000;
% Hago dos bucles anidados, uno que recorra el vector para los moduladores
% y otro que recorra el vector del SNR
m_ary=m_ary_ind(j);
kfactor=log2(m_ary); % factor K de acuerdo con la formula
EbNo_ind=SNR_ind-(10*log10(kfactor));% OJO! si el SNR esta en dB, he de transformar el valor de k a dBs (peras con peras, manzanas con manzanas... )
for i = 1:length(SNR_ind) % Bucle en el que simulo varios valores de SNR
EbNo=EbNo_ind(i);
xBit=round(rand(nSymbols*log2(m_ary),1));
hmod = modem.qammod('M',m_ary,'InputType','bit');
xmod = modulate(hmod,xBit);
ymod=awgn(xmod,EbNo);
% ymod=awgn(xmod,SNR);
hdemod=modem.qamdemod(hmod);
y=demodulate(hdemod,ymod);
BER(j,i)=sum(xor(y,xBit))/nSymbols; % en el indice j tengo el BER para modulacion y en el indice i tengo el BER para cada valor de SNR
end
figure
semilogy(SNR_ind',(BER)','-s') %Hago una representacion logaritmica del eje de abscisas para verlo mejor
xlabel('SNR [dB]')
ylabel('BER')
title('Performance para varios moduladores')
legend('64-QAM') % Anyado leyenda
grid on