基于GPS的路線(xiàn)測(cè)量與擬合
求解方程組得到Mi(i=0,1,2,… ,n),代入S(x)即為相臨兩點(diǎn)間的三次樣條函數(shù),n段三次樣條曲線(xiàn)以已知數(shù)據(jù)點(diǎn)為臨界銜接點(diǎn)進(jìn)行連接便可得出一條通過(guò)所有數(shù)據(jù)點(diǎn)的平滑曲線(xiàn)。
5 MATLAB實(shí)現(xiàn)樣條插值
在本系統(tǒng)中,路線(xiàn)數(shù)據(jù)的采集點(diǎn)以經(jīng)緯度描述,整條路線(xiàn)類(lèi)似于二維曲線(xiàn),以實(shí)驗(yàn)測(cè)試路段為例,其采集點(diǎn)如下:
表一 路線(xiàn)采集點(diǎn)數(shù)據(jù)
三次樣條插值過(guò)程實(shí)質(zhì)上就是求解三次樣條函數(shù)的過(guò)程,在實(shí)際應(yīng)用中,首先必須根據(jù)具體樣本點(diǎn)情況構(gòu)造出合適的三次樣條函數(shù),但這需要工程技術(shù)人員具備良好的數(shù)學(xué)功底和數(shù)據(jù)分析能力。此外,對(duì)于離散樣本點(diǎn)較多的情況,編制計(jì)算機(jī)程序求解大方程組也不簡(jiǎn)單。
MATLAB將高性能的數(shù)值計(jì)算和可視化集成在一起,并提供了大量專(zhuān)業(yè)領(lǐng)域的內(nèi)置函數(shù),從而被廣泛地應(yīng)用于科學(xué)計(jì)算、控制系統(tǒng)、信息處理等領(lǐng)域的分析、仿真和設(shè)計(jì)工作。就數(shù)值插值而言,MATLAB提供有一維、二維、三維插值方法,對(duì)于一維插值可通過(guò)函數(shù)interp1(x,y,xi,'method')實(shí)現(xiàn),其中x,y是已知數(shù)據(jù)點(diǎn)的值,xi是要內(nèi)插的數(shù)據(jù)點(diǎn),method是內(nèi)插方法,可以指定為一次(linear)、三 次(cubic)方程式或spline函數(shù),其預(yù)設(shè)方法是linear。如果數(shù)據(jù)的變化較大,以 spline函數(shù)內(nèi)插所形成的曲線(xiàn)最平滑 ,所以效果最好。而三次方程式所得到的內(nèi)插曲線(xiàn)平滑度,則介于線(xiàn)性與spline函數(shù)之間。
對(duì)表一數(shù)據(jù)進(jìn)行插值,步驟如下:
1. 分析經(jīng)緯兩組數(shù)據(jù),以相對(duì)單調(diào)性較好的一組為自變量確定插值精度。表一數(shù)據(jù)比較簡(jiǎn)單,可以經(jīng)度為自變量,0.1’為步長(zhǎng)確定需要內(nèi)插數(shù)據(jù)點(diǎn)矩陣(GPS接收機(jī)輸出的經(jīng)緯度數(shù)據(jù)由度數(shù)和分?jǐn)?shù)組合在一起,如10352.0329表示103度52.0329分,在應(yīng)用中需要統(tǒng)一轉(zhuǎn)換成以分為單位。本文的實(shí)驗(yàn)測(cè)試路線(xiàn)較短,不涉及度數(shù)部分的變化,為了直觀,暫不做轉(zhuǎn)換)。
2. 將已知數(shù)據(jù)點(diǎn)列成12*2矩陣形式。
3. 調(diào)用interp1(x,y,xi,'method')函數(shù),選擇內(nèi)插方法為spline,所得結(jié)果與內(nèi)插數(shù)據(jù)點(diǎn)構(gòu)成2*27矩陣,該矩陣每列上的兩個(gè)數(shù)據(jù)即為擬合路線(xiàn)上位置點(diǎn)經(jīng)緯度。
對(duì)應(yīng)程序如下:
x=[10352.0329 10352.3988 10353.0197 10353.2919 10353.246 10353.3482 10353.5829 10353.7319 10354.1310 10354.2028 10354.5745 10354.6678; 3018.2936 3018.6298 3018.7247 3019.1021 3019.2701 3019.5516 3019.844 3020.0859 3020.9478 3021.167 3022.5694 3022.7908]';
1.03544329000000 1.03545329000000 1.03546329000000 ; 0.30182936000000 0.30186004069566 0.30187182180522 0.30186964693605 0.30185845969551 0.30184320369097 0.30182882252981 0.30182025981940 0.30182245916710 0.30184036418029 0.30187889352712 0.30192733665639 0.30193266863021 0.30193987411039 0.30199701768689 0.30198992627645 0.30198730620686 0.30200882997022 0.30203060327638 0.30205012896416 0.30207062461427 0.30209530780615 0.30212717111085 0.30216587747376 0.30220651085041 0.30224372965360 0.30227219229616]
由于步長(zhǎng)足夠小,產(chǎn)生的數(shù)據(jù)相對(duì)原數(shù)據(jù)豐富的多,擬合出的路線(xiàn)曲線(xiàn)平滑,這可通過(guò)函數(shù)plot()進(jìn)行效果顯示。在具體路線(xiàn)的擬合過(guò)程中,可根據(jù)GPS數(shù)據(jù)采集點(diǎn)的密度改變插值步長(zhǎng),以達(dá)到實(shí)際控制要求。
6 小結(jié)
GPS在應(yīng)用過(guò)程中的工作主要集中在定位數(shù)據(jù)的采集和后續(xù)處理,特別是在與GIS(地理信息系統(tǒng))的結(jié)合應(yīng)用中,為了描繪實(shí)際地理形狀或路線(xiàn),必須采取一定的算法盡量見(jiàn)減小結(jié)果誤差。三次樣條插值以其優(yōu)良的數(shù)學(xué)特征正好滿(mǎn)足這方面的需求,結(jié)合功能強(qiáng)大的MATLAB工具,其實(shí)現(xiàn)簡(jiǎn)單方便,大大提高了相關(guān)設(shè)計(jì)目標(biāo)的質(zhì)量。
評(píng)論