基于软件无线电GPS接收机的技术分析与定位信号的应用研究 - 图文

更新时间:2024-06-05 07:23:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

中国科学技术大学毕业论文

致 谢

本文从拟定题目到定稿,历时三个月。在本论文完成之际,首先要向我的导师王建宇老师致以诚挚的谢意。王老师学识渊博、治学严谨、待人平易近人,给了我许许多多的帮助和关怀。

其次,我要感谢在上海技术物理所的师兄张雷、邓江平、易炯,他们细心指导我的学习与研究,并协助完成了论文所涉及的相关研究实验。在毕业设计之外,也在其它各方面给与我无私的帮助和教诲,让我受益匪浅。

还要感谢我的母校中国科技技术大学对我这四年以来的培养,以及在大学中与我朝夕相处的同学朋友。我们的友谊,我将永生难忘。

最后我要感谢我的爸爸妈妈,养育之恩,无以回报,你们永远健康快乐是我最大的心愿。

1

中国科学技术大学毕业论文

目 录

目 录.............................................................................................................................. 2

摘 要.............................................................................................................................. 4 ABSTRACT ................................................................................................................... 5

第一章 绪论.................................................................................................................. 6 第一节 GPS的概念及发展概况 .............................................................................. 6 第二节 软件无线电技术的发展概况 ...................................................................... 7 第三节 本文的主要研究内容及意义 ...................................................................... 9 一、 课题背景....................................................................................................... 9 二、 主要研究内容............................................................................................. 10 一、 课题意义..................................................................................................... 10

第二章 基于软件无线电技术的GPS接收机研究 .................................................. 11 第一节 基于软件无线电技术的系统设计构架 .................................................... 11 第二节 软件无线电设计的关键技术分析 ............................................................ 12 一、 射频转换(RF到IF) .............................................................................. 12 二、 中频AD/DA ............................................................................................... 12 三、 数字信号处理模块..................................................................................... 12 四、 算法软件实现............................................................................................. 13 第三节 GPS软件接收机的设计原理 .................................................................... 13 第四节 软件接收机中频数据处理的核心算法 .................................................... 15 一、 C/A码信号捕获 ......................................................................................... 15 二、 C/A码信号跟踪 ......................................................................................... 16 第五节 本章小结 .................................................................................................... 17

第三章 基于NMEA-0183码的分析与研究 ............................................................ 18 第一节 GPS定位数据NMEA-0183码的介绍 ..................................................... 18 第二节 基于WINDOWS API的串口通信研究 .................................................... 21 第三节 定位精度因子的分析 ................................................................................ 22 第四节 多通道信号的接收质量分析 .................................................................... 24 第五节 天空卫星视图的分析 ................................................................................ 25 第六节 相对位置移动轨迹的跟踪研究 ................................................................ 27 第七节 本章小结 .................................................................................................... 28

第四章 实验与结果分析............................................................................................ 30

2

中国科学技术大学毕业论文

第一节 基于NMEA-0183码应用软件的程序实现 ............................................. 30 第二节 实验结果分析 ............................................................................................ 38 第三节 本章小结 .................................................................................................... 47

第五章 结论与展望.................................................................................................... 48

参 考 文 献................................................................................................................ 49

3

中国科学技术大学毕业论文

摘 要

全球定位系统(GPS)在定位导航和地球空间测绘上都有着极其广泛的应用,用户通过GPS终端设备获取GPS定位数据,实现导航定位的应用。

软件无线电(SDR)作为无线通信领域的一项突破性关键技术,被称为二十一世纪“无线电世界的个人计算机”。它是无线通信领域继模拟到数字、固定到移动的第三次技术革命。使用软件无线电思想构建的GPS软件接收机,在开放性和可重配置性上有着传统接收机所无法比拟的优势,对接收算法研究和后续优化有着重大研究意义。

本文的研究工作涉及GPS软件接收的关键技术研究、捕获跟踪算法与研究分析,以及基于NMEA-0183数据帧的实时采集软件设计与研究。通过实时采集的数据帧,来分析和评估定位精度因子、信号质量、卫星几何特征以及定位应用中的相对位置移动轨迹等,实现GPS接收应用的定量研究。研究过程中,形成了高精度相对定位轨迹的创新实现方法。实验证明:本文的研究结果可以拓展到多模式多系统的增强定位系统研究和区域位置服务的应用研究。

关键词:软件无线电(SDR);GPS;NMEA-0183;基于位置服务(LBS)

4

中国科学技术大学毕业论文

Abstract

Global Positioning System (GPS) is widely applied in navigation and earth mapping. The customers use GPS devices to achieve navigation and positioning by getting the GPS data.

As a key technology breakthrough in the field of wireless communication, Software Defined Radio (SDR) is known as “the PC in wireless world” in the 21st century. Following the revolution from analog to digital, fixed to mobile, SDR is the third technological revolution in this field. The software GPS receiver, based on the theory of SDR, has incomparable advantages over the traditional GPS receiver in openness and re-configuration. It also has great significance in the follow-up researching and optimizing.

In this paper, some key technologies of software GPS receiver ware researched and the real-time NMEA-0183 data acquisition software was realized. The GPS positioning information such as geometric dilution of precision (GDOP), Signal to Noise Ratio (SNR) of GPS signals, geometric characteristic of GPS satellites and trajectory of relative position was quantitatively analyzed. A new method to form a high-precision shift trajectory was presented. All these works described above can be used in the further research on the enhanced positioning in multi-mode system and location based services (LBS).

Key words: Software Defined Radio (SDR); GPS; NMEA-0183;

Location Based Services (LBS)

5

中国科学技术大学毕业论文

第一章 绪论

第一节 GPS的概念及发展概况

GPS是全球定位系统(Global Positioning System)的英文缩写,它可以用来实现连续的实时三维导航。所谓导航(navigation),在这里的定义是实时的测定运动载体在途行进时的位置和速度,引导运动载体沿一定的航线经济而安全的到达目的地[1]。

完成高精度的导航定位,需要导航装置作为辅助手段。其中有一类导航装置,发射无线电信号,使用户能够通过终端设备接受多个该类导航装置的无线电信号计算出其位置,我们称这类导航装置为无线电导航装置。

无线电导航装置通常可分为路基和星基两大类。路基无线电导航基于较少的无线电标台站,不但精度和范围有限,而且易受无线电干扰。50年代末,前苏联发射了第一颗人造卫星,美国科学家通过跟踪研究,发现了多普勒频移现象,并利用该原理促成了多普勒卫星导航定位系统TRANSIT的建立,开创了陆海空卫星无线电导航的新时代,这是第一代星基无线电导航装置。但由于多普勒卫星轨道高度低,系统含星座较少,所以存在这轨道精度难以提高,定位时间间隔过长等明显缺点。正是这些缺陷,促使了美国的全球定位系统(GPS)和俄罗斯的全球导航卫星系统(GLONASS)的快速发展。

美国的全球卫星定位系统(GPS)计划自1973年起步,1978年发射首颗导航卫星,1994年完成24颗中等高度圆轨道(MEO)卫星组网,历时16年,耗资120亿美元。至今,已先后发展了3代卫星。

