calcerr.m
上传用户:m_sun_001
上传日期:2014-07-30
资源大小:1115k
文件大小:1k
源码类别:

matlab例程

开发平台:

Matlab

  1. function [PhError, Summary] = calcerr(Datatx,Datarx,DiffPhRx,wordsize)
  2. %CALCERR Calculates the phase error, BER, and standard deviation of the error
  3. %
  4. %   [PhError, Summary] = calcerr(Datatx,Datarx,DiffPhRx,wordsize)
  5. %  Summary contains all the relevent error statistics:
  6. %  Summary = [BER, StdErr, NumErr]
  7. %  
  8. %  Copyright (c) Eric Lawrey 1997
  9. %Modifications:
  10. % 18/6/97 Inital write up of the function.
  11. %======================================
  12. %Investigate the phase error 
  13. %comparing tx phase and recovered phase
  14. %======================================
  15. PhInc = 360/(2^wordsize); %Find the increment between the phase locations
  16. DiffPhTx = Datatx*PhInc;
  17. PhError = (DiffPhRx - DiffPhTx); %find phase error in degrees
  18. %Make all errors -180deg to 180deg
  19. l=find(PhError>180);
  20. PhError(l) = PhError(l)-360;
  21. l=find(PhError<=-180);
  22. PhError(l) = PhError(l)+360;
  23. StdErr = std(reshape(PhError,1,size(PhError,1)*size(PhError,2)));
  24. %=====================================
  25. %Calculate the BER
  26. %=====================================
  27. Errors = find(Datatx-Datarx);
  28. NumErr = length(Errors);
  29. NumData=size(Datarx,1)*size(Datarx,2); %find the total number of data sent
  30. BER = NumErr/NumData;
  31. Summary = [BER,StdErr,NumErr];