28 lines
726 B
Matlab
28 lines
726 B
Matlab
function [bits,errors,BER] = calc_ber(data_in,data_ref,skip)
|
|
|
|
data_ref=logical(data_ref);
|
|
data_in = logical(data_in);
|
|
bits = 0;
|
|
errors=0;
|
|
|
|
data_ref_overlap=zeros(size(data_ref,1),skip+(length(data_ref)-size(data_in,2)));
|
|
data_ref_pointer=0;
|
|
% Determine BER
|
|
|
|
bits = bits+size(data_in,2)-skip;
|
|
try
|
|
errors = sum( data_in(:,skip+1:end,:) ~= data_ref(:,skip+1:end,:),2 );
|
|
catch
|
|
%warning('BER calculation not optimal: Arrays have incompatible sizes for this operation.')
|
|
errors = NaN;
|
|
end
|
|
try
|
|
errors = sum( data_in(:,skip+1:end,:) ~= data_ref(:,skip+1:end-1,:),2 );
|
|
end
|
|
try
|
|
errors = sum( data_in(:,skip+1:end,:) ~= data_ref(:,skip+1:end-2,:),2 );
|
|
end
|
|
|
|
BER = sum(errors)/sum(bits);
|
|
|
|
end |