% Copyright Miran Meža function[encoded] = encodehdbn(msg,n) m = 0; lp = -1; fnp = 0; onescounter = 0; nullcounter = 0; for i=1:length(msg) %onescounter if (msg(i)==1) m = 0; msg(i) = lp*(-1); lp = lp*(-1); onescounter = onescounter+1; nullcounter = 0; else if (nullcounter == 0) fpn = i; end if (m/n == 1) if (mod(onescounter,2) > 0) msg(fpn) = lp*(-1); lp = lp * (-1); onescounter = 0; nullcounter = -1; else msg(fpn) = 0; end msg(i) = lp; %onescounter = onescounter+1; m = 0; else msg(i) = 0; m = m+1; nullcounter = nullcounter + 1; %onescounter = 0; end end end encoded = msg; %msg