整个GPS系统由空间星座部分、地面监控部分和用户设备部分组成。空间星座部分主要由24颗GPS卫星(21颗卫星加3颗轨道备用卫星)组成,卫星高度20200km,轨道周期11小时58分,有6个轨道面,每个轨道至少4颗卫星,轨道倾角55°。这样的设计保证了地球上及近地空间在任何时间都至少可见4颗卫星满足最基本的定位要求。地面监控部分包括卫星监控站、主控台和信息注入站。监控站是在主控站的直接控制下的数据自动采集中心,对GPS卫星进行连续监测;主控站设在美国本土的科罗拉多(Colorado)的法尔孔(Falcon)空

6

中国科学技术大学毕业论文

军基地,协调和管理地面监控系统,同时计算各卫星的星历、时钟误差和大气修正参数并送到注入站,控制卫星,使卫星正常运转;注入站的主要工作是将卫星轨道、时钟纠正信息,控制命令上行注入卫星。用户设备部分就是用户进行导航定位的终端设备,由接收机硬件、数据处理软件及微处理器构成[2]。

GPS卫星采用码分多址(CDMA)技术在两个频率上广播测距码和导航。这两个载波频率分别是L波段的L1(1575.42MHz)和L2(1227.60MHz)。测距码有C/A码和P码,分别用于民用的标准定位服务(SPS)和军用的精密定位服务(PPS),两者在定位精度上有着较大差异。导航数据主要是卫星轨道坐标、卫星钟差方程式参数、电离层现时修正等广播星历,它向用户提供了定位一直参考点(信号发射卫星)的起算坐标和系统参考时间及相关传播误差修正[3]。

“GPS的应用,仅受人们的想象力制约。”GPS问世以来,已充分显示了其在导航定位领域的霸主地位。许多领域也由于GPS的出现而产生革命性变化。目前,几乎全世界所有需要导航定位的用户,都被GPS的高精度,全天候,全球覆盖,方便灵活和优质价廉的特点所吸引。

按其作用,GPS的应用可分为以下三类:

1. 导航,主要是为船舶、汽车、飞机等运动物体进行定位导航。例如:船舶远洋导航和进港引水;飞机航路引导和进场降落;汽车自主导航;地面车辆跟踪和城市智能交通管理;紧急救生;个人旅游及野外探险;个人通讯终端。

2. 授时校频。例如:电力,邮电,通讯等的时间同步;准确时间频率的授入。

3. 高精度测量。例如:各种等级的大地测量,控制测量;道路和各种线路放样;水下地形测量;地壳形变测量,大坝和大型建筑物变形监测;GIS应用;工程机械(轮胎吊,推土机等)控制;精细农业。

第二节 软件无线电技术的发展概况

在1992年5月美国电信系统会议上,Jeo Mitola首次提出了软件无线电(Software Defined Radio)的概念。软件无线电(SDR)是指在一个开放的,标准化的、模块化的通用硬件平台上,通过软件加载实现各种无线电通信功能(如工作频段、调制解调类型、数据格式、加密模式和通信协议等)。其核心是:使

7

中国科学技术大学毕业论文

宽带A/D、D/A转换器并尽可能地靠近天线;无线电功能尽可能地通过软件来实现。理想的软件无线电主要由天线、射频前端、宽带A/D和D/A转换器、通用或专用数字信号处理器以及各种软件组成。

射频天线模块RF模块A/D D/A高速(DSP)处理器软件实现各种功能模拟接口A/D D/A数字接口

由于计算机技术,特别是微处理机在高速数字信号处理技术和通信中的应用,无线通信系统从模拟向数字转化;最近快速发展的宽带模数转换和信号处理技术、日益提高了的硬件工艺水平、日臻成熟的可编程器件和EDA 工具,使软件无线电的概念转化为实际应用成为可能。无论是从军用还是商用或是民用的要求考虑,软件无线电都是通信系统用户需求的必然产物。军用无线电系统为了实现海、陆、空、天一体化的立体战争环境,要求在不同频段、不同通信制式和不同的管理体制下均可以互联通信;商业和民用客户要求通信系统能支持多媒体服务,包括移动通信、高速传真和高速的数据传输等。为了满足这些服务需求,物理层需要有高度灵活性和适应性,必须是兼容多标准操作和功能。传统数字通信系统对多标准通信解决方法并不灵活,当介质和信道特性改变时,硬件就必须完全更新。尤其是在当今无线电标准和接口种类层出不穷的时期,为了节约成本,从经济角度考虑,传统的无线电通信系统必将被每层可软件重构的软件无线电设备所取代。软件无线电的出现,使无线电技术由以硬件为主的时代走向以软件为主的时代,事实上它是继模拟通信技术、数字通信技术之后的第三代无线通信技术。

软件无线电具有以下一些特点:

1. 软件无线电具有完全的可编程性,可通过软件编程来实现无线电台的功能,包括对无线波段、信道调制、接入方式、数据速率的编程等,因此通过程序进行控制和操作,这是软件无线电最突出的特点之一。但是软件无线电不是不要硬件,而是把硬件作为一个基本平台来架构。

2. 软件无线电的另一个重要特点是A/D、D/A变换与天线十分靠近,因而能比较迅速地将接收到的射频模拟信号转换为数字信号,比较晚地将要发送的数

8

图1.2 理想软件无线电模型中国科学技术大学毕业论文

字信号变换为射频模拟信号,这就充分地利用了数字信号处理 (DSP)器件的功能和软件的资源。

3. 软件无线电遵循开放平台的设计思想,采用了模块化的结构,因而能够方便的进行硬件模块的更换和软件的升级,并能通过运行不同的算法,实时的配置自己的信号波形,提供各种各样的通信业务。其新业务仅需在电台中加载新的软件模块即可实现,从而降低了通信设备的硬件成本。

第三节 本文的主要研究内容及意义

一、课题背景

LBS(Location Based Services,基于位置服务)是定位技术的应用开发,它的工作原理是:用户终端设备(一般为手机、PDA、手提电脑等移动终端)采用卫星定位或其它方式获取用户位置等信息,并实时地将这些信息通过移动通信方式传至服务器,服务器根据用户的请求做出响应,并将响应回馈到用户终端。

位置信息在大众生活中占据着越来越重要的地位,尤其是从服务于人的信息应用发展到借助传感器的分布式网络,再到以机器自动装置为主的网络集群,位置信息无处不在。近年来,随着电子、计算机、信息等技术的飞速发展和交叉研究,位置信息服务不再局限于运营商的一项增值业务。它已经将电子地图、车载导航、无线导航、交通信息四个领域形成了产业模式。可以预测,位置服务已经由业务的概念逐步外延到产业发展层面上。LBS的发展已经进入了黄金时期。面向数字化城市的基于位置服务的系统实现了定位、通信和GIS技术的集成以及生活指南信息的获取,为人们的生活带来了很多便利,在未来数字化工作和生活中也将发挥重要作用[4]。

