?? findsf1.m
字號:
%查找子楨
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=xorr(maker,navd(m,1:360)); %查找和前導序列相匹配的數據位序列
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;
while k<3 & ~err, %檢查下兩個子楨前導序列
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)); %檢查HOW末尾的奇偶位
if ~end_HOW|err, %如果出錯就跳到下一個點
n=n+1;
else
id=navd(m,pt+49 : pt+51); %尋找子楨
if end_HOW==2, %判斷HOW字的極性
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, %使子楨在1~5之間
flag=0;
else
n=n+1;
end
end
end
if ~flag, %查找子楨1的起始位置
if sf(m)==1,
start_sf1(m)=pt;
else
start_sf1(m)=pt+((6-sf(m))*300);
id=navd(m,start_sf1(m)+49: start_sf1(m)+51);
if id ~=[-1 -1 1]&id ~=[1 1 -1],
disp(['Error in finding sat' num2str(m) '-sf1 id did not match.'])
start_sf1(m)=0;
end
end
else
disp(['Error in finding sat' num2str(m)])
end
end
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -