GNSS软件接收机中频信号数据分析
宋其聪 罗志清 潘亚茹
【摘 要】摘 要 中频信号是软件接收机研制重要输入数据。以通过位捕获器对实际GPS信号进行采集获取的实际数据为基础,说明了GPS中频数字信号的生成方法,并完成了对实际数据的捕获算法实现,为进一步研究提供基础。 【期刊名称】科学技术与工程 【年(卷),期】2012(012)017 【总页数】5
【关键词】关键词 GPS软件接收机 中频信号 采样 量化 快速傅里叶变换 【文献来源】
https://www.zhangqiaokeyan.com/academic-journal-cn_science-technology-
engineering_thesis/0201258274821.html
随着微处理器制造工艺和技术的发展,软件接收机将会越来越普及,可能在许多应用上取代硬件接收机。软件接收机将在很多领域得到广泛的应用,如军用、测量、测姿及普通导航等。在军用方面可以促进指挥、控制、通信、导航等各系统的统一;民用方面,由于软件接收机的成本低廉,可更有利的占领民用市场,实现经济效益,拓宽其应用领域[1,2]。尽管研究的重点是 GNSS的软件信号处理算法,但是了解要处理的数据流的来源及特性也是很重要的。
1 GNSS软件接收机的结构
基于软件的GPS接收机系统由天线、射频前端和软件处理单元组成,结构如图1所示[3]。其中,射频前端部件主要用来将射频信号下变频到中频,采样并数字化。目前CPU的处理能力仍然不能以纯软件方法处理从GPS天线直接获得的信号,必须依靠射频前端部件对信号进行预处理。经过变频采样之后的中
频数字信号才可以用于软件的处理。在基于硬件的传统GPS接收机中,图中基于软件的处理部分是采用专用集成电路实现的,因此用户是无法方便地接触内置在芯片内的算法。这就是GPS软件接收机和传统接收机的主要区别。采用软件的方法使得对接收机内部算法的研究具有巨大的灵活性和经济性[4,5]。
2 中频数据解析
2.1 中频采样方案及频率选取
中频采样方案是目前在GPS接收机中被广泛应用的射频前端方案。这种方案的基本配置是先通过本地振荡器和混频器将射频信号进行下变频到中频,然后通过A/DC将中频信号采样得到离散的数字信号,然后再送给后续信号处理软件进行基带信号处理。
在这种方案中为了使输入频率位于接近基带中心的位置,必须满足下面的关系式[2]
式(1)中输入频率是fi,采样频率是fs,输出频率是f0,有3个未知数,故解不是唯一的,故设计接收机时有许多可能的选择。由于GPS信号频谱必然是关于其载波频率fi对称的,所以在实际工程中,当n的取值确定以后,可以选取fs使得
那样采样以后的信号中心频率必然在1/4 fs处。从而避免了频谱混叠的角度,这样的处理是最安全的。
普通的实时软件接收机采用5 MHz左右的采样频率,对于一般的导航定位这样的采样率不至于造成不可忍受的信噪比损失,但是对接收机性能提高不利。所以现在出现了16.367 6 MHz、38.192 MHz等高采样频率的接收机。 2.2 采样数据的读取方法
鉴于matlab在通讯信号处理中的广泛应用,以及其强大的成图功能,它在软件接收机的研究采样中有广泛的应用,所以这里就以matlab为例来说明对采集器取得的采样文件的具体调用方法[6]。在matlab环境中可以使用load和save命令来保存和提取mat和ASCII文件数据,但是这两种文件都是MATLAB本身的数据格式,局限性很大。如果要与其他的软件系统进行直接的数据交换,则可以使用输入输出文件。几乎任何算法程序都只产生有限的几种输入输出文件格式,如二进制格式和ASCII码字符格式等。 我们这里就涉及两个具体的命令。 2.2.1 打开文件
语法:fid=fopen(filename,permission)%以指定格式打开文件
说明:fid为返回的文件指针(file identifier),通常是一个非负的整数,如果返回—1则表示无法打开文件。Fopen的permission参数在打开文件时的具体要求以及表明打开文件的格式,我们这里是以只读的方式打开二进制格式的文件,参数选为'rb'。 2.2.2 读二进制数据
语法:[a,count] =fread(fid,size,precision)%读取二进制数据。 说明:二进制数据格式不删除或添加分割符,使用fread命令可以实现对二进制数据的读取。其中A用于存放读取数据的矩阵,COUNT是返回所读取元素的个数,Fid为文件指针,SIZE是可选项,若不选用则读取整个文件内容;若选用则它的值可以是下列值:N(读取N个元素到一个列向量)、INF(读取整个文件)、[M,N](读数据到M×N的矩阵中,数据按列存放),precision用于控制所写数据的精度。
GNSS软件接收机中频信号数据分析
![](/skin/haowen/images/icon_star.png)
![](/skin/haowen/images/icon_star.png)
![](/skin/haowen/images/icon_star.png)
![](/skin/haowen/images/icon_star.png)