本文的研究工作受上海市国际合作基金项目“基于位置的移动信息服务关键技术研究与应用示范”的资助,项目是针对GPS定位信息在区域范围内的分布和基于地面卫星增强系统三维高精度定位系统的性能评估与验证。本文的研究正是接收系统中数据帧应用软件设计与研究,同时基于软件无线电的GPS接收机开发是本文研究的系统基础。

9

中国科学技术大学毕业论文

二、主要研究内容

在本文中,主要阐述软件无线电(SDR)概念,NMEA-0183协议,以及基于软件无线电思想设计的GPS软件接收机的体系结构。并以PC机为平台, Visual C++的MFC框架为基础,设计了GPS应用分析软件。通过串口连接,从接收机中读取基于NMEA-0183协议的数据帧,实现了数据帧显示,导航信息显示,接收机多通道卫星信号信噪比(SNR)分析,天空卫星视图显示,定位精度因子(GDOP)分析,用户位置跟踪,数据保存回放等主要功能,并使用GARMIN 15L GPS接收机模块和Fastrax itrax 300接收机模块对软件的性能进行了验证和分析。

各章分述如下:

第一章简要介绍了GPS系统和软件无线电的基本概念。

第二章中针对软件无线电的特点,描述了GPS软件接收机的构架,以及中频数字处理中的两步核心流程的算法。

第三章介绍了NMEA-0183协议和使用Windows API 的串口通信机制,给出了通过读取NMEA码可以实现的接收机功能描述。

第四章描述了基于NMEA-0183协议的GPS接收机软件的实现过程,并对其功能加以验证,综合分析影响定位精度和位置移动轨迹的因素。

第五章为总结以及本文所描述的GPS应用软件的发展前景。

三、课题意义

降低定位精度因子,是在伪距测量误差一定的情况下优化GPS定位精度的有效途径。相对位置移动轨迹跟踪测量是GPS对在测绘学上重要应用。通过编写GPS应用分析软件,研究如何影响定位精度因子的因素和引发跟踪轨迹误差的来源对提高GPS定位精度,实现精确测绘有着重要的意义。而高质量的定位和跟踪轨迹能够使区域位置服务更为精确、高效。

10

中国科学技术大学毕业论文

第二章 基于软件无线电技术的GPS接收机研究

第一节 基于软件无线电技术的系统设计构架

软件无线电的体系结构是实现软件无线电这一概念的具体设计结构,包括硬件、软件和接口协议等部分。

开发调试环境应用层硬件系统接口协议硬件驱动层信道复用层用户/系统模块软件部分图2.1 基于软件无线电系统的体系结构

理想的软件无线电接收机的硬件应包括宽带射频信号接受部分、高速采样部分(A/D),中央协调控制部分和总线接口部分。由数据总线和控制总线将各部连接在一起,为硬件设备驱动层上的软件提供物理支持。当系统处于接受状态时,无线电信号通过天线耦合到宽带射频接收部分,通过下变频采样,转化为中频数字信号通过数据总线传输到接口主机中。

软件部分应包括硬件驱动层、信道复用层、开发调试环境层、用户/系统模块层和应用层组成。硬件驱动层主要实现了对硬件资源的调用,为上层软件提供了良好的硬件操作接口;信道复用层主要实现了多路信号复用的通信功能;开发调试环境层工作在用户主机上,为用户提供了易用开放的软件开发平台;用户/系统模块层主要包括了用于系统开发的底层模块,通过调用这些模块可以实现大部分通信功能;应用层则是以开发好的各种软件无线电应用,可以脱离开发调试环境单独使用[5]。

接口协议部分主要由数据帧格式定义和通信过程操作时序组成。该协议要能过表达硬件平台应用的各种功能和设备驱动层的各种请求,并具备可扩展性。

11

中国科学技术大学毕业论文

第二节 软件无线电设计的关键技术分析

一、射频转换(RF到IF)

目前A/D 转换器的速率不高,很难实现在射频(RF)及较高的中频直接进行A/D转换,所以在接收机前端处理中,通常要先进行下变频(Down-conversion)。RF变换模块需要完成的任务包括:功率放大、接收预防大和RF信号与IF信号之间的变换。它的设计目的是使下一步中的A/D发挥最优性能。一个窄带超外差式接收机的射频部分与宽带软件无线电的射频部分相比有相似之处,但并不相同。宽带的软件无线电的射频部分要求:在滤波器的滚降特性的锐利程度受到损害的情况下,强调仍然能提供线性的功率放大。

二、中频AD/DA

A/D变换器要求有较高的采样速率和分辨率,以便在恢复时降低失真。除此之外,还要求有较大的线性动态范围,以减少互调失真,使接收的弱信号仍能在强的干扰信号中检测出来。它在移动通信中有远近效应时尤为重要。随频率和带宽的增加,采样速率和动态范围也将增大。

此外,信噪比、无寄生动态范围、噪声功率也是选择A/D转换器时的重要技术指标。信噪比(SNR)是度量一个信号的传输质量,与转换器的分辨率直接相关。无寄生动态范围(SFDR),是度量变换器中的非线性误差源,用来评估强信号下A/D变换器同步检测弱信号的能力。噪声功率比(CNR),定义为陷波滤波器带内噪声功率谱密度之比,可提供与如何限制信道间互干扰的信息。

三、数字信号处理模块

在数字信号处理模块的实现方式上,主流趋势为DSP(Digital Signal Processor,数字信号处理器)、FPGA(Field Programmable Gate Array,现场可编程门阵列)和ASIC(Application Specific Integrated Circuits,专用集成电路)。可以简单理解为,DSP以软件方式,FPGA和ASIC以硬件方式实现数字信号处理算法。由于DSP和FPGA均具备可编程能力,它们比较适合软件无线电的需要。

12

中国科学技术大学毕业论文

基于DSP的软件无线电系统通过软件编程实现了用户参数和波形的改变,他的特点是通用性、灵活性好,开发容易。基于FPGA的系统由于FPGA具有在线编程,动态改变器件逻辑功能的特性,实现物理器件的分时复用,因而有着比DSP更好的灵活性和更低的成本。ASIC则是实现了纯粹的数字无线电系统。

为了更好的体现软件无线电通用、灵活、开放的特点,基于通用处理器的软件无线电系统也随之产生,这正是源于通用CPU的设计在可编程型、通用行、开放性上的巨大优势,是它成为了最接近理想软件无线电的平台,这也是软件无线电在实现方式上的发展趋势。

四、算法软件实现

软件无线电的本质是用软件定义无线通信。通过软件,系统实现了从信号解调、滤波、捕获跟踪等一系列原先要通过复杂硬件才能完成的基本软件无线点功能。次外,还应针对不同的软件无线点的设计需求,在局部进行软件优化处理。软件算法的实现直接决定了系统的功能与性能。

第三节 GPS软件接收机的设计原理

GPS信号接收机是GPS全球导航定位系统的用户设备,是实现导航定位的终端仪器。

传统的GPS接收机的虽然种类繁多,但在结构上通常可分为射频前端(RF Front-end)、信号处理单元(Signal Processing)和导航处理(Navigation Processing)三部分。

