%scramler based on primitive polynome 1+x^14+x^15
function out=scrambler(x)
N=length(x);
%Scrambler initialization section
if x(1:2)==[0 0], y(1:15)=[1 1 1 1 1 1 1 1 1 1 1 1 1 1 1]; end;
if x(1:2)==[0 1], y(1:15)=[0 1 1 1 0 0 0 0 1 1 1 1 1 1 1]; end;
if x(1:2)==[1 0], y(1:15)=[0 1 1 1 1 1 1 1 0 0 0 0 0 0 0]; end;
if x(1:2)==[1 1], y(1:15)=[0 1 1 1 1 0 0 0 0 0 0 0 1 1 1]; end;
output(1:N)=0;
for i=1:N
output(i)=xor(x(i),xor( y(15) ,y(14)));
y(15:-1:2)=y(14:-1:1); % shift register
y(1)=output(i);
end;
out=output;