Global Positioning System Reference
In-Depth Information
%p92.m This program checks the parity code
function [pt, navd]=matchsubf(navd);
nsat = size(navd,1);
pt = zeros(nsat);
pt = findsf1(navd)';
dlen = (floor(size(navd,2) / 30) - 1) * 30;
h1=[111011000111110011010010];
% from GPS Theory & App p.131
h2=[011101100011111001101001];%by
B.W. Parkinson & J.J. spilker
h3=[101110110001111100110100];
h4=[010111011000111110011010];
h5=[101011101100011111001101];
h6=[001011011110101000100111];
H = [h1; h2; h3; h4; h5; h6];
for m=1:nsat;
if pt(m)>0
for pnt=pt(m):30:dlen, %for different initial pts
D29 = navd(m, pnt-2);
D30 = navd(m, pnt-1);
navd(m, pnt:pnt+23) = D30 * navd(m, pnt:pnt+23);
d = navd(m, pnt:pnt+23);
Df = [D29 D30 D29 D30 D30 D29];
for k = 1:6,
temp = H(k,:) .* d;
p(k) = prod([Df(k) temp(find(temp))]);
end
if p
= navd(m, pnt+24:pnt+29),
disp('Parity check failed!')
end
end
end
end
ind=find(pt
=0);
pt=pt(ind);
navd = -navd;
navd=(navd+1)./2;
Search WWH ::




Custom Search