在前端中,接收机通过天线耦合接受GPS信号,经过预放大(Pre-amp)、下变频(Down-conversion)和滤波(Filter)后生成中频信号(IF),对后通过A/D转换器采样,将模拟信号转换为数字信号(Digital IF)传输到信号处理单元中。

信号处理单元将已经接受到的中频数字信号进行捕获跟踪处理,并对导航信息解调,以得到定位伪距(Pseudorange)、载波相位及星历数据(Ephemeris)。

最后在导航处理单元中,计算出用户的经纬度坐标、行进速度等信息,实现用户的导航定位。

13

中国科学技术大学毕业论文

射频前端预放大下变频Digital IF滤波A/D信号捕获信号跟踪信号处理单元导航信息解调导航处理单元图2.3.1 GPS接受机结构图

GPS软件接收机是在软件无线电(SDR)思想知道下实现的。它继承了软件无线点的设计特点,即使A/D转换器尽可能的靠近天线,其它部分实现软件化,所以GPS软件接收机与传统接受机相比,保留了射频前端,由软件构架对中频数字信号进行捕获和跟踪。一旦完成了跟踪,通过子帧同步和奇偶校验,就可以将输出的信号转换成导航数据。从子帧中可以得到星历数据。根据星历数据可以确定当前卫星的位置。接受机到卫星之间的伪距也可以确定。只要获得了所有必需的信息,就可以计算出用户的位置,并将其转化为所需的坐标系统中[6]。

GPS软件接收机结构如下:

捕获中频数字信号跟踪环奇偶校验子帧同步测量推倒导航处理内部时钟图2.3.2 GPS软件接收机结构

14

中国科学技术大学毕业论文

第四节 软件接收机中频数据处理的核心算法

一、C/A码信号捕获

为了跟踪GPS信号并进行信息解码,就必须先用捕获程序来检测信号的存在。一旦检测到信号,必须测出两个重要参数,一个是C/A码信号的延时,另一个是载波信号的载波频率。采集的数据通常包括几个卫星的信号,每个信号的C/A码不同,开始时间不同,多普勒频移不同。捕获程序要找到C/A码相位,并用这个信息对频谱接扩,输出连续波信号,就可以得到它的载波频率。C/A码信号延时和载波频率两个参数将传递到跟踪程序中。

图2.4.1 GPS信号捕获

相关器I(同相)、Q(正交)通道第k次相关输出分别为:

1I(k)?AD(k)R[?(k)]sinc{[?wd(k)]N/2}cos?k?nI(k)

21Q(k)?AD(k)R[?(k)]sinc{[?wd(k)]N/2}sin?k?nQ(k)

2其中A为信号幅度,D(k)为导航电文,?(k)为码相位估计偏差,?wd(k)为多普勒频移估计偏差,R[?(k)]为复制码自相关函数,N为积分码片长度,?k为载波相位,nI(k)、nQ(k)为噪声项。

1S2(k)?I2(k)?Q2(k)?A2D2(k)R2[?(k)]sinc2{[?wd(k)]N/2}

4因此当本地产生的载波频率和复制码相位与检测信号完全匹配时,相关器的最终输出为最大值。

由于码相位与多普勒频移的不确定性,为了获得相关峰值,以判定信号捕获与否,需要对码相位和多普勒频率进行二维搜索,若码相位搜索步长为?个码

15

中国科学技术大学毕业论文

片,多普勒频率搜索步长为?f,则一个码相位单元与一个多普勒频移单元组成的二维搜索单元如下。

相位τΔf频率

当接收到信号频率和相位落入该搜索单元时,S(k)2取得极大值。将S(k)2与识别门限进行比较,根据判定算法进行判定是否成功捕获到信号。

二、C/A码信号跟踪

跟踪信号的基本方法是根据输入信号构造一个窄带滤波器,当输入信号的频率随时间而变化时,滤波器的中心频率必须跟随信号变化。实际的跟踪过程中,窄带滤波器的中心频率是固定的,但本振信号要随输入信号的频率变化而变化,通过比相器对输入信号和本振信号的相位对比,由于窄带滤波器的带宽很窄,与捕获相比,跟踪方式有着更高的灵敏度。

跟踪的主要目的是对捕获的信号进行载波和码相位的精确跟踪,以确保本地产生复制的载波和码信号相位与输入信号严格同步,为数据解调做进一步准备。为了跟踪GPS信号,必须去掉C/A码信息,因此跟踪过程需要两个环路来完成,一个跟踪C/A码;另一个环跟踪载波频率,主要由各类锁相或锁频环来完成[7]。

16

中国科学技术大学毕业论文

码环MA超前C/A滞后开平方Ξ开平方e/d选择MA载波频率即时A/D连续波CW载波环低通滤波器振荡器VCO低通滤波器低通滤波器图2.4.2 载波和码跟踪环路图输出90°反正切

C/A码锁相环有3个输出:超前码、延时码和即时码。即时码用于将输入的数字信号中的C/A剥离掉,输出是含有导航数据引起相位跳变的CW信号,并将其作为载波环的输入。载波环的输出信号是频率为输入信号的载频CW信号,这个信号可用于剥离输入信号中的载波信号,剥离后是一个只包含C/A码而没有载波的信号,这正好是码环的输入。

第五节 本章小结

自从软件无线电这一概念被提出之后,就得到了全世界无线电领域的广泛关注。由于软件无线电所具有的灵活性、开放性等特点,使其在无线通信中获得了广泛应用。利用软件无线电概念的设计GPS软件接收机,继承了软件无线电系统的优点,由软件处理从射频前端产生的中频数字信号,实现GPS信号的捕获、跟踪及导航数据解调,完成了对当前位置伪距信息的解算,并通过坐标转换实现定位导航。

17

中国科学技术大学毕业论文

第三章 基于NMEA-0183码的分析与研究

第一节 GPS定位数据NMEA-0183码的介绍

NMEA协议是为了在不同类型的GPS导航设备中建立统一的BTCM(海事无线电技术委员会)标准,由美国国家海洋电子协会(NMEA-The National Marine Electronics Association)制定的GPS串口通讯协议。GPS接收机将用户位置、速度,及当前的相关卫星数据以NMEA-0183协议的标准规范通过串口传送到PC机,PDA等终端设备。

NMEA-0183协议解决了不同品牌、不同型号的GPS接收机之间实现任意连接的接口问题。目前大多数常见的GPS接收机、GPS数据处理分析软件、导航系统大多支持或至少兼容NMEA-0183协议标准。

NMEA-0183协议对电器和数据规格都做了相应的规定。在物理层,它要求通讯是建立在串口的基础上的;在数据链路层,它规定了传输波特率为4800,数据位为8bit,无奇偶校验及握手信号,停止位为1bit;在应用层,NMEA-0183码是ASCII编码的串行数据,由帧头、帧尾和帧内数据组成。它规定了每条信息帧都以“$”作为起始符号,接下来的5个字符决定了信息帧的类型构成帧头,其后的各个数据以 “,”作为分隔符构成帧内数据,信息帧的最后一个数据紧接着“*”加上两位的16进制的校验和(Checksum)构成帧尾,并以结束此信息帧(见下图)。

