📄 decode2.m
字号:
%本程序用于将subfram 1中得到的导航信号转化为星历表信号,
ephermeris data
clear angmat navd rymkmat
load d:\gps\big data\srvy8210;
angmat=ang;
ptnumat=transpt;
rymkmat=fintime;
[st navd]=navdat(angmat); %*find naviga data (20ms) & first
angle transition
[points, navdata]=matsubf(navd); %寻找subfram 2的电文头
prod 0 1s
nsat=length(points);
for m=1:nsat;
iode2(m,:)=navdata(m,points(m)-1+61:points(m)-1+68);%获得星历数据期号域,IODE由IODC的8个最低有效位(LSB)组成,可以被用户设备用于检测广播轨道根数
crs(m)=comp2dec(navdata(m,points(m)-1+84:-1:points(m)-
1+69),-5);%轨道向径正弦调和改正的振幅
deln(m)=comp2dec(navdata(m,points(m)-1+106:-1:points(m)-
1+91),-43)*pi;%获得平均运动角速度的校正量,乘以PI转化为弧度制表示
m01=navdata(m,points(m)-1+114:-1:points(m)-1+107);
m02=navdata(m,points(m)-1+144:-1:points(m)-1+121);
m03=[m02 m01];
m0(m)=comp2dec(m03,-31)*pi;%参考时刻的平近点角,乘以PI转化为弧度制表示
clear m01 m02 m03;
cuc(m)=comp2dec(navdata(m,points(m)-1+166:-1:points(m)-
1+151),-29);%升交角距余弦调和校正的振幅
e1=navdata(m,points(m)-1+174:-1:points(m)-1+167);
e2=navdata(m,points(m)-1+204:-1:points(m)-1+181);
e3=[e2 e1];
e(m)=bi2de(e3)*2^(-33);
clear e1 e2 e3;%卫星轨道的离心率
cus(m)=comp2dec(navdata(m,points(m)-1+226:-1:points(m)-
1+211),-29);%升交角距正弦调和校正的振幅
sa1=navdata(m,points(m)-1+234:-1:points(m)-1+227);
sa2=navdata(m,points(m)-1+264:-1:points(m)-1+241);
sa3=[sa2 sa1];
sa(m)=bi2de(sa3)*2^(-19);%获得轨道长半轴的平方根
clear sa1 sa2 sa3;%清除中间变量
toe(m)=bi2de(navdata(m,points(m)-1+286:-1:points(m)-
1+271))*2^4;%星历参考时刻,从GPS时每星期六/星期日子夜零时起算,变化于0~604800秒
end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -