www.gusucode.com > matlab通信工程仿真源码(张德丰等编著)程序书籍 > matlab_code/matlab通信工程仿真源码(张德丰等编著)/第8章/Qxiufun.m
function y=Qxiufun(x) y=(1/2)*erfc(x/sqrt(2)); function p=xiumoto(s_in_dB) N=1000;d=1; Eav=10*d^2; snr=10^(s_in_dB/10); sgma=sqrt(Eav/(8*snr)); M=16; for i=1:N temp=rand; dsource(i)=1+floor(M*temp); end mapping=[-3*d 3*d;-d 3*d;d 3*d;3*d 3*d;-3*d d;-d d;d d;3*d d;... -3*d -d;-d -d;d -d;3*d -d;-3*d -3*d;-d -3*d;d -3*d;3*d -3*d]; for i=1:N q_sig(i,:)=mapping(dsource(i),:); end for i=1:N n=gngauss(sgma); %产生高斯随机噪声 r(i,:)=q_sig(i,:)+n; %在信号上叠加噪声 end numoferr=0; for i=1:N for j=1:M metrics(j)=(r(i,1)-mapping(j,1))^2+(r(i,2)-mapping(j,2))^2; end [m_metrics decis]=min(metrics); if(decis~=dsource(i)) %若出现错误情况,误比特数为1 numoferr=numoferr+1; end end p=numoferr/(N);