根据本文所设计的GPS应用软件,下面着重介绍软件所涉及到的相关数据帧格式。

1) GGA —— GPS定位信息(Global Positioning System Fixed Data) $GPGGA,<1>,<2>,<3>,<4>,<5>,<6>,<7>,<8>,<9>,M,<10>,M,<11>,<12>*hh 18

中国科学技术大学毕业论文

位置 <1> <2> <3> <4> <5> <6> <7> <8> <9> M <10> M <11> <12> *hh 内容 UTC时间 纬度 纬度半球 经度 经度半球 GPS状态 解算使用卫星数 HDOP 海拔高度 单位 地球椭球面相对大地水准面的高度 单位 差分时间 差分站ID号 校验和(Checksum) 描述 hhmmss.sss(时分秒) ddmm.mmmm N(北纬)或S(南纬) ddmm.mmmm E(东经)或W(西经) 0=未定位,1=非差分定位,2=差分定位,6=正在估算 00 ~ 12(0也将被传输) 水平精度因子 米 米 从最近一次接收到差分信号开始的秒数,如果不是差分定位将为空 0000 ~ 1023 信息传输结束 2) GSA —— 当前卫星信息(GNSS DOP and Active Satellites) $GPGSA,<1>,<2>,<3>,<3>,,,,,<3>,<3>,<3>,<4>,<5>,<6>*hh

位置 <1> <2> <3> <3> …. <3> <4> <5> <6> *hh 内容 模式 定位类型 通道1上卫星PRN 通道2上卫星PRN …. 通道12上卫星PRN PDOP HDOP VDOP 校验和(Checksum) 描述 M=手动,A=自动 1=没有定位,2=2D定位,3=3D定位 01 ~ 32用于解算的卫星PRN 01 ~ 32用于解算的卫星PRN …. 01 ~ 32用于解算的卫星PRN 位置精度因子(0.5 ~ 99.9) 水平精度因子(0.5 ~ 99.9) 垂直精度因子(0.5 ~ 99.9) 信息传输结束

19

中国科学技术大学毕业论文

3) GSV —— 可见卫星信息(GNSS Satellites in View)

$GPGSV,<1>,<2>,<3>,<4>,<5>,<6>,<7>,…,<4>,<5>,<6>,<7>*hh

位置 <1> <2> <3> <4> <5> <6> <7> …. <4> <5> <6> <7> *hh 内容 GSV语句的总数 当前GSV语句数目 显示卫星的总数目 卫星PRN 卫星仰角 卫星方位角 信噪比SNR …. 卫星PRN 卫星仰角 卫星方位角 信噪比SNR 校验和(Checksum) 描述 1 ~ 3 1 ~ 3 00 ~ 12 通道1卫星PRN(01 ~32 ) 通道1卫星仰角(0 ~ 90) 通道1卫星方位角(0 ~ 359) 0 ~ 99,未跟踪时为空 …. 通道4卫星PRN(01 ~32 ) 通道4卫星仰角(0 ~ 90) 通道4卫星方位角(0 ~ 359) 0 ~ 99,未跟踪时为空 信息传输结束

4) RMC —— 推荐定位信息(Recommended Minimum Specific GNSS Data)

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

位置 <1> <2> <3> <4> <5> <6> <7> <8> <9> <10> <11>

内容 UTC时间 定位状态 纬度 纬度半球 经度 经度半球 地表速度 地表航向 UTC日期 磁偏角 磁偏角方向 20

描述 hhmmss.sss A=有效定位,V=无效定位 ddmm.mmmm N(北纬)或S(南纬) ddmm.mmmm E(东经)或(西经) 000.0 ~ 999.9节 000.0 ~ 359.9 ddmmyy 000.0 ~ 180.0 E(东)或W(西)

中国科学技术大学毕业论文

<12> *hh 模式指示 校验和(Checksum) A=自主定位,D=差分,E=估算,N=数据无效 信息传输结束

5) ZDA —— 时间信息(SiRF Timing Message) $GPZDA,<1>,<2>,<3>,<4>,<5>,<6>*hh

位置 <1> <2> <3> <4> <5> <6> *hh

内容 UTC时间 日 月 年 时区小时 时区分钟 校验和(Checksum) 描述 hhmmss.sss 01 ~ 31 01 ~ 12 1980 ~ 2079 与UTC的偏量 与UTC的偏量 信息传输结束 第二节 基于WINDOWS API的串口通信研究

串行端口是一种非常重要的通信资源,它是CPU和串行设备间的编码转换器。当数据从CPU经过串口发送出去时,字节数据转换为串行的位。在接收时,串行的位被转换为字节数据。

串行端口在传输方式上可分为3种:单工通信、半双工通信和全双工通信。在通信方式上又可分为同步通信方式和异步通信方式两种。本文所设计的软件传输通信方式是基于RS-232串行接口标准的全双工异步通信方式。

在Windows下开发串行通行程序的方法两种:MSComm控件编程和Windows API串口编程。由于利用Windows API函数进行串口程序设计时较前者具有更高的灵活性和可移植性,故本文中软件应用了这种通信方式。

在Windows环境下,串口是系统资源的一部分,应用程序要进行串口通信,必须先向系统申请资源(打开串口),并在结束通信后释放资源(关闭串口)。由于串口资源在Win32环境中是被作为文件来对待的,因此,在通信过程中,可

21

中国科学技术大学毕业论文

将串口作为文件来处理,例如使用CreateFile,ReadFile函数分别来打开和读取串口资源。[8]串口通信的实现大致有以下几个过程。

1. 打开串口,初始化串口配置

使用CreateFile函数打开指定串行端口(例如设定逻辑端口名称为“COM1”)获取串口句柄,并设定共享模式为独占,访问模式为读写,创建方式为打开已存串口,传输方式为异步。

在获取串口句柄后,设置输入和输出缓冲区的大小(本软件中缓冲区大小为4096),超时信息(COMMTIMEOUTS结构体初始化)及串口信息(串口设备

控制块DCB初始化)。针对NMEA-0183协议的相关规定,在这里对串口信息(串口设备控制块DCB)中的相关变量进行修改,将波特率(BaudRate)默认值设定

为4800,每字节位数(ByteSize)为8bit,无奇偶校验位,停止位为1bit。

2. 全局监控串口事件

建立全局的线程函数ThreadFunction(LPVOID pParam),用于检测串口中的事件,一旦检测到串口中有数据接受,将发送消息WM_COMMNOTIFY,调用OnCommNotify(WPARAM wParam, LPARAM lParam)消息处理函数接受数据。

3. 串口数据读写

在进入消息处理函数后,使用DWORD ReadComm(char *buf, DWORD dwLength)来获取串行数据(数据获取通过文件读操作ReadFile完成)。并针对获取的串行数据进行处理分析,提取有用信息加以保存,为后续应用服务。

4. 关闭串口,释放资源

禁止所有事件,关闭串口设备句柄。

第三节 定位精度因子的分析

