⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 findsf1.m

📁 gps全球定位系统的导航数据的子帧匹配程序
💻 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 + -