Global Positioning System Reference
In-Depth Information
%p91.m This program finds subframes
function start sf1 = findsf1(navd)
[nsat, n] = size(navd);
marker = [1 -1 -1 -1 1 -1 1 1];
start sf1 = zeros(1, nsat);
for m = 1:nsat,
c = xcorr(marker, navd(m, 1:360)); % find data bit
sequences that match preambles
indn = find(abs(c)>7.99);
pts = indn - 360 + 1;
flag = 1;
n=1;
while flag&n<=length(pts),
pt = pts(n);
k=1;
err=0;
whilek<3&
err,
% check for
preambles in next two subframes
sfmark = navd(m, pt + (k * 300):pt + (k * 300) + 7);
if abs(sum(sfmark .* marker)) < 8,
err=1;
end
k=k+1;
end
end HOW = sum(navd(m, pt + 58:pt + 59));
% Check
parity bits at end of HOW
if
end HOW | err,
% If anything
wrong, go to next point
n=n+1;
else
id = navd(m, pt + 49:pt + 51);
% Find
subframe #
if
end HOW == 2,
% Find
polarity of HOW word
id = -id;
end
sf(m) = 0;
id = fliplr(id);
for k = 1:length(id),
if id(k) == 1,
sf=sf+2^(k-1);
end
end
if sf(m)<6&sf(m) > 0,
% Ensure
Search WWH ::




Custom Search