随着全球定位系统(GPS)的普及,定位导航所涉及的领域越来越多,用户对于定位精度的要求也越来越高。影响定位精度的主要因素是伪距的测量误差和已知卫星位置的误差。造成伪距测量误差的因素很多,例如:电离层、对流层、多普勒频移等。对这些因素的讨论已经比较成熟,它们只能在一定范围内降低伪距测量误差,并不能从定位系统的体制上改善定位精度。因此,若要提高定位系统的定位精度,有必要卫星位置关系所引起的误差。

22

中国科学技术大学毕业论文

定位精度衰减因子(Geometric Dilution of Precision,GDOP)是一个反映卫星之间相对位置关系对定位误差影响大小的物理量。通过调整卫星之间以及卫星和用户装置的几何位置关系,减小GDOP值,进而从体制上降低定位误差,在伪距测量误差基本相同的情况下,提高定位精度[9]。

GDOP包括位置、水平、垂向和时间精度衰减因子(PDOP、HDOP、VDOP和TDOP)四个参数,这5个DOP分别表示定位定时总误差?g、位置误差?p、水平位置误差?h、垂直位置误差?v和时钟误差?t对测距误差?的放大倍数,即:

GDOP?(g11?g22?g33?g44)?12?g ?PDOP?(g11?g22?g33)?12?p ?HDOP?(g11?g22)?VDOP?(g33)1212?h ???v ?TDOP?(g44)?12?t ?其中gii(i?1,...,4)是G?(HT?H)?1的对角线元素,H是观测矩阵。 通过观察以上5个公式,可以发现GDOP可以有PDOP和TDOP导出:

GDOP?(PDOP)2?(TDOP)2

卫星导航系统至少要有4颗卫星来进行定位计算,典型情况采用4星定位,此时GDOP还可表示为:

GDOP??Trace[H(H)]6V*T*?12?Tr 6V12式中H*是H的伴随矩阵,V是用户到卫星的单位矢量末端四点联成的四面体体积。随着四面体体积V的增大,GDOP减小。.当V达到最大时GDOP最小,由于正四面体的体积最大。可知一颗卫星在用户头顶,另外三颗星在用户与地面相切平面上的投影互成120°,卫星仰角等于接收机屏蔽角,这四颗卫星与用户的相对几何位置最佳[10]。

在标准的NMEA-0183码中可以获取PDOP数据,但无法获取TDOP数据。

23

中国科学技术大学毕业论文

市面上的GPS接收机厂商中,GARMIN公司生产的接收机除了对NMEA-0183码支持外,还有着一些GARMIN定义语句,如PGRME,PGRMF等。其中PGRMF中提供了对TDOP的描述:

$PGRMF,<1>,<2>,<3>,<4>,<5>,<6>,<7>,<8>,<9>,<10>,<11>,<12>,<13>,<14>,<15>*hh

位置 <1> <2> <3> <4> <5> <6> <7> <8> <9> <10> <11> <12> <13> <14> <15> *hh 内容 GPS周数 GPS秒数 UTC日期 UTC时间 GPS秒跳数 纬度 纬度半球 经度 经度半球 模式 定位类型 地面速率 地面航向 PDOP TDOP 校验和(Checksum) 描述 0 ~ 1023 0 ~ 604799 ddmmyy hhmmss ddmm.mmmm N(北纬)或S(南纬) ddmm.mmmm E(东经)或(西经) M=手动,A=自动 E(东)或W(西) 0 ~ 1851公里/小时 000 ~ 359 0 ~ 9 0 ~ 9 信息传输结束

第四节 多通道信号的接收质量分析

通过读取分析从串口发送来的NMEA-0183码数据,可以实现对接收机各通道中卫星信号信噪比(SNR)的动态显示。

其中GPGSA和GPGSV是实现该功能的相关数据帧。它们的数据格式在3.1中已有描述,下面通过实际截取的NMEA-0183码来阐述如何实现多通道信号质量的解读。

$GPGSA,A,3,16,14,31,32,06,,,,,,,,7.8,2.2,7.5*38

$GPGSV,3,1,12,31,58,006,34,16,49,235,27,14,47,135,22,32,37,230,15*7C

24

中国科学技术大学毕业论文

$GPGSV,3,2,12,29,32,070,,06,31,163,25,20,19,299,,30,17,045,22*7D $GPGSV,3,3,12,22,04,176,,23,03,318,,05,00,049,,03,00,197,*72

GPGSA的第3位到第14位表示用于解算的卫星PRN,即被显示PRN的卫星已被接收机捕获并跟踪。故16、14、31、32、06这5颗卫星已处于跟踪状态。

GPGSV数据帧共有3行,通过解读可知当前天空中可用卫星应有12颗。帧内数据包含了每个通道上卫星的PRN及其对应的信噪比(SNR)。如果信噪比位为空,则表示SNR为零,即未捕获该卫星。如果信噪比位有数据,但在GPGSA数据帧中未记录该卫星的PRN,则表示该卫星信号仅处于捕获状态,未被跟踪。由此可以得出当前时刻接收机各通道信号的接收质量分析(见下表)。

通道 1 2 3 4 5 6 7 8 9 10 11 12 卫星PRN 31 16 14 32 29 06 20 30 22 23 05 03 信噪比SNR 34 27 22 15 25 22 捕获状态 跟踪 跟踪 跟踪 跟踪 未捕获 跟踪 未捕获 捕获 未捕获 未捕获 未捕获 未捕获

第五节 天空卫星视图的分析

对于确定数据精确度和GPS稳定性,卫星的位置是非常重要的信息。 GPS卫星二十四小时在轨道上旋转,它们在任意时间,任意地点都至少有六颗被用户观测到,这样就可以尽量减少接受盲点。卫星的位置可以用天空视图来表示,它是以卫星相对于用户当前位置的仰角和方位角来定义的圆坐标系。由圆心向外,仰角从90°递减到0°。仰角表示卫星与水平面的夹角,0°为水平,90°为“天顶”(即当前位置的正上方)。方位角则以北极N为0°,顺时针旋转。

25

中国科学技术大学毕业论文

N0315°4045°W90E225°S图3.5 天空视图坐标系135°

这GPGSV数据帧中,可以获取各通道中卫星的仰角和方位角。以前文中所截取的NMEA-0183码为例,各卫星的仰角、方向角和状态如下:

卫星PRN 31 16 14 32 29 6 20 30 22 23 5 3 仰角 58 49 47 37 32 31 19 17 4 3 0 0 方向角 6 235 135 230 70 163 299 45 176 318 49 37 状态 跟踪 跟踪 跟踪 跟踪 未捕获 跟踪 未捕获 捕获 未捕获 未捕获 未捕获 未捕获 由以上数据可绘制当前卫星天空视图(如下图)。

26

中国科学技术大学毕业论文

图中,红色表示该卫星未捕获,蓝色表示卫星处于捕获状态,绿色表示卫星处于跟踪状态。

第六节 相对位置移动轨迹的跟踪研究

