• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      基于VC++的GPS數(shù)據(jù)壓縮處理研究

      2012-09-26 02:27:56周子富朱吉?jiǎng)?/span>
      電子設(shè)計(jì)工程 2012年21期
      關(guān)鍵詞:經(jīng)度緯度字節(jié)

      周子富,朱吉?jiǎng)?/p>

      (1.武警工程大學(xué) 研究生大隊(duì),陜西 西安 710086;2.武警工程大學(xué) 通信工程系,陜西 西安 710086)

      GPS是目前世界上應(yīng)用最為廣泛的衛(wèi)星導(dǎo)航系統(tǒng),其全球性、全能性和全天候性的導(dǎo)航定位、定時(shí)和測(cè)速優(yōu)勢(shì)在諸多領(lǐng)域中得到越來(lái)越廣泛的應(yīng)用。GPS已逐步演變?yōu)橐环N世界性的高新技術(shù)產(chǎn)業(yè),越來(lái)越受到了人們的關(guān)注[1]。

      在各種導(dǎo)航系統(tǒng)及大型監(jiān)控系統(tǒng)中,為了提供歷史軌跡重放等功能,往往要存儲(chǔ)大量的定位數(shù)據(jù),同時(shí)這些數(shù)據(jù)甚至還要通過(guò)無(wú)線通信傳送,所需費(fèi)用高 而且傳送中會(huì)受到網(wǎng)絡(luò)帶寬的限制,很可能出現(xiàn)網(wǎng)絡(luò)延遲 這就大大影響了實(shí)時(shí)定位的效果。如何處理GPS數(shù)據(jù)對(duì)系統(tǒng)整體功能的實(shí)現(xiàn)極其重要。VC++憑借其在GPS通信及數(shù)據(jù)處理程序編寫方面的優(yōu)勢(shì),得到廣泛應(yīng)用。

      1 GPS數(shù)據(jù)格式

      想要對(duì)GPS數(shù)據(jù)進(jìn)行處理,首先需要了解GPS的數(shù)據(jù)格式。目前,大多數(shù)GPS都采用美國(guó)國(guó)家海洋電子協(xié)會(huì)(National Marine Electronics Association)制定的NMEA-0183通信標(biāo)準(zhǔn),這種通信標(biāo)準(zhǔn)輸出的數(shù)據(jù)采用ASCII碼,其內(nèi)容包含了緯度、經(jīng)度、高度、速度、日期、時(shí)間、航向以及衛(wèi)星狀況等信息,規(guī)定的語(yǔ)句有 6種,包括 GGA、GLL、GSA、GSV、RMC和VTG[2]。對(duì)于不同的用途,選用的語(yǔ)句記錄也不同,對(duì)于大多數(shù)的普通使用者只關(guān)心其日期和時(shí)間、經(jīng)緯度、地面速度信息等,而RMC語(yǔ)句就包含了以上信息,所以本文只討論RMC語(yǔ)句。一條RMC語(yǔ)句包括了以下記錄:語(yǔ)句標(biāo)識(shí)頭、世界時(shí)間、定位狀態(tài)、緯度、緯度方位、經(jīng)度、經(jīng)度方位、地面速度、地面路線、日期、磁偏角、校驗(yàn)和和結(jié)束標(biāo)記[3],其結(jié)構(gòu)及各字段含義如下:

      $GPRMC,<l>,<2>,<3>,<4>,<5>,<6>,<7>,<8>,<9>,<10>,<1l>*hh

      <l>UTC 時(shí)間。 格式為 hhmmss.ss。

      <2>狀態(tài),A為數(shù)據(jù)有效,V為非有效。

      <3>緯度。 格式為ddmm.mmmm (度、分&小數(shù)分)。

      <4>標(biāo)明南北半球,N為北半球、S為南半球。

      <5>經(jīng)度,格式為 dddmm.mmmm (度、分 &小數(shù)分)。

      <6>標(biāo)明東西半球,E為東半球、W為西半球。

      <7>地面上的速度。范圍為 0.0到999.9。

      <8>方位角,范圍為000.0到 359.9度。

      <9>日期。 格式為 ddmmyy(日、月、年)。

      <l0>地磁變化,從 000.0到 180.0度。

      <ll>地磁變化方向,為E或W。

      一般情況下,并不需要所有的定位數(shù)據(jù)而只需要其中的一部分,所以在存儲(chǔ)數(shù)據(jù)之前一般先要對(duì)數(shù)據(jù)預(yù)處理。

      2 GPS數(shù)據(jù)的采集及預(yù)處理

      GPS數(shù)據(jù)的采集一般都是通過(guò)串口通信進(jìn)行的,接收機(jī)都提供有串口接口,常用的GPS接收器一般遵循NMEA-0183協(xié)議且提供串行通信接口與計(jì)算機(jī)通信。VC++提供的串口通信編程方法有好幾種,其中利用MSComm控件實(shí)現(xiàn)串口通信是較為方便的一種,程序員不必去學(xué)習(xí)復(fù)雜的API函數(shù),只需對(duì)串口進(jìn)行簡(jiǎn)單配置,這方面的例子相當(dāng)普遍,這里不作詳細(xì)介紹。GPS接收機(jī)工作時(shí)會(huì)源源不斷地把接收到的GPS定位數(shù)據(jù)傳送到PC機(jī)中[4]。串口通訊代碼從串口接收數(shù)據(jù)并將其放置于緩存data中,等待下一步的處理。

      在對(duì)GPS數(shù)據(jù)進(jìn)行某種壓縮處理之前,應(yīng)該先對(duì)其進(jìn)行預(yù)處理。GPS數(shù)據(jù)預(yù)處理是一種最直接的處理方式,也是減小數(shù)據(jù)容量的一種比較直觀有效的方法。分析GPS數(shù)據(jù),可以知道這些信息中,有很多屬于冗余信息。為了方便后續(xù)壓縮的進(jìn)行,先對(duì)輸出的信號(hào)進(jìn)行壓縮預(yù)處理[5],預(yù)處理之后只保留必須要的信息,步驟如下:

      1)語(yǔ)句標(biāo)識(shí)頭(ID):數(shù)據(jù)出自同一GPS接收機(jī),每個(gè)語(yǔ)句的標(biāo)識(shí)頭都一樣,所以該記錄段屬冗余信息,完全可以去除,在解壓縮時(shí)再在每個(gè)語(yǔ)句前加上該標(biāo)識(shí)頭即可。

      2)世界時(shí)間(UTC):該信息段以時(shí)、分、秒、毫秒的格式指示出當(dāng)時(shí)世界時(shí)間。不進(jìn)行預(yù)處理。

      3)定位狀態(tài)(A/V):占用1個(gè)字節(jié),不進(jìn)行預(yù)處理。

      4)緯度:占用9個(gè)字節(jié),不進(jìn)行預(yù)處理。

      5)經(jīng)度:占用10個(gè)字節(jié),不進(jìn)行預(yù)處理。

      6)經(jīng)度指示器(E/W):占一個(gè)字節(jié),它指示東西經(jīng)。只研究在東經(jīng)的情況,所以它是冗余信息,可以去除。

      7)緯度指示器(N/S):占一個(gè)字節(jié)。處理同上。

      8)地面速度:占用4個(gè)字節(jié),可以去除。

      9)日期:占用6個(gè)字節(jié),以日、月、年的格式顯示。因?yàn)樵撓到y(tǒng)一天啟動(dòng)一次,日期相同,是冗余信息。

      10)地磁變化:可以去除。

      11)校驗(yàn)和、結(jié)束符:在完成對(duì)數(shù)據(jù)的校驗(yàn)后,校驗(yàn)和便可去除。結(jié)束符由回車、換行組成,由于語(yǔ)句長(zhǎng)度已知所以也可以去除。

      對(duì)一組數(shù)據(jù):

      $GPRMC,032510,A,2934.0467,N,10634.3591,E,000.0,000.0,191203,001.6,w*65則經(jīng)過(guò)預(yù)處理后的 GPS數(shù)據(jù)格式為:032510,A,2934.0467,10634.3591,只剩下時(shí)間、狀態(tài)、緯度和經(jīng)度,共29個(gè)字節(jié)。進(jìn)一步處理,可以將逗號(hào)去掉,將新的 數(shù) 據(jù) 變 成 為 已 “A” 為 首 的 字 符 串A0325102934.046710634.3591,把A放在第一個(gè)字節(jié)是為了方便遍歷字符,此時(shí),剩下26個(gè)字節(jié),與原始數(shù)據(jù)的70個(gè)字節(jié)相比減小了62%。

      利用VC++編程以上預(yù)處理時(shí)一般先通過(guò)對(duì)幀頭的判斷來(lái)進(jìn)行數(shù)據(jù)的提取處理。由于幀內(nèi)各數(shù)據(jù)段由逗號(hào)分割。因此在處理緩存數(shù)據(jù)時(shí)一般是通過(guò)搜尋ASCII碼“$”來(lái)判斷是否是幀頭。在對(duì)幀頭的類別進(jìn)行識(shí)別后再通過(guò)對(duì)所經(jīng)歷逗號(hào)個(gè)數(shù)的計(jì)數(shù)來(lái)判斷出當(dāng)前正在處理的是哪一種定位導(dǎo)航參數(shù)[6]。下面是對(duì)緩存中的數(shù)據(jù)進(jìn)行參數(shù)處理的部分代碼:

      這樣就提取出了時(shí)間、狀態(tài)、經(jīng)度和緯度,后續(xù)的處理只需在此基礎(chǔ)上再進(jìn)行即可。

      3 GPS數(shù)據(jù)壓縮

      數(shù)據(jù)壓縮的方法很多,總的來(lái)說(shuō)可以分為無(wú)損壓縮和有損壓縮兩大類。本文針對(duì)預(yù)處理過(guò)的GPS數(shù)據(jù)的格式特點(diǎn),采用半字節(jié)的方法[7]進(jìn)行編碼。可以看到,預(yù)處理過(guò)的數(shù)據(jù)為A0325102934.046710634.3591,即“A時(shí)間緯度經(jīng)度”的格式。為了方便檢測(cè)數(shù)據(jù)的完整性和方便編程實(shí)現(xiàn),這里我們?cè)诤竺婕尤虢Y(jié)束標(biāo)識(shí)C,變成“A時(shí)間緯度經(jīng)度C”的格式,則處理完的數(shù)據(jù)包括有0至9十個(gè)符號(hào)、小數(shù)點(diǎn)“.”以及字母“A”、“B”,共12個(gè)符號(hào)。事實(shí)上,四位二進(jìn)制編碼就能區(qū)分16中狀態(tài),所以用四位二進(jìn)制編碼來(lái)表示12個(gè)符號(hào)已經(jīng)足夠,而不必用八位。壓縮數(shù)據(jù)編碼表如下:

      表1 編碼表Tab.1 Code table

      這種編碼方式提供了16種狀態(tài),而我們只用到了12種,還冗余4種,我們還可以根據(jù)需要,利用這4種狀態(tài)進(jìn)行編碼實(shí)現(xiàn)其他功能,如用來(lái)實(shí)現(xiàn)糾錯(cuò)功能等。圖1是進(jìn)行數(shù)據(jù)壓縮的流程圖。

      圖1 數(shù)據(jù)壓縮流程圖Fig.1 Flow chart of data compression

      從壓縮編碼表可以看出,采取這種編碼方式可以直接使得數(shù)據(jù)壓縮了50%。對(duì)于“A0325102934.046710634.3591B”,壓縮編碼之后只需用108位編碼表示,和預(yù)處理前的數(shù)據(jù)(70個(gè)字節(jié),560位)相比,雖然后面加了一個(gè)結(jié)束標(biāo)識(shí)符B,但總的壓縮編碼壓縮比仍可達(dá)80%。

      4 結(jié)束語(yǔ)

      文中設(shè)計(jì)并實(shí)現(xiàn)了一種在數(shù)據(jù)預(yù)處理的基礎(chǔ)上進(jìn)行的GPS數(shù)據(jù)壓縮算法,壓縮比可達(dá)到 80%以上。本算法前期的數(shù)據(jù)預(yù)處理之后GPS定位數(shù)據(jù)中只剩下12個(gè)符號(hào)表示,一方面去掉了很大一部分冗余信息,使數(shù)據(jù)量明顯減小,另一方面符號(hào)數(shù)目減少且已知,因此在編碼時(shí)只需根據(jù)ASCII碼值建立較小的數(shù)組。這種數(shù)據(jù)處理方式比較簡(jiǎn)單,程序量小,壓縮比大,且易于實(shí)現(xiàn),對(duì)解決GPS應(yīng)用中數(shù)據(jù)量大而存儲(chǔ)器資源有限的問(wèn)題以及數(shù)據(jù)傳輸帶寬等問(wèn)題具有重要的實(shí)際意義。

      [1]羅海英,李強(qiáng),劉旭東.基于VC++的GPS狀態(tài)監(jiān)控與數(shù)據(jù)采集軟件的設(shè)計(jì)與實(shí)現(xiàn)[J].測(cè)繪通報(bào),2010(12):27-29.

      LUO Hai-ying,LI Qiang,LIU Xu-dong. Desigen and implementation of GPS state monitoring and data acquisition soffware based on VC++[J].Surveying and Mapping,2010(12):27-29.

      [2]馬飛,諸昌鈐.利用VC++實(shí)現(xiàn)GPS數(shù)據(jù)采集[J].計(jì)算機(jī)時(shí)代,2005(6):13-15.

      MA Fei,ZHU Chang-qian.GPS data acquisition Using VC++[J].Computer Age,2005(6):13-15.

      [3]趙曉煒.基于Huffman編碼的GPS定位數(shù)據(jù)壓縮算法及實(shí)現(xiàn)[D].內(nèi)蒙古:內(nèi)蒙古工業(yè)大學(xué),2006.

      [4]陳靜,許劼,邱國(guó)廷.用VC++6.0實(shí)現(xiàn)計(jì)算機(jī)與GPS通信[J].北京測(cè)繪,2004(3):25-29.

      CHEN Jing,XU Jie,QIU Guo-ting.Using VC++6.0 to design the GPS-computer communication[J].Beijing Surveying and Mapping,2004(3):25-29.

      [5]任華新.GPS定位數(shù)據(jù)壓縮算法的設(shè)計(jì)[J].長(zhǎng)春工程學(xué)院學(xué)報(bào),2008,9(3):74-76.

      REN Hua-xin.The design of the data compression algorithm on GPS system[J].J.Changchun Inst.Tech,2008,9 (3):74-76.

      [6]邱治國(guó),王向武.VC++實(shí)現(xiàn)GPS全球定位系統(tǒng)定位數(shù)據(jù)的提取[J].科技信息,2007(3):20-21.

      QIU Zhi-guo,WANG,Xiang-wu.Location data extraction of GPS globalpositioningsystem with VC++[J].Science Information,2007(3):20-21.

      [7]楊宏業(yè),張躍.GPS定位數(shù)據(jù)壓縮算法的設(shè)計(jì)與實(shí)現(xiàn)[J].電子技術(shù)應(yīng)用,2002(12):29-32.

      YANG Hong-ye,ZHANG Yue.GPS positioning data compression algorithm design and implementation[J].Electronic Technology,2002(12):29-32.

      [8]馬蘭,袁衛(wèi).基于GPS的數(shù)據(jù)采集處理系統(tǒng)設(shè)計(jì)[J].現(xiàn)代電子技術(shù),2010(15):171-172,176.

      MA Lan,YUAN Wei.Design of data acquisition system based on GPS[J].Modern Electronic Technique,2010(15):171-172,176.

      猜你喜歡
      經(jīng)度緯度字節(jié)
      巧用四步法 妙解地方時(shí)
      巧用四步法 妙解地方時(shí)
      No.8 字節(jié)跳動(dòng)將推出獨(dú)立出口電商APP
      No.10 “字節(jié)跳動(dòng)手機(jī)”要來(lái)了?
      簡(jiǎn)談MC7字節(jié)碼
      緯度
      齊魯周刊(2017年29期)2017-08-08 06:28:15
      基于時(shí)空緯度的國(guó)內(nèi)農(nóng)民工創(chuàng)業(yè)研究
      抗生素入選2014年“經(jīng)度獎(jiǎng)”研究課題
      常用緯度差異極值符號(hào)表達(dá)式
      人類進(jìn)入“澤它時(shí)代”
      枣强县| 化德县| 平山县| 太湖县| 方山县| 中阳县| 永善县| 广宗县| 旬阳县| 长宁县| 扶余县| 绥化市| 贺兰县| 靖边县| 乌拉特前旗| 平罗县| 永修县| 曲松县| 天祝| 乐清市| 嘉禾县| 曲沃县| 海阳市| 德兴市| 始兴县| 冕宁县| 毕节市| 吉隆县| 建平县| 兰考县| 大竹县| 霍城县| 抚顺县| 慈溪市| 噶尔县| 油尖旺区| 西乌珠穆沁旗| 焦作市| 汨罗市| 呼图壁县| 琼海市|