www.pudn.com > ofdm_matlab.rar > calcerr.m
function [PhError, Summary] = calcerr(Datatx,Datarx,DiffPhRx,wordsize) %CALCERR Calculates the phase error, BER, and standard deviation of the error % % [PhError, Summary] = calcerr(Datatx,Datarx,DiffPhRx,wordsize) % Summary contains all the relevent error statistics: % Summary = [BER, StdErr, NumErr] % % Copyright (c) Eric Lawrey 1997 %Modifications: % 18/6/97 Inital write up of the function. %====================================== %Investigate the phase error %comparing tx phase and recovered phase %====================================== PhInc = 360/(2^wordsize); %Find the increment between the phase locations DiffPhTx = Datatx*PhInc; PhError = (DiffPhRx - DiffPhTx); %find phase error in degrees %Make all errors -180deg to 180deg l=find(PhError>180); PhError(l) = PhError(l)-360; l=find(PhError<=-180); PhError(l) = PhError(l)+360; StdErr = std(reshape(PhError,1,size(PhError,1)*size(PhError,2))); %===================================== %Calculate the BER %===================================== Errors = find(Datatx-Datarx); NumErr = length(Errors); NumData=size(Datarx,1)*size(Datarx,2); %find the total number of data sent BER = NumErr/NumData; Summary = [BER,StdErr,NumErr];