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