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

通讯编程文档

开发平台:

Matlab

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