一旦有4颗以上的卫星处于捕获状态,那么接收机就可以得出用户的当前地理位置,即经度纬度信息。在实际应用中,用户经常希望了解自己的行动轨迹以及运动距离,这就需要将接收机所接受到的经纬度信息加以整理,并以其中的某个时间点的数据作为原点(用户规定),将其他数据以该原点换算为相对坐标(与原点经纬度相减),即可在经纬度坐标系上得到用户的相对位置移动轨迹。

下面为一段NMEA-0183码数据(仅提取了GPGGA数据帧):

$GPGGA,115920.000,3116.9623,N,12128.7664,E,1,05,1.6,62.6,M,8.1,M,,0000*5B $GPGGA,115921.000,3116.9619,N,12128.7671,E,1,05,1.6,61.9,M,8.1,M,,0000*5B $GPGGA,115922.000,3116.9616,N,12128.7676,E,1,05,1.6,61.6,M,8.1,M,,0000*5F $GPGGA,115923.000,3116.9609,N,12128.7681,E,1,05,1.6,63.2,M,8.1,M,,0000*5E $GPGGA,115924.000,3116.9609,N,12128.7682,E,1,06,1.4,62.4,M,8.1,M,,0000*5C

以第一帧的坐标为原点可以得到相对位置坐标(原点为东经121.287664度,北纬31.169623度)。

纬度 N31.169623

经度 E121.287664 27

相对纬度 0.000000 相对经度 0.000000 中国科学技术大学毕业论文

N31.169619 N31.169616 N31.169609 N31.169609 E121.287671 E121.287676 E121.287681 E121.287682 -0.000004 -0.000007 -0.000014 -0.000014 0.000007 0.000012 0.000017 0.000018 根据相对经纬度信息,求得距离标尺。 以当前圆的纬度计算地球纬度半径:

R_Lat?R_Earth?cos(Origin_Latitude?), 180?式中R_Earth为地球赤道半径,Origin_Latitude为原点纬度。 然后就可得到经度方向上的距离尺度:

X_Lon?R_Lat?(Longtitude_R?式中Longtitude_R为相对经度。

),

180?如果固定了用户位置,相对位置移动轨迹就可以当作对同一经纬度的统计测量结果,即静态位置偏移轨迹。它在一定程度上反映了GPS接收机的测量精度。通过统计运算,可以分别求出测量经度和纬度的期望和均方差,期望是对当前位置经纬度的最佳估计,而均方差可以体现GPS接收机的精度信息。

第七节 本章小结

在本章中,介绍了GPS接收机运用最为广泛的NMEA-0183协议。解读NMEA-0183码中的数据帧,可以对GPS信号进行多种方式的研究。

NMEA-0183协议是一种基于串口的传输协议,通过计算机配置与接收机之间的串口连接,是研究NMEA码的基础。而使用Windows API是最为灵活、移植性最强的串口连接方式。

NMEA码给出了UTC时间、日期、用户所在经纬度、速度及可见卫星PRN、仰角、方位角、信噪比等诸多信息数据。使用GARMIN接收机,除了能够获得标准NMEA码数据帧,还可以从自身特有的数据帧中获得时间精度因子(TDOP)等信息。这些数据在定位精度因子(GDOP)分析、卫星天空视图实现、多通道卫星信号质量分析及相对位置偏移轨迹跟踪研究上都扮演这重要的角色。

定位精度因子(GDOP)和静态位置偏移轨迹都从侧面反应了GPS定位精度。静态位置偏移轨迹直观的给出了接收机对同一位置的统计测量结果,从统计

28

中国科学技术大学毕业论文

点的方差给出了接收机的测量精度。而定位精度因子(GDOP)则从解算卫星的几何结构上分析出当前测量值的精度(可用性)。从总体上讲,优化用于解算的卫星几何结构,可以降低定位精度因子(GDOP),提高每一次测量的定位精度,从而优化GPS系统的整体定位精度,形成更精确的相对位置移动轨迹信息,为用户提供更为高效准确的位置服务(LBS)。

29

中国科学技术大学毕业论文

第四章 实验与结果分析

第一节 基于NMEA-0183码应用软件的程序实现

本文所设计的GPS应用分析软件除了要实现定位的基本功能外,还要实现第三章中所提及的各项数据分析功能以及NMEA-0183码的储存回放,所以在整体框架结构上采用了SDMV单文档多视图(Single Document Multiply View)方式。其特点是利用唯一的文档类对程序的所有公用数据进行统一管理,并以多视图的形式对文档类中的数据进行可视化。这种方法在极大程度上保证了数据同步性,并简化了数据传输的过程,只需要在数据改变处使用UpdateAllViews()函数,所有的视图就会相应的调用自身定义的OnUpdate()函数来完成数据更新。

SDMV应用程序本身是MFC的MDI应用程序的扩展型。他继承了MDI中的应用类CWinApp,主框架类MDIMainFrame和子框架类MDIChildFrame。不同之处SDMV在于文档类CDocument唯一。在应用类中,程序要为每一个子窗口以自身的子框架类和唯一的文档类来建立模板,而在主框架类用要完成工具栏、菜单栏的创建。

由于添加了NMEA码的存储及回放,软件的在运行中分为NormalMode、RecordMode和ReplayMode三种模式。NormalMode为一般模式,即不对NMEA码进行记录;RecordMode为记录模式,在对串口读取NMEA码的同时,对其进行外部备份,存储于NMEA0183.txt文件中;ReplayMode为回放模式,通过打开先前建立的外部存储文件,获取NMEA码进行数据处理。

软件的总体数据流程图如下所示:

30

中国科学技术大学毕业论文

窗口、框架、工具栏、菜单的初始化ReplayModeNormalMode回放模式打开NMEA0183.txt文件模式串口模式打开串口读取数据NMEA码记录数据NormalModeReplayModeRecordModeStop Record停止记录,关闭文件从NMEA0183码中提取信息文档类中更新公用数据在NMEA0183.txt中记录NMEA码DataView数据更新NMEA数据更新SkyView数据更新Tracking数据更新SNR数据更新DOP数据更新 从上图中,可以看出NormalMode和ReplayMode仅在数据来源上存在区别。软件的重要环节在于数据更新系统,通过将NMEA0183码中的有用数据(即第三章中所涉及的数据)提取出来后,存入文档类中,通过SDMV的数据更新机制,更新子窗口中视图显示数据。

六个子窗口分别实现了上图中所示的数据分析功能,下面将对各子窗口的实现方式加以说明。

1) DataView窗口的实现

DataView子窗口用于显示UTC时间、经纬度、海拔、DOP、定位状态及质量等基本定位导航数据,采用CFormView类作为窗口的基类。由于显示数据较多,使用列表视图控件(List Control)可以大大的减少工作量。在窗体初始化过程中,完成列表中的各数据的名称的创建,再在数据更新过程中(OnUpdate()函数)通过调用GetDocument()函数读取文档中的相关公用数据,向列表中填写。

CDataView类框架图如下:

31

中国科学技术大学毕业论文

OnInitialUpdate()初始化OnSize()窗体大小控制CDataViewOnUpdate()数据更新OnDestroy()窗体销毁 DataView窗体效果:

2) NMEA窗口的实现

