Error Probability
Error Probability
snrdB_min= -3;
snrdB_max= 8;
snrdB=snrdB_min:1:snrdB_max;
Nsymbols=input('Enter no of Symbols >');
snr=10.^(snrdB/10);
h=waitbar(0,'SNR Iteration ');
len_snr=length(snrdB);
for j=1:len_snr
waitbar(j/len_snr)
sigma=sqrt(1/(2*snr(j)));
error_count=0;
for k=1:Nsymbols
d=round(rand(1));
X_d=2*d-1;
n_d=sigma*rand(1);
y_d=X_d+n_d;
if y_d>0
d_est=1;
else
d_est=0;
end
if(d_est~=d)
error_count=error_count+1;
end
end
errors(j)=error_count;
end
close(h)
ber_sim=errors/Nsymbols;
ber_BPSK=0.5.*qfunc(sqrt(snr));
ber_QPSK=qfunc(sqrt(snr));
ber_QAM=2.*qfunc(sqrt(0.4.*snr));
semilogy(snrdB,ber_BPSK,'-
',snrdB,ber_QAM,'o',snrdB,ber_QPSK,'.',snrdB,ber_sim,'+')
axis([snrdB_min snrdB_max 0.0001 1])
legend('ber_BPSK','ber_QAM','ber_QPSK','ber_sim')
xlabel('SNR(dB)')
ylabel('Probability of error ')