一种简易的GPS信号模拟技术

gps 信号模拟源在gps 接收机研发生产和测试中具有重要的作用。见诸文献的最早的卫星导航信号仿真系统是1977 年报道的texas instruments 公司开发的gps 模拟器[1]。从那时开始, 伴随着gps 卫星星座的建立、gps 体制的更新、glonass 系统的出现, 卫星导航信号精密模拟源也从单通道发展到多通道, 模拟合成发展到数字合成, 从中频数字合成发展到基带数字合成, 由单一系统仿真发展到多系统混合仿真, 由专用向通用方向发展, 由系统仿真向片上(onchip)仿真发展[2]。
第一代卫星导航信号模拟器以模拟技术为主,采用射频合成的技术方案, 即把每颗星的信号独立调制到射频然后进行合成[3]。随着数字技术的发展,以及对模拟器信号精度和通道一致性要求的提高,导航信号模拟器开始应用数字技术, 并在中频进行模拟信号合成。目前国外市场上最新的gps 仿真系统均不同程度地采用了大规模dsp/fpga 技术, 在数字域进行直接信号合成, 把多颗卫星的数字合成信号用一个射频通道输出, 以提高其信号精度和通道间的一致性。英国、美国、瑞典、挪威、德国等,都已经有比较成熟的产品[4-5]。其中, spirent 公司、aeroflex 公司等公司生产的gps 模拟器最具代表性。
gps 信号模拟器目前主要用于gps 接收机的生产厂家和研究单位。对于大多数需求单位而言, 对于信号模拟的要求并不高, 需要一种能产生固定的gps 射频信号的设备, 在这个固定的模拟信号里,星座已知, 用户轨迹已知, 不需要长时间连续运行。然而市场上的gps 信号模拟器功能全面, 可设置卫星的星座、电离层参数、用户轨迹可设置。需要采用上位机+下位机结构, 结构复杂, 导致gps 信号模拟源价格昂贵, 不能为厂家接受。
文献[6]提出了一种嵌入式的gps 模拟信号源的结构, 采用arm 作为控制单元, 原始电文保存在arm 存储器中, 采用fpga 用于伪码产生和扩频处理, 采用ad9854 作为dds 芯片。文献[7]提出了一种十二通道gps信号模拟器方案, 采用了pc机+pci板卡技术, 采用双口ram 作为pc 机和dsp 的数据缓冲区, dsp 实现参数读入, 产生c/a 码并扩频调制。码延迟、数字载波调制及数字增益控制由fpga控制。这些方法都采用了上位机+下位机的实现方式。
提出了一种简易的gps 信号模拟方法, 将gps导航电文和观测数据按一定的格式存储为文件, 通过读取文件产生gps 信号。在单片fpga 上实现了gps 信号基带处理的所有过程, 采用正交射频调制方法直接产生l1 频点信号。采用不同的文件实现不同的测试场景, 利用该方法构建的gps 信号模拟源成本低、体积小, 可满足大部分gps 接收机的测试需求。
gps 信号模拟源的系统设计指标
根据厂家的需求, 确定gps 信号模拟源的技术指标如下:
仿真卫星总星数: 12 颗
连续输出模拟信号时间: 2 h
伪距控制精度: 0.027 m
伪距变化率精度: 优于0.05 m/s
用户动态范围: 速度: 0~5 000 m/s; 速度分辨率: 10 mm/s
通道间一致性: <1 m(码) <0.005 m(载波)
载波与伪码相干性: <1 度(包含随机抖动和不确定性)
i、q 相位正交性: <1°
gps 信号模拟源的总体方案 由于只需产生固定场景的gps 信号, 因此gps导航电文是固定的, 采用离线产生即可。此外还需要观测数据文件, 观测数据主要描述了伪距的变化情况, 模拟器根据观测数据文件对导航电文进行处理。为了描述伪距的连续变化, 观测数据中还包含了伪距的一阶、二阶变化率, 这样通过插值就可获得高密度的伪距变化值。
真实的 gps 卫星射频信号产生流程如下: 伪码发生器产生1.023 mhz 的c/a伪随机码, gps 的导航电文速率为50 bps, 导航电文首先与该c/a 码叠加,产生了基带信号; 在gps 卫星上, 基带信号被调制到l1 载频, 然后通过天线释放。接收机接收到的射频信号与卫星发送的射频信号对比, 其接收到的信号是经过传输延迟的信号; 此外由于卫星的运动,卫星与接收机之间具有相对运动, 由于多普勒效应,接收机接收到的射频信号频率产生了变化。
射频信号模拟过程中关键的环节就是模拟信号的传输延迟和多普勒效应。其传输延迟用伪距来表示, 考虑到伪距的连续性, 观测数据中包含伪距的速度、加速度, 利用差补的方法可获得高精度的连续的伪距变化。获得采用延迟滤波器的方法实现基带信号的延迟, 采用多阶数字滤波器的方法, 利用高性能数字信号处理芯片实现, 可获得精度为ns 级的延迟精度; 同样采用数字信号处理的方法对基带信号实现多普勒处理, 可获得1hz 的频率分辨率。
单颗 gps 卫星信号仿真流程如图3 所示, 数学仿真产生的观测数据包括伪距和一阶、二阶量。数学仿真产生的导航电文以50 bps 的速率被i 路伪码调制。调制后的信号则为数字基带信号, 该信号经过多阶延迟滤波器进行延迟处理, 模拟gps 信号在空间的传递时间; 经过基带处理的信号通过正交调制变为l1 载频的信号。
真实的多颗 gps 卫星信号在空间合成, 而模拟的gps 卫星信号在数字域实现叠加合成。采用地址发生器产生12 颗卫星的特征码, 分别与对应的导航电文进行叠加, 合成的基带信号通过正交射频调制,调制为l1 频点1.575 ghz 的射频信号。
而 gps 卫星信号模拟源采用图2 所示方案。采用sd 卡存储导航电文和观测数据文件。在系统工作时, fpga 读取sd 卡的数据, 按图1 所示的流程产生卫星的基带信号, 多颗星的基带信号经数字合成后,送至da 变为模拟信号, 再进行正交射频调制获得l1 频点的射频信号。
当系统需要更新数仿文件时, 则通过tcp/ip 接口对sd 卡进行读写操作, 实现sd 卡中的文件更新。
数据文件格式
gps 信号模拟的目的是使gps 接收机通过接收模拟的信号正常工作, 实现定位解算。而gps 信号是由多颗不断运行的gps 卫星实时发射产生的。为了实现gps 信号模拟, 首先需要设定用户轨迹、建立gps 卫星轨道模型和信号传输模型, 运算量较大。因此采用离线运算的方法, 先在高性能计算机上进行仿真计算, 再将计算得到文件保存下来。gps 模拟器通过读取该文件, 实现gps 信号的仿真。这种方法的好处在于为模拟器节省了大量的资源, 有利于降低成本和体积。
为了让接收机实现定位, 必须要提供4 颗以上的gps 卫星信号; 仿真了12 颗gps 卫星的数据, 仿真数据主要包括导航电文和观测数据。导航电文格式为300 bit, 占40 字节, 剩余20 bit 空; 观测数据则根据设定的位置和卫星星历产生, 模拟固定位置接收机产生的伪距变换, 20 ms 更新一次, 为了实现伪距的连续变化, 观测数据中还包含伪距速度和加速度, 便于信号产生过程中的插值。
gps 导航电文速率为50 bps, 300 bit 为一子帧, 一子帧为6 s。一帧包含5 子帧, 共1 500 bit, 历时30 s。一超帧则包含25 帧, 37.5 k, 历时12.5 min。由于gps 电文每两小时更新一次, 则2 h 需存储的导航电文约为 375 k; 12 颗星的导航电文为4.5 m。
观测数据则为20 ms 更新一次, 单颗星的观测数据为40 个字节, 一个观测数据包有12 颗星, 共4 288 bit; 则2 h 的数据量为4 288×50×7 200=1 543680 000 bit, 约1.5 g。因此, 采用2 g 的sd 卡可完成上述数据容量的要求。
硬件设计 gps 信号模拟源的设计采用高速基带数字合成技术和正交中频、射频调制技术。多颗卫星信号以数字形式在高性能软件无线电处理平台上计算并合成, 有效提高系统通道间的一致性, 消除了卫星通道间的误差, 也消除了内部时间误差, 确保了高精度。该方案与射频合成方案相比增加了软件无线电数字部分设计的难度, 使得伪距控制精度、多普勒变化和幅度等均在数字部分计算, 简化了射频设计,避免了由射频群时延不一致产生的通道间误差和卫星间的钟差, 且数值计算、钟差可控, 有效保证了系统的设计指标。信号模拟源方案原理如图4 所示。gps信号模拟源采用基带加射频的单元模块化结构设计。
gps 信号模拟算法对数据处理率有较高的要求,然而通过分析延时算法, 这样庞大的计算量实际上只是简单的乘累加(mac) 的流水操作, 其算法结构中并无复杂的数学运算(如正余弦、指数、对数等) ,可以说其运算结构是相对比较简单的, 所以考虑采用fpga 芯片。而目前fpga 的功能也日益增强, 内嵌于fpga 的硬核与基本逻辑构建的软核也不断增强了fpga 作为通用信号处理芯片的能力。通过综合考虑, 最终选择了用xilinx 公司的xc4vsx35作为主处理芯片。该芯片是xilinx 公司2005 推出的一款专门为数字信号处理而设计的高端fpga, 其可编程数字信号处理模块xtremedsp48 在−12 的速度等级上最高性能为500 mhz。
基带单元设计采用1 片xilinx 高性能fpgaxc4vsx35 来完成。xc4vsx35 主要完成以下任务:1) 从sd 卡读入导航电文和观测数据; 2) 多星数据的分配; 3) 多星信号的精密延迟和动态特性控制;4) 多星信号的数字合成。设计上可完成12 颗星i 路的导航信号产生。
软件设计 系统上电后首先读取所有12 通道的电文数据,由于gps电文为2 小时更新一次。一个超帧25 帧, 每帧300 bit, 合计7 500 bit。12 颗星的导航电文总数据量为90 k。系统读取电文数据后, 放入电文数组, 写入缓冲; 读取两帧观测数据, 写入缓冲; 由于观测数据更新频率为20 ms 一次, 因此每20 ms 读1 帧观测数据, 输出信号。信号处理流程如图4 所示。
实验与分析 采用trimble 公司生产的resolution-t 型gps接收机对设计的gps 信号模拟源进行测试。将resolution-t 型gps 接收机串口输出与电脑相连, 通过dspmon_v1-46 软件, 观察p-t 星卡解调出的射频模拟信号时间及位置是否正确, 误差大小是否符合性能要求等, 模拟输出的卫星数是否能达到四颗可以上, 结果如图5 所示, 可见达到了设计要求。
结论 本文介绍了一种基于数据文件读取的gps 信号模拟器, 采用离线计算获取数据文件, 避免了实时计算需要的大量硬件资源, 从而降低了gps 信号模拟源的成本。通过更换文件可以改变信号模拟的场景设置, 具有一定的灵活性。这种方法能满足部分gps接收机生产厂家的测试需求。

极米科技连续五年斩获CESInnovation Awards创新大奖
拜腾汽车与SK电讯达成合作,整合两方数字产品和服务
“蹭网一族”要当心 公共WiFi暗藏玄机
汽车电子电磁兼容标准概述分类 - 汽车电子EMC测试照片
晶圆代工还要再涨价?
一种简易的GPS信号模拟技术
在高端市场,蔚来会以什么形式实现自我造血和盈利?
PLC网关BL102助力PLC控制技术在钢铁行业中的应用
暑假学生党购机实力之选:高通骁龙888旗舰5G机型,值得你入手
浪涌保护器和过电压保护器的区别
“一颗星的征程”——人工智能、大数据与新能源分时租赁的结合
IAR编译环境使用小技巧(2)
旷视科技科创板开启上市辅导 旷视科技股票要来了
首家赴美上市的半导体设备商盛美将投建上海研发生产基地
5G信号通过卫星实现全球覆盖?
机器人进军咖啡市场,可以一次搞定两杯,效率十足
STC89C52RC单片机程序烧录教程
中国自己的手机系统来了,忘掉安卓和苹果吧!
怎样检查家里漏电?用排除法
滑动变阻器原理