Smldpe54.m
上传用户:loeagle
上传日期:2013-03-02
资源大小:1236k
文件大小:1k
源码类别:

通讯编程文档

开发平台:

Matlab

  1. function [p]=smldPe54(snr_in_dB)
  2. % [p]=smldPe54(snr_in_dB)
  3. % SMLDPE54  finds the probability of error for the given
  4. %    snr_in_dB, signal-to-noise ratio in dB.
  5. E=1;
  6. SNR=exp(snr_in_dB*log(10)/10);     % signal-to-noise ratio
  7. sgma=E/sqrt(2*SNR);     % sigma, standard deviation of noise
  8. N=10000;
  9. % generation of the binary data source
  10. for i=1:N,
  11.   temp=rand;           % a uniform random variable over (0,1)
  12.   if (temp<0.5),
  13.     dsource(i)=0;           % With probability 1/2, source output is 0.
  14.   else
  15.     dsource(i)=1;        % With probability 1/2, source output is 1.
  16.   end
  17. end;
  18. % detection, and probability of error calculation 
  19. numoferr=0;
  20. for i=1:N,
  21.   % matched filter outputs
  22.   if (dsource(i)==0),
  23.     r0=E+gngauss(sgma);
  24.     r1=gngauss(sgma);        % if the source output is "0"
  25.   else
  26.     r0=gngauss(sgma);
  27.     r1=E+gngauss(sgma);      % if the source output is "1"
  28.   end;
  29.   % Detector follows.
  30.   if (r0>r1),
  31.     decis=0;        % Decision is "0". 
  32.   else
  33.     decis=1;        % Decision is "1". 
  34.   end;
  35.   if (decis~=dsource(i)),     % If it is an error, increase the error counter.
  36.     numoferr=numoferr+1;
  37.   end;
  38. end;
  39. p=numoferr/N;           % probability of error estimate