电离层作为一种非均匀介质会造成信号的幅度、相位发生随机的波动,这被称之为电离层闪烁现象[1-2]。电离层闪烁会影响卫星信号质量,造成波形畸变并提高误码率,极大地影响卫星导航系统的定位、授时性能以及可靠性[3-4]。伴随着以GPS、北斗为代表的卫星导航系统的广泛应用,对电离层闪烁的有关研究是十分必要的。
当前,对电离层闪烁监测的研究主要集中在改装现有的高精度GPS商业接收机板卡,并利用GPS卫星信号进行电离层闪烁监测,而伴随着北斗卫星系统的发展和成熟,利用GPS和北斗卫星导航系统的多频点信号进行电离层闪烁监测逐渐成为趋势。
本文先简略介绍了GPS/BD双模电离层闪烁监测系统的基本结构组成,然后详细阐述了系统硬件的设计、接收机嵌入式软件及电离层闪烁监测上位机软件的设计和闪烁监测算法的原理与实现,并在最后给出该系统的运行效果和实时测量结果,并进行讨论和分析。
本文所阐述的GPS/BD双模电离层闪烁监测系统支持GPS的L1/L2频点和北斗的B1/B2频点,整个系统由硬件及软件两大部分组成,结构如图1所示。其中,硬件部分包括基于ARM+FPGA的GPS/BD双模多频电离层闪烁监测接收机、接收机天线、低相位噪声的高精度时钟源、系统电源和台式计算机。软件部分包括GPS/BD双模多频点电离层闪烁监测接收机的嵌入式软件和安装在台式计算机上的电离层闪烁监测上位机软件。
图1 GPS/BD双模多频电离层闪烁监测系统结构框图
图1中,GPS/BD双模多频点电离层闪烁监测接收机接收GPS/BD卫星信号,经过下变频和基带信号处理,得到相应的原始观测量,并通过RS232线缆与台式计算机进行连接,将接收机原始观测量回传到台式计算机中。在台式计算机中运行的电离层闪烁监测上位机软件从串口缓冲区读取原始观测量数据,进行实时的计算,得到相应的电离层闪烁观测信息,并根据用户的操作进行显示、分析和存储,从而构成功能全面的全自动无人值守GPS/BD双模电离层闪烁监测系统。为了在弱闪烁发生时能有效地进行监测,图1所示的高精度时钟源采用的是恒温晶振(Oven Controlled Crystal Oscillator, OCXO),这种晶振相对于卫星导航接收机常常采用的温度补偿晶振(Temperature Compensate Crystal Oscillator, TCXO),其具有较低的相位噪声,可以避免在电离层闪烁较弱的情况下,相位的随机波动被晶振本身的相位噪声所淹没[5]。
GPS/BD双模电离层闪烁监测系统的核心硬件是基于ARM+FPGA的GPS/BD双模多频点电离层闪烁监测接收机,接收机的硬件部分包括电源模块、射频模块和基带信号处理模块,其结构如图2所示。
图2 GPS/BD双模多频电离层闪烁监测接收机硬件结构
电源模块主要由TI公司的电源管理芯片TPS650250、DCDC芯片TPS62085和安纳森半导体公司的LDO稳压器芯片VRD3030PTX组成,结构如图3所示。其中电源管理芯片TPS650250的外部输入电压为3.3 V,经过内部电压转换,可得到1.1,1.5,3.0和2.5 V四种输出电压,供给DDR3、ARM芯片、FPGA芯片和NOR FLASH芯片使用;LDO稳压器芯片VRD3030PTX将外部的3.3 V电压经过稳压整流后得到的3.0 V电压作为射频模块的电源;DCDC芯片TPS62085将外部的3.3 V电压经过升压得到5.0 V电压作为有源天线的供电电压。
图3 电源管理模块结构
射频模块如图4所示。其采用单天线输入结构布局。天线输入的射频信号先经过低噪声放大器后再通过一个二等分功分器,对于得到的两路射频信号的每一路信号再分别通过一个二等分功分器,总共得到四路射频信号,并使用声表滤波器对每一路信号进行滤波。MAX2769作为美信公司的一款GNSS接收器芯片,内部集成了完整的接收链路,由FPGA配置芯片内部的本振从而将输入的射频信号下变频到特定频率的中频信号,并通过芯片内部的ADC进行模数变换,对于得到的中频数字信号直接输出给基带信号处理模块进行处理。由于MAX2769的输入信号的频率范围为1 550~1 610 MHz,因此对于GPS L1频点的信号和北斗B1频点的信号均在此频率范围内,故可以直接通过MAX2769进行下变频;而GPS L2频点和北斗B2频点信号的中心频率分别为1 227.6 MHz和1 207.14 MHz,不在MAX2769输入信号的频率范围内,因此,得先经过上变频后再通过MAX2769下变频得到中频信号。本文采用ADI公司的ADF4360作为上变频的本振信号发生器,通过FPGA配置ADF4360,使其产生的本振信号的频率fLO1和fLO 2分别为332 MHz和380 MHz,因此,GPS L2频点和北斗B2频点的信号经过上变频后的中心频率分别为1 559.6 MHz和1 587.14 MHz。
图4 射频模块结构图
通过FPGA配置框图中的四路信号的MAX2769芯片,其输入信号的频率、内部本振的频率设置和下变频后得到的中频频率如表1所示。
表1 MAX2769参数设置 MHz
对应频点MAX2769输入信号频率内部本振频率中频GPS L11575.421576.5-1.08BD B11561.09815592.098GPS L21559.61558.51.1BD B21587.1415852.14
基带信号处理模块以Altera公司的FPGA芯片5CEFA7U19和TI公司的ARM芯片AM3352为核心,并以DDR3作为外置内存,NOR FLASH作为存储器。FPGA与射频模块使用同一个晶振作为时钟源[6],晶振频率为25 MHz。在FPGA内部对晶振的输入时钟进行倍频,提高FPGA时钟可以有效增强基带信号处理能力,但同时也考虑到时序约束和该型号FPGA本身的性能,因此选择倍频得到100 MHz的时钟,作为FPGA基带信号处理的主时钟频率。FPGA内部实现了198个信号跟踪通道,可同时实现对GPS的L1/L2频点和北斗的B1/B2频点信号的跟踪,并将每1 ms的相关峰值输出给ARM芯片。ARM芯片作为基带信号处理模块的主控芯片,采用24 MHz的外部晶振作为输入时钟,为了尽可能地提高处理性能并考虑到ARM的极限时钟频率,故将ARM芯片内部倍频到504 MHz作为工作时钟。ARM芯片通过通用存储控制器(General Purpose Memory Controller, GPMC)模块与FPGA进行交互,并负责信号捕获控制、跟踪环路控制和定位解算,同时通过串口将各通道的原始测量信息和解算得到的位置状态等信息发送给电离层闪烁监测上位机软件。
接收机嵌入式软件是实现GPS/BD双模多频点电离层闪烁监测接收机功能的核心所在,其软件涉及ARM和FPGA两部分,软件结构如图5所示。ARM作为主控制端,负责基带信号运算处理和控制,包括捕获控制模块、跟踪控制模块、同步解调电文模块和定位解算模块四大部分。FPGA作为协处理端,包括射频配置模块、信号捕获模块和信号跟踪模块三大部分。
图5 接收机嵌入式软件结构
在接收机启动后,FPGA首先完成对MAX2769和ADF4360的配置,之后不断读取MAX2769输出的数字中频信号进行基带信号处理。之后,ARM与FPGA配合共同完成卫星信号的捕获和跟踪。
对于卫星信号的捕获,FPGA先从ARM获取待捕获的卫星的编号,然后在FPGA的捕获模块中对数字中频信号进行处理,每个通道捕获1颗卫星,当完成某颗卫星某个频点的信号捕获后,将该颗卫星相应频点的捕获峰值所对应的码相位和多普勒频移发送给ARM的捕获控制模块作相应的处理。对某颗卫星信号的捕获本质上是在二维平面内不断搜索其载波频率和码相位,传统的捕获过程是对载波频率以频带宽度fbin为搜索步长进行搜索,对码相位以tbin为步长进行搜索,耗时较长。本文利用并行码相位搜索进行卫星信号捕获,根据相关运算原理,经过载波剥离的卫星信号s(n)与本地C/A码CA(n)进行长为N点的相关运算,如式(1)所示:
(1)
式中,r(n)的离散傅里叶变换如式(2)所示:
R(k)=
(2)
式中,s(k)和CA(k)分别为s(n)和CA(n)的离散傅里叶变换,表示CA(k)的共轭。从式(2)可知:在时域内,对去载波后的数字信号s(n)与CA(n)作相关运算相当于其离散傅里叶变换s(k)与CA(k)的共轭在频域相乘,并对相乘结果作反傅里叶变换即为在时域中s(n)与CA(n)的相关值r(n)[7]。
因此,根据并行码相位搜索法的原理,FPGA的捕获模块如图6所示,在FPGA捕获模块中,当数字中频信号分别与本地载波在I支路和Q支路上混频后,对混频结果i+jq进行FFT运算,同时对本地C/A码进行FFT运算和共轭运算,并将两者的值通过乘法器进行相乘,最后进行IFFT运算,从而得到时域内的相关结果,并由此来寻找相关峰,判断对该信号的捕获成功与否。无论是对于GPS还是北斗信号,可以先将经过FFT运算的C/A码的共轭值保存到FPGA的ROM中,形成一个查找表,这样就避免了每捕获一次都进行重复的FFT运算和共轭运算,节省了运算量。由于对码相位的搜索是一次完成,加快了捕获的速度。
图6 FPGA捕获模块结构
当卫星信号被捕获成功后,就进入到了信号跟踪流程。考虑到3阶及以上阶数的锁相环可以准确无误地跟踪频率斜升信号,但阶数越高则越不稳定。同时由于锁相环的噪声带宽较窄,一方面带来了较高的跟踪精度,另一方面也容易受噪声的影响而造成锁定困难。锁频环虽然跟踪精度不如锁相环,但其具有较宽的噪声带宽,可以在强电离层闪烁下仍能有效保持卫星信号跟踪,故接收机采用2阶锁频环辅助3阶锁相环作为载波跟踪环路,码跟踪环路带有载波辅助,环路阶数为2阶。图7为跟踪模块的软件结构,首先ARM向FPGA发送捕获多普勒频移和码相位,并在同步模块中分别设置载波剥离模块中的载波数字控制振荡器(Numerically Controlled Oscillator, NCO)初始值和码剥离模块中的码NCO初始值,接着通过载波剥离模块对数字中频信号进行去载波,并将去载波后的数字基带信号输入到码剥离模块,在码剥离模块中与本地产生的超前码、即时码和滞后码分别作相关运算,并将IE和QE,IP和QP,IL和QL这6路相干积分结果发送给ARM,其中IP和QP两路的相干积分值进入ARM端的载波环鉴别器,在完成鉴频鉴相滤波后,将得到载波频率字再发送给FPGA的同步模块;而IE,IL,QE和QL四路相干积分值被送入ARM端的码环鉴别器,在完成鉴相滤波后,将码环滤波结果与载波环滤波结果进行异或求和并发送给FPGA的同步模块,构成闭合环路,最终达到实时调整载波环路和码环路的目的,并稳健地跟踪信号。对于电离层闪烁监测,其需要跟踪环路能够以较高采样率输出信号强度、载波相位和伪距等原始测量信息[8],因为采样率越高,其能监测到空间尺度更为小的电离层不规则体所引起的闪烁现象。故提高采样率是提高电离层闪烁监测精度的一种十分有效的方式。但由于导航电文中1 bit的宽度是20 ms,因此跟踪环路的更新周期不大于20 ms,故本文设计的跟踪环路的更新率为50 Hz,能够以50 Hz的采样率输出信号强度和载波相位。
图7 跟踪模块的软件结构
GPS/BD双模电离层闪烁监测系统在计算电离层幅度闪烁指数S4时,需要接收机能够提取GPS/BD卫星信号的强度,传统的做法是利用接收机输出的载噪比C/N0来近似地代替信噪比SI/N0,并依据式(3)得到信号强度SI[3]:
SI=10CN0/10
(3)
但这种方式会引入额外的误差,影响到计算出的S4的精确性。本文采用窄带功率与宽带功率相差法,利用跟踪环路中每1 ms的即时I支路的相关值IP和即时Q支路的相关值QP来计算窄带功率NBP和宽带功率WBP,窄带功率NBP的计算如式(4)所示:
(4)
式中,Ii与Qi为接收机跟踪环路每1 ms输出一次的I支路和Q支路的相关峰值,将相关峰值在20 ms内相干累加的值作为窄带功率。而宽带功率WBP为相关峰值在20 ms内的非相干累加值,其计算如式(5)所示。
(5)
由于跟踪环路中除了真实的信号外还包含有高斯白噪声,故Ii可表示为其真值与噪声NI之和;同样地,Qi可表示为其真值与噪声QI之和。又由于跟踪环路在进入到比特同步状态后, 20 ms的相干积分均位于同一个比特下,此时和可分别近似为常量I和Q,因此,对式(4)和式(5)进行展开,分别如式(6)和式(7)所示:
NBP=
400I2+400Q2+NoiseNBP
(6)
WBP=
20I2+20Q2+NoiseWBP
(7)
通过将窄带功率NBP与宽带功率WBP作差,可近似得到20 ms内的信号功率SI,如式(8)所示:
SI=NBP-WBP=
380·(I2+Q2)+NoiseNBP-NoiseWBP≈
380·(I2+Q2)
(8)
由于依据上式计算得到的信号强度的波动与天线的方向图、卫星的运动和多径效应有关,因此,对计算出的瞬时信号强度SI进行消趋势低通滤波是必须的。本文采用巴特沃斯低通滤波器作为消趋势滤波器。以某一时刻采集到的GPS的7号卫星的L1频点信号为例,未经滤波的瞬时信号强度如图8所示。
图8 未经消趋势滤波的原始信号强度
为了比较不同阶数的消趋势滤波的效果,分别设计了3阶、4阶、5阶、6阶和7阶巴特沃斯低通滤波器,3 dB截止频率均为0.1 Hz,然后以原始信号强度作为滤波器的输入,则经过不同阶数的巴特沃斯低通滤波器滤波后的信号强度如图9所示。
图9 不同阶数的滤波器滤波后的信号强度
由图9可知,6阶消趋势滤波的效果与7阶消趋势滤波的效果相当,均要明显优于3阶、4阶及5阶消趋势低通滤波的效果,同时考虑到滤波器的稳定性和运算量,本文选取的巴特沃斯低通滤波器的阶数为6阶,为了保证滤波器的稳定性,滤波器由3个级联的2阶滤波器组成。
对于每一个2阶滤波器,可以由常系数微分方程来表示[9]:
y(n)=
a1y(n-1)+a2y(n-2)+
b0x(n)+b1x(n-1)+b2x(n-2)
(9)
式中,ak和bk均表示滤波器的系数,x(n)表示输入滤波器的数字序列,y(n)表示滤波器的输出,滤波器的系数a1,a2,b0,b1,b2分别为
a1=-1.647 459 981 077
(10)
a2=0.700 896 781 188 4
(11)
b0=0.013 359 200 027 9
(12)
b1=0.026 718 400 055 7
(13)
b2=0.013 359 200 027 9
(14)
电离层闪烁监测上位机软件读取GPS/BD双模多频点电离层闪烁监测接收机发送过来各通道信号强度、载波相位测量值、伪距测量值、可见卫星仰角及方位角、参与解算的卫星数、用户位置、精度因子等数据,并完成数据预处理,进行信号强度和载波相位的消趋势滤波,然后计算电离层幅度闪烁指数和相位闪烁指数,并可根据用户的操作,在软件中实时的绘制各通道载噪比、星空图、用户位置变化曲线、用户位置偏差变化曲线、伪距曲线、载波相位曲线、电离层幅度闪烁曲线和相位闪烁曲线等,以可视化的方式显示各项数据信息,并可根据设置存储各项信息,当闪烁发生时自动记录各种观测数据,实现电离层闪烁监测的无人值守。
电离层闪烁监测上位机软件采用C#语言基于WinForm框架进行开发,软件的结构如图10所示。
图10 电离层闪烁监测上位机软件结构
软件采用分层结构设计,分为数据访问层、逻辑层和用户层,层与层之间实现松耦合,层内各功能模块实现高内聚。
在数据访问层中,分别实现对文件、串口和数据库的读写,然后通过统一的数据访问接口向上层提供对底层数据的读写功能。
逻辑层包括控制逻辑、电离层闪烁监测逻辑、数据处理逻辑和数据存储逻辑四大模块,其中,控制逻辑模块负责接收用户层发送过来的控制命令,并对其他3个模块进行控制和数据交互,并返回相应的数据给用户层;数据处理逻辑模块主要包括对GPS/BD卫星的各频点信号的信号强度和载波相位进行消趋势滤波处理;电离层闪烁监测逻辑模块获取经过处理后的数据进行GPS/BD卫星各频点信号的电离层幅度闪烁和相位闪烁指数的计算,并得到当前时刻的最大幅度闪烁指数和最大相位闪烁指数,同时对电离层闪烁事件的发生进行判断以及记录统计;数据存储逻辑模块根据控制逻辑模块的指令对指定的数据实现按小时、天、月进行存储,并生成相应的存储日志,以便事后分析。
用户层包括软件主界面和各个功能视图界面,对上接受用户的操作,并将数据进行可视化显示,对下与逻辑层进行交互,向逻辑层发送控制命令并得到各类数据。
为了提高软件的性能和保证用户界面的流畅,软件以多线程的方式运行,包括主线程、串口监听线程和任务处理线程这3个线程,主线程负责软件各功能模块的控制和用户界面的交互;串口监听线程负责监听串口接收事件并读取串口数据;任务处理线程负责进行数据处理,并完成电离层闪烁监测相关的运算。
电离层幅度闪烁指数S4的定义如式(15)所示,其定义为信号强度的标准差与平均值的比值[10],它与接收机接收到的卫星信号强度的变化大小有关。
(15)
式中,〈〉表示60个点的算术平均运算。对于经过了消趋势低通滤波的信号强度SIlpf ,利用式(16)可得到信号强度的消趋势值SI′,其在1左右波动,图11为前面提到的某一时刻采集到的GPS的7号卫星的L1频点信号的消趋势值。
(16)
图11 信号强度的消趋势值
因此,在得到信号强度的消趋势值SI′之后,式(15)修改为
(17)
相位闪烁指数是用载波相位测量值φ的标准差σφ来表示的[10],它表征了在电离层相位闪烁影响下卫星信号的相位随机波动的情况,直接反映了相位闪烁的强弱。它的定义式为
(18)
式中,〈〉表示60个点的算术平均运算,每分钟计算得到一个σφ。由于载波相位的测量值受到对流层、本地接收机钟差、卫星钟差等多方面因素的影响,具有较强的趋势变化,同时由于这些影响因素都具有缓变特征,所以需要采用高通滤波器来进行消趋势滤波,得到消趋势后的载波相位测量值φ′。对于消趋势高通滤波器的分析与前面对消趋势低通滤波器的分析类似,在此不再赘述。本文选取的是6阶巴特沃斯高通滤波器作为消趋势高通滤波器,3 dB截止频率为0.1 Hz,以GPS的3号卫星L2频点信号为例,图12为某时刻采集到的其原始的载波相位测量值与经过消趋势滤波后的载波相位测量值对比图。
图12 GPS的Prn3号星L2频点的消趋势滤波前后载波相位测量值
从图中可看出,由于卫星与接收机存在相对运动,故原始的载波相位测量值是逐渐增大或减小的,直接由此无法解析出由相位闪烁引起的相位随机波动情况;但通过消趋势高通滤波器对原始的载波相位测量值进行处理后,得到的消趋势后的载波相位测量值φ′是0左右波动的,其波动情况与相位闪烁的强弱相关。
因此,利用消趋势后的载波相位测量值φ′,式(18)修改为
(19)
为了验证所设计的GPS/BD双模电离层闪烁监测系统的可用性,于2018年2月5日21时至2月6日13时接收天上的GPS/BD卫星信号进行连续运行测试,电离层闪烁监测上位机软件运行主界面如图13所示。
图13 电离层闪烁监测软件实时运行图
与同一时间同一地点运行的武汉大学的电离层闪烁监测仪的观测结果作对比,图14为电离层幅度闪烁指数S4对比图,图15为电离层相位闪烁指数σφ对比图。
图14 电离层幅度闪烁指数对比图
图15 电离层相位闪烁指数对比图
从两者的对比图可知,本文所设计的电离层闪烁监测系统与武汉大学的电离层闪烁监测仪在幅度闪烁指数S4和相位闪烁指数σφ上的变化基本一致,表明本文所设计的GPS/BD双模多频电离层闪烁监测系统是可行的。
本文先简要地介绍了所设计的GPS/BD双模电离层闪烁监测系统的总体框架,给出了GPS/BD双模多频点电离层闪烁监测接收机的硬件和嵌入式软件设计结构,对捕获模块和跟踪模块进行了详细的说明,并对跟踪环中信号强度的计算进行了详细的阐述和分析。同时介绍了消趋势滤波器的设计并给出了相应的参数,然后介绍了电离层闪烁监测上位机软件的结构及设计,具体说明了电离层幅度闪烁指数S4和相位闪烁指数的计算流程和方法。在文章的最后,给出了系统运行效果及运行测试结果。
[1] 安盼盼,肖志斌,唐小妹,等. 电离层闪烁对接收机的影响[J]. 全球定位系统, 2017, 42(4):47-54.
[2] GUO Kai, ZHAO Yan, LIU Yang, et al. Study of Ionospheric Scintillation Characteristics in Australia with GNSS During 2011—2015[J]. Advances in Space Research, 2017, 59(12):2909-2922.
[3] 蔡磊,徐继生,尹凡,等. L波段电离层闪烁与TEC监测系统研制[J]. 电波科学学报, 2008, 23(4):717-721.
[4] DE OLIVEIRA MORAES A, COSTA E, ABDU M A, et al. The Variability of Low-Latitude Ionospheric Amplitude and Phase Scintillation Detected by a Triple-Frequency GPS Receiver[J]. Radio Science, 2017, 52(4):439-460.
[5] VAN DIERENDONCK A J, HUA Q. Measuring Ionospheric Scintillation Effects from GPS Signals[C]∥ 57th Annual Meeting of the Institute of Navigation, Albuquerque, NM: [s.n.], 2001:391-396.
[6] 卢兰兰. 基于ARM和FPGA卫星导航接收机的平台设计[D]. 石家庄:河北科技大学, 2016.
[7] 赖思维. 北斗导航接收机信号捕获技术研究与实现[D]. 南京:南京航空航天大学, 2017.
[8] MCCAFFREY A M, JAYACHANDRAN P T. Auroral Scintillation Characteristics Using 100Hz Sampling of Global Positioning System Satellite Signals[C]∥ XXXIth URSI General Assembly and Scientific Symposium, Beijing: IEEE, 2014:1-2.
[9] 李秀花,马雯. 基于FPGA的IIR数字滤波器设计与实现[J]. 电子技术, 2016(5):58-60.
[10] YANG Zhe, LIU Zhizhao. Correlation Between ROTI and Ionospheric Scintillation Indices Using Hong Kong Low-Latitude GPS Data[J]. GPS Solutions, 2016, 20(4):815-824.
林绍灏 男,1990年生,广西人,硕士研究生,主要研究方向为卫星导航、数字信号处理。E-mail:1545384472@qq.com
王守华 男,1975年生,山东人,副教授,主要研究方向为信息处理、导航定位。
纪元法 男,1975年生,山东人,教授,主要研究方向为卫星通信、卫星导航、数字信号处理。
刘 迎 女,1992年生,湖北人,硕士研究生,主要研究方向为卫星导航、数字信号处理。