0. 序
单纯就算法研究而言,是否实时运行并非核心问题,但就演示效果来看,非实时与实时接收机有天壤之别。早期做实时GNSS软件接收机基本都要自己研究处理器指令,将相关器用处理器指令做优化,当然利用开源的资源做加速无可厚非,毕竟,重复造轮子的意义并不那么大。自岛国科学家开源了GNSS-SDRLIB,GNSS软件接收机领域有了首个开源的实时软件接收机,虽然项目2014年后不再更新,但其贡献还是巨大的。从GNSS-SDRLIB代码来看,岛国科学家应当只是开源了全频段接收机的一部分(L1频段相关频点),但其它频点的伪码是有的,参考这个做其它频点的接收机并不会太困难。当前GNSS-SDR也可以做到实时,但目前只支持linux下运行,大佬都喜欢命令行,哈哈!
GNSS中频采集器研制成功后,移植实时软件接收机是自然而然的事情,花费数日心血,终见成效。现在,有了硬件加持,直接可以拥有GNSS实时软件接收机,使用自研的前端(也就是此前数文据说的GNSS中频采集器),可以完美运行GNSS-SDRLIB。
1. 实测效果
GNSS-SDRLIB只是个实时捕获和跟踪的程序,其解算是调用RTKLIB完成的,天气原因,一方面下雨,一方面比较冷,只是室内对跟踪做个测试,先上段视频,看看效果。
GNSS-SDRLIB实时软件接收机测试(前端硬件GNSS-SDK R2)_哔哩哔哩_bilibili
最近天气比较冷,如非必需,不跑外场。后面找个好天气,去外场弄个GNSS-SDRLIB与RTKLIB实时运行的视频。
目前,GNSS-SDRLIB被改造成支持三种模式:(1)实时模式,就是接硬件实时捕获跟踪;(2)BIN后处理模式,直接处理GNSS中频采集器输出的原始采样点文件;(3)INT8后处理模式,直接处理GNSS中频采集器输出的INT8格式的数据文件。
2. 后记
GNSS信号处理最耗时的当属相关运算,GNSS-SDRLIB实时软件接收机为零等待的捕获跟踪提供了基础的框架,在我看来,纯c实现,大大降低了学习和使用成本:相比matlab的SoftGNSS,省下了很多运行时间;相比GNSS-SDR,省下了大量的学习时间。虽然只公开了L1频段的几个信号代码,但源代码中其它频点信号的码表是有的,很容易扩展到L2、L5的频点,这些工作就有赖勤劳的人去做吧,工夫不会负苦心人的!