function code = generateB2aDcode(prn)
% B2a Data code
regInit=[
1 0 0 0 0 0 0 1 0 0 1 0 1;
1 0 0 0 0 0 0 1 1 0 1 0 0;
1 0 0 0 0 1 0 1 0 1 1 0 1;
1 0 0 0 1 0 1 0 0 1 1 1 1;
1 0 0 0 1 0 1 0 1 0 1 0 1;
1 0 0 0 1 1 0 1 0 1 1 1 0;
1 0 0 0 1 1 1 1 0 1 1 1 0;
1 0 0 0 1 1 1 1 1 1 0 1 1;
1 0 0 1 1 0 0 1 0 1 0 0 1;
1 0 0 1 1 1 1 0 1 1 0 1 0;
1 0 1 0 0 0 0 1 1 0 1 0 1;
1 0 1 0 0 0 1 0 0 0 1 0 0;
1 0 1 0 0 0 1 0 1 0 1 0 1;
1 0 1 0 0 0 1 0 1 1 0 1 1;
1 0 1 0 0 0 1 0 1 1 1 0 0;
1 0 1 0 0 1 0 1 0 0 0 1 1;
1 0 1 0 0 1 1 1 1 0 1 1 1;
1 0 1 0 1 0 0 0 0 0 0 0 1;
1 0 1 0 1 0 0 1 1 1 1 1 0;
1 0 1 0 1 1 0 1 0 1 0 1 1;
1 0 1 0 1 1 0 1 1 0 0 0 1;
1 0 1 1 0 0 1 0 1 0 0 1 1;
1 0 1 1 0 0 1 1 0 0 0 1 0;
1 0 1 1 0 1 0 0 1 1 0 0 0;
1 0 1 1 0 1 0 1 1 0 1 1 0;
1 0 1 1 0 1 1 1 1 0 0 1 0;
1 0 1 1 0 1 1 1 1 1 1 1 1;
1 0 1 1 1 0 0 0 1 0 0 1 0;
1 0 1 1 1 0 0 1 1 1 1 0 0;
1 0 1 1 1 1 0 1 0 0 0 0 1;
1 0 1 1 1 1 1 0 0 1 0 0 0;
1 0 1 1 1 1 1 0 1 0 1 0 0;
1 0 1 1 1 1 1 1 0 1 0 1 1;
1 0 1 1 1 1 1 1 1 0 0 1 1;
1 1 0 0 0 0 1 0 1 0 0 0 1;
1 1 0 0 0 1 0 0 1 0 1 0 0;
1 1 0 0 0 1 0 1 1 0 1 1 1;
1 1 0 0 1 0 0 0 1 0 0 0 1;
1 1 0 0 1 0 0 0 1 1 0 0 1;
1 1 0 0 1 1 0 1 0 1 0 1 1;
1 1 0 0 1 1 0 1 1 0 0 0 1;
1 1 0 0 1 1 1 0 1 0 0 1 0;
1 1 0 1 0 0 1 0 1 0 1 0 1;
1 1 0 1 0 0 1 1 1 0 1 0 0;
1 1 0 1 0 1 1 0 0 1 0 1 1;
1 1 0 1 1 0 1 0 1 0 1 1 1;
1 1 1 0 0 0 0 1 1 0 1 0 0;
1 1 1 0 0 1 0 0 0 0 0 1 1;
1 1 1 0 0 1 0 0 0 1 0 1 1;
1 1 1 0 0 1 0 1 0 0 0 1 1;
1 1 1 0 0 1 0 1 0 1 0 0 0;
1 1 1 0 1 0 0 1 1 1 0 1 1;
1 1 1 0 1 1 0 0 1 0 1 1 1;
1 1 1 1 0 0 1 0 0 1 0 0 0;
1 1 1 1 0 1 0 0 1 0 1 0 0;
1 1 1 1 0 1 0 0 1 1 0 0 1;
1 1 1 1 0 1 1 0 1 1 0 1 0;
1 1 1 1 0 1 1 1 1 1 0 0 0;
1 1 1 1 0 1 1 1 1 1 1 1 1;
1 1 1 1 1 1 0 1 1 0 1 0 1;
0 0 1 0 0 0 0 0 0 0 0 1 0;
1 1 0 1 1 1 1 1 1 0 1 0 1;
0 0 0 1 1 1 1 0 1 0 0 1 0;
];
g1 = zeros(1, 10230);
reg=[1 1 1 1 1 1 1 1 1 1 1 1 1];
for i=1:10230
g1(i) = reg(13);
saveBit = mod(reg(1)+reg(5)+reg(11)+reg(13),2);
reg(2:13) = reg(1:12);
reg(1) = saveBit;
if(i==8190)
reg=[1 1 1 1 1 1 1 1 1 1 1 1 1];
end
end
g2 = zeros(1, 10230);
reg=regInit(prn,:);
for i=1:10230
g2(i) = reg(13);
saveBit = mod(reg(3)+reg(5)+reg(9)+reg(11)+reg(12)+reg(13),2);
reg(2:13) = reg(1:12);
reg(1) = saveBit;
end
code=mod(g1+g2,2);
% Convert 1 to -1, 0 to 1
for i =1:length(code)
if code(i) == 1
code(i) = -1;
else
code(i) = 1;
end
end