資源簡介
matlab代碼,卡爾曼濾波,偽距單點定位,精度1-2米

代碼片段和文件信息
%?函數功能說明:讀取IGS精密星歷數據子函數freadnfile.m
function?[igsdata]=freadnfile(nfilename);
%?打開IGS精密星歷文件
[fidnmessage]=fopen(nfilename‘rt‘);
fidn;
%?開始讀取IGS精密星歷文件的內容
disp(‘開始讀取衛星星歷表頭文件的內容‘);
linen=fgetl(fidn);
block=str2num(linen(33:39));%歷元個數
linen=fgetl(fidn);
linen=fgetl(fidn);
sumsv=str2num(linen(5:6));%衛星個數
????
while?(feof(fidn)~=1)????
????linen=fgetl(fidn);????
????[rowcolumn]=size(linen);
????
????%~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
????%?獲取表頭文件的結尾的指針位置sitefidn
????if?(linen(1)==‘*‘)
%??????????if?((column<=3)&(linen(1:2)==‘/*‘))
????????sitefidn=ftell(fidn);????%?sitefidn為文件表頭結束指針位置??
????????disp(‘讀取衛星星歷表頭文件完畢‘);
????????break;
????end?
????%~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
end
igsdata=zeros(block5sumsv);??%%block為衛星在此數據時段中出現的歷元數,sumsv為衛星總數,5為衛星PRN編號(1個)、衛星坐標(3個)和衛星鐘差(1個)共5個參數
for?b=1:block?????
????for?cen=1:sumsv
????????linen=fgetl(fidn);
????????igsdata(b1cen)=str2num(linen(3:4));?%%衛星PRN編號
????????igsdata(b2cen)=1000*str2num(linen(6:18));?
????????igsdata(b3cen)=1000*str2num(linen(20:32));
????????igsdata(b4cen)=1000*str2num(linen(34:46));
????????igsdata(b5cen)=str2num(linen(48:60));?
????end
????linen=fgetl(fidn);
end
igsdata;
????????
%?關閉文件
fclose(fidn);
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件???????31704??2015-05-14?15:13??單點定位\X.xls
?????文件????????1501??2015-05-14?11:06??單點定位\freadnfile.m
?????文件?????????399??2015-05-13?15:49??單點定位\fsvposion.m
?????文件??????251250??2014-05-05?14:16??單點定位\igs17761.sp3
?????文件????????6482??2015-05-14?15:12??單點定位\kalman.m
?????文件??????146618??2015-05-13?18:48??單點定位\monp0200.14o
?????目錄???????????0??2015-05-18?09:15??單點定位\
評論
共有 條評論