NMEA窗口用来复现正在从串口接受或从外部文档中读取的NMEA码以及当前使用的串口名和波特率。同样采用了CFormView类作为基类,数据显示采用了编辑框控件(Edit Box)。程序结构上与DataView窗口大体一致。

CGPSReceiverView类框架图如下:

OnInitialUpdate()初始化OnSize()窗体大小控制CGPSReceiverViewOnUpdate()数据更新OnDestroy()窗体销毁 NMEA窗体效果:

32

中国科学技术大学毕业论文

3) SNR窗口的实现

SNR窗口用于实现3.4中提到的多通道信号的接收质量分析。以CFormView类作为基类,运用进度条控件TextProgressCtrl来实现信噪比的柱状图显示。

CSatelliteSNR类框架图如下:

OnInitialUpdate()初始化OnSize()窗体大小控制CSatelliteSNROnUpdate()数据更新OnDestroy()窗体销毁 SNR窗体效果:

4) SkyView窗口的实现

33

中国科学技术大学毕业论文

SkyView窗口用于实现3.5中提到的天空卫星视图的分析。本文中软件是以基于MFC的OpenGL语言来实现图形显示的。由于OpenGL与MFC GDI绘图的机制不同,所以在窗体初始化时首先要建立设备句柄(Device Context)到绘制环境(Rendering Context简称RC)的映射,并将其设定为当前RC。这将分为三个步骤:设置窗口像素格式;产生RC;设置为当前RC。之后执行OnDraw()函数实现显示内容的绘制。在数据更新时,OnUpdata()函数通过GetDocument()获取文档中更新的数据,并使用InvalidateRect(NULL,FALSE)函数调用OnDraw()完成新数据的重绘。

CSkyView类框架图如下:

PreCreateWindo()重载,添加OpenGL必要信息OnCreate()创建基于OpenGL的窗体CSkyViewOnEraseBkgnd()设定背景重绘机制OnSize()窗体大小控制OnUpdate()数据更新OnDestroy()窗体销毁OnDraw()图像绘制SetWindowPixelFormat()设置像素格式CreateViewGLContext()生成当前RCInitGL()OpenGL初始化 SkyView窗体效果:

34

中国科学技术大学毕业论文

5) Tracking Map窗口的实现

TrackingView窗口用于实现3.6相对位置移动轨迹的跟踪分析。和SkyView窗口一样运用了OpenGL语言进行绘图。此外,TrackingView窗口加入了设置选项,可在窗口上点击右键进行原点、显示尺度的设置,开启统计功能。

CTrackingView类框架图如下:

PreCreateWindo()重载,添加OpenGL必要信息OnCreate()创建基于OpenGL的窗体CTrackingViewOnEraseBkgnd()设定背景重绘机制OnSize()窗体大小控制OnUpdate()数据更新OnDestroy()窗体销毁SetWindowPixelFormat()设置像素格式CreateViewGLContext()生成当前RCInitGL()OpenGL初始化OnDraw()图像绘制OnSetOrigin()设置当前点为原点OnReSize()调整显示尺度OnStat()打开统计功能右键下拉菜单打开设置界面

35

中国科学技术大学毕业论文

Tracking Map窗体效果:

CConfig类框架结构图如下:

OnInitialUpdate()初始化OnApply()应用修改后设置OnDestroy()窗体销毁CConfig Config窗口效果:

6) DOP窗口的实现

36

中国科学技术大学毕业论文

DOPView窗口用于实现3.3定位精度因子的分析。为了对精度因子做横向评估,实现在统一窗口多种DOP相对于时间的曲线函数绘制,窗口采用了TeeChart控件,通过调用TeeChart的功能函数plotDynamicLine(),在窗口上实现DOP数据相对于当前时间点的动态曲线。

CDOPView类框架图如下:

OnCreate()创建基于TeeChart的窗体OnEraseBkgnd()设定背景重绘机制OnSize()窗体大小控制OnUpdate()数据更新OnDraw()图像绘制CDOPViewOnDestroy()窗体销毁 DOPView窗口效果:

7) 工具栏实现

软件提供的工具栏实现了各窗口的打开,串口设置及连接,数据储存和回放等基本功能。

37

中国科学技术大学毕业论文

NMEASkyViewDOPBaudrateRecordDataViewSNRTrackingPortReplayStopRecord工具栏功能列表

第二节 实验结果分析

试验中为了实现相对位置的轨迹跟踪分析,希望GPS接收机能够快速稳定的捕获跟踪GPS卫星信号,所以使用了Fastrax公司的itrax 300 GPS接收模块。在试验中,我们对实时的NMEA-0183码数据帧做了录制,以供后期分析。

接收机于2008年5月14日下午16:38:22开始实现定位,并获得稳定信号。

以下为这一时刻的数据帧信息。

$GPGGA,083822.000,3116.9612,N,12128.7573,E,1,04,1.7,3.0,M,8.1,M,,0000*60 $GPGSA,A,3,31,30,32,22,,,,,,,,,1.9,1.7,1.0*3D

$GPGSV,3,1,11,14,65,359,38,30,59,058,37,05,47,049,,22,47,191,36*7B $GPGSV,3,2,11,31,46,288,43,16,38,200,,32,38,305,40,18,27,171,*70 $GPGSV,3,3,11,06,21,118,,09,04,066,,07,02,175,*4F

$GPRMC,083822.000,A,3116.9612,N,12128.7573,E,0.16,105.49,140508,,,A*6C

通过GPGSA帧可以看出已有4颗卫星被系统跟踪,用于伪距解算。

上图为这一时刻基本定位数据信息,其中UTC时间为格林尼治时间,与北京时间有着-8小时的时差。由于该接收机使用标准NMEA-0183码,所以没有

38

中国科学技术大学毕业论文

PGRMF语句,无法测得TDOP信息。

这一时刻的卫星信号质量及天空视图为:

16:38:22的多通道卫星信号质量

16:38:22的天空卫星视图

以这一时刻为相对位置跟踪起点,考察接收机的定位能力。

39

中国科学技术大学毕业论文

图中的白点为但前位置,使用软件的SetOrigin()功能,将该点作为跟踪原点。 以16:41:28作为第二个采集时间点,这一时刻的数据帧如下:

$GPGGA,084128.000,3116.9936,N,12128.7904,E,1,05,2.3,9.2,M,8.1,M,,0000*6F $GPGSA,A,3,31,30,32,22,14,,,,,,,,8.4,2.3,8.1*33

$GPGSV,3,1,10,14,69,031,37,30,58,056,40,31,47,290,34,22,46,190,35*7E $GPGSV,3,2,10,16,40,200,,32,39,304,30,05,37,046,32,18,26,171,30*7C $GPGSV,3,3,10,29,19,118,33,09,03,067,*78

$GPRMC,084128.000,A,3116.9936,N,12128.7904,E,1.46,86.01,140508,,,A*5F

基本定位数据信息为:

此时有5颗卫星的信号被用于跟踪解算。卫星的信号质量及天空视图如下:

40

本文来源:https://www.bwwdw.com/article/oqi6.html

Top