卫星导航系统模拟电路故障注入方法研究

2018-08-24 08:49
计算机测量与控制 2018年8期
关键词:畸变时钟滤波器

, ,

(北京航空航天大学 电子信息工程学院,北京 100191)

0 引言

全球卫星导航系统(Global Navigation Satellite System,GNSS)在不同的领域包括星空探测,陆海空导航,地质勘探等定位系统中都得到了广泛的应用,其中导航信号的质量直接影响用户接收机的信号接收,捕获,跟踪,同步,定位解算等性能,从而可能使接收机的定位,测速,授时等功能不准确[1]。目前公开的资料中,GNSS的各大卫星系统均出现过信号异常的情况,这些异常均对依赖其定位的相关应用产生了影响,有时甚至会出现接收机无法输出的情况,其中最著名的是GPS SV19号星异常[2],其在1990年出现了L1信号的频谱异常,但在1993年才发现定位误差并进行了相关校正。总结卫星的异常可以发现两个特点[3]:1)卫星信号异常出现频率很小,且难以重复出现,所以预测存在难度;2)基于1)的特点,在卫星信号出现异常时难以及时的发现。

在众多的导致卫星信号异常的因素里,卫星电路故障的影响最大[4]。国外研究学者对电路故障所导致的信号形变提出了不同的模型,依据国际民航组织(international civil aviation organization,ICAO)采用的2OS(2nd Order Step,二阶阶跃)模型[5],把电路故障划分为3类:Thread mode A(TMA,数字畸变模型),Thread mode B(TMB,模拟畸变模型),Thread mode C(TMC,混合畸变模型),而目前针对模拟电路故障TMB的分析大多是直接基于Matlab等仿真软件进行分析的,具体在数字电路FPGA中实现的研究较少,本文对TMB在硬件电路的实现方案进行了详细的理论论证和探究,并在FPGA中进行实现,通过数模转换产生TMB故障的模拟信号,最终从接收机定位和伪码相关图的角度评估分析了TMB畸变信号的影响。

1 TMB模型

模拟畸变是由导航信号生成单元的模拟器件异常而导致的,一般主要是由于上变频和射频放大等异常而导致的,表现为伪随机码在0,1转换时会产生欠阻尼振荡。该模型有两个设置参数,表示振荡幅度衰减大小的衰减因子σ和表示振荡快慢的振荡频率fd。

1.1 TMB模型理论分析

设正常卫星导航信号的伪随机码定义为:

(1)

其ck为二进制伪随机码,u(t)为单位幅度矩阵脉冲,TC为伪码码元宽度,N为码元个数。

TMB模型可看成是正常的导航基带信号通过具有欠阻尼振荡特性的系统而得到的[6]。该系统的二阶等效S函数为:

(2)

将该振荡系统的S函数转换为数字无限脉冲响应滤波器(Infinite Impulse Response,IIR)的二阶Z函数。采用双线性变换法可得到如式(3)所示的Z函数。

(3)

二阶IIR滤波器的时域表达式为:

y(n)=a1y(n-1)+a2y(n-2)+b0x(n)+b1x(n-1)+b2x(n-2)

(4)

其实现即为输入信号x(n),前一时刻的输入x(n-1)和前两个时刻的输入x(n-2)分别与对应的系数b0,b1,b2相乘,前一个时刻的输出信号y(n-1)和前两个时刻的输出信号y(n-2)分别与对应的系数a1,a2相乘,最后累加得到当前时刻的输出y(n)。

式(3)对应的时域的二阶系统响应函数为:

(5)

对式(5)进行傅里叶变换得到式(6):

(6)

对于线性系统,若其频域的冲激响应为H(jw),输入随机过程的功率谱密度为GX(w),利用频谱法可以得到系统输出的功率谱密度GY(w)为GY(w)=|H(jw)|2GX(w)。

通过以上的分析,对TMB在FPGA上的具体实现方法进行分析论证:

1)正常的伪随机序列经过设计的IIR滤波器,振荡的伪码波形在1 bit量化后再实现调制,该实现方法会对码的振荡特性产生一定失真;

2)通过查阅文献[7],信号通过正常的调制后,再通过设计的IIR滤波器来产生TMB畸变,该实现方法对TMB实现原理有一定变形。

对上述的两种实现方法进行理论推理。

设基带信号的表达式为a(t),功率谱密度为Pa(f),IIR滤波器的系统函数为h(t),其频谱函数为H(f),载波频率为ws,输出为y(t),功率谱密度为PY(f)。

1)y(t)=[a(t)×h(t)]coswst,变换后的功率谱密度函数为:

PY(f)=1/4[Pa(f+fs)|H(f+fs)|2+

Pa(f-fs)|H(f-fs)|2]

(7)

2)y(t)=[a(t)coswst]×h(t) ,变换后的功率谱密度函数为:

PY(f)=1/4[Pa(f+fs)+Pa(f-fs)]|H(f)|2

(8)

对比式(7)和式(8)可知y(t)的功率谱密度函数不一样,即式(7)的主信号和滤波器的系统函数均在载波的作用下进行了平移,式(8)仅有主信号在载波的作用下进行了平移,而滤波器的系统函数没有任何的变换。

1.2 TMB模型仿真分析

基于上述的分析采用Matlab进行仿真,其中码长设为1 023,码率设为1.023 kbps,载波频率设为4 kHz,采样频率设为200 kHz,正常的伪码序列与GPS SV1对应。

图1 平衡码的功率谱 图2 异常码的功率谱

(图2,3,4中fd=10 kHz,σ=4.8 kNepers/sec)

从上图可以看到,图2异常码的功率谱相对于图1正常码功率谱的旁瓣,其幅度会有一定的提升。对于方式(2)的实现方式,由于滤波器频率响应频谱的中心点没有平移,所以由图4可以看出其最终输出的功率谱密度在功率增益因子|H(f)|2的影响下,会在fd=10 kHz的附近幅度明显提升,但是对于方式(1)的实现方式,由于滤波器频率响应频谱的中心也平移到了载波的频点上,所以图3可以看出其会在fd+fs=14 kHz的附近幅度会有明显的提升。对比图2,图3和图4可以看出方式(1)的功率谱与正常的伪随机序列直接通过IIR滤波器后的功率谱更加相近,所以本论文中采用方式(1)进行TMB在FPGA上的实现。

TMB相关峰表达式[8]为

RB(τ,σ,fd)=E(τ+T)-2E(τ)+E(τ-T)

(9)

其中:

因为TMB的相关函数里包含了正弦和余弦分量,也就导致了相关曲线的非平滑性和不对称性,由式(9)可知在τ=0附近有最大值。而且fd越小,相关峰偏离理想曲线的抖动频率越小;σ越小,相关峰曲线的抖动幅度越大。

采用Matlab对振荡的伪随机码进行1 bit量化,量化阈值为0.5,再做相关图进行分析。

设置Matlab仿真条件的采样率为102.3 MHz,码率为1.023 MHz,振荡频率为10 MHz,衰减系数为3 MNepers/sec,1 bit量化后的码片图如图5所示,对应的相关图如图6所示。

图5 振荡的码片 图6 振荡码片相关图

分析上图,码在0和1变换时会产生跳变,由于码振荡的非突变性会导致码变换时产生码延迟的现象,所以图6中可以看到畸变后码相关的峰值相对于正常的码相关峰值会向右偏移。在图6中相关峰的右侧会产生两个小尖峰,这主要是由于在图5中每次码0,1转化后的振荡会在当前的采样环境下得到两次异常码值,也就随着振荡的衰减,会采样到两次振荡峰值,而对于图6,在正常情况下相关峰值右侧是平滑下降的,但是由于图5的情况,导致畸变码和本地码相关达到最大峰值后,畸变的码异常值会导致码相关值产生增大的情况,也就是图6相关峰值右侧的小尖峰,而且尖峰的位置与个数与图5振荡后采样的畸变码片的位置和个数是一致的。

图7 多组振荡相关图

设置多组不同的振荡频率和衰减系数得到如图7所示的多组振荡相关图。在fd=9 MHz,σ=4 MNepers/sec时,Matlab在理想条件下采样阈值为0.5时已经得不到任何的振荡信息,所以此时的自相关图与正常的自相关图完全重合。在更小的振荡频率和更大的衰减系数的影响下,自相关峰的左右不对称和峰值下降会更加明显。

参考文献[9]中讨论了TMB模型对信噪比的影响。

(10)

2 FPGA实现

实现具有TMB故障的卫星导航信号模拟器的结构原理如图8所示。上位机负责信号参数的计算,包括导航电文,数控振荡参数(NCO)等,FPGA实现参数接收和信号调制,其中每个可见卫星占据一个通道,主要有电文模块,相位控制模块,载波模块,中频调制模块,幅度模块和主码产生模块。在码产生的过程中加入IIR滤波器模块,达到对TMB故障信号的实现。

图8 TMB故障卫星导航信号模拟器结构

其中IIR滤波器模块是TMB故障在FPGA中实现的关键,而滤波器在FPGA上的实现存在有限字长存储的问题。FPGA系统的每个数值的存储均是用有限长度的二进制数字来表示的,也就导致有限字长数字信号的误差。对于IIR滤波器的实现所引起的误差主要表现在以下两个方面:将IIR的系数的量化效应;在进行数字运算时,为了限制位数而进行的尾数处理。前一种是模拟量数字化引起的误差,后一种对运算位数的处理,在有反馈的IIR滤波器中,会使误差累积而使运算精度下降,甚至引起振荡[10]。因此,在满足一定的精度情况下,设计选择采用补码二进制数表示方式和定点制的运算方式,并通过多次测试选取恰当的数据位数。另外在数据处理的中间过程根据精度和准确度对中间数据的位数进行了扩展,来弥补定点运算的缺陷。

IIR滤波器的实现主要包括乘法累加模块和延时模块,具体实现框图如图9所示。

图9 振荡码片的自相关函数

乘法累加模块实现了不同时刻的输入和反馈与对应的系数相乘,并把相乘结果全部累加。本模块采用FPGA乘法IP核和加法IP核来实现,虽然会比直接使用“+”和“*”需要更长的时间,但是能更好的节省系统的资源。经测算,乘法IP核会延时3个时钟,加法IP核会延时2个时钟,所以从输入到输出的乘法累加模块会9个FPGA的时钟周期。而对输出数据的截短等处理需要额外的2个时钟周期,所以从当前时刻数据的输入到对应该时刻的数据的输出需要11个时钟周期,因此对于输入x(n),x(n-1),x(n-2)和反馈输入y(n-1),y(n-2),每11个时钟进行一次输入更新,图9中的IP核是在FPGA的标准时钟控制下进行计算输出的。

延时模块主要包括输入更新时钟和IP核输入时钟,当前板卡的时钟是250 MHz,所以在该时钟的驱动下IP核进行乘法和累加计算,然后在该时钟的驱动下,再加入一个计数时钟,每11个时钟对乘法IP核的输入进行更新。

此外还需要注意的问题有:

1)因为FPGA所使用的系数b0,b1,b2,a1,a2是经过量化后的,所以在得到最终的累加输出y(n)后,需要将输出的数据除以量化值。

2)在Matlab中计算IIR滤波器的系数时,其滤波器的采样率为FPGA的基准频率除以11。

3)设计中反馈数据y(n-1),y(n-2)是16 bits的,但在经过输出除法之后得到的是19 bits的,此时不能简单的截取19 bits的高16位来作为反馈,因为实际19 bits的输出大部分是在较低的比特位,而截取高位会很明显的将反馈数据缩小,所以改变为保留最高位的符号位,截取低15位作为输出,此时可以得到较好的输出。

3 故障注入

本文故障注入所用的卫星导航信号模拟器是北京航空航天大学通信导航与测试实验室的自研设备。如图10所示是TMB故障的配置界面,在初始频点配置界面上,选择添加异常信号的功能,进而实现对伪码故障里的模拟模型TMB的振荡频率和衰减系数的配置,在点击”开始”按钮之后,模拟器即可输出配置参数的TMB异常信号。模拟器输出的信号使用62 MHz的采集器进行采集后,用软件接收机SatRecv处理并将定位结果输出处理。

图10 TMB配置界面

在测试中,选用GPSL1CA信号的频点,设置用户状态为静止,用户的大地坐标为(40° 116° 1000),仿真时间为2013年6月25日0时0分0秒,对TMB的振荡频率和衰减系数设置不同的数值,得到的不同的定位结果如表1所示。表格中fd单位为MHz,σ单位为MNepers/sec。

表1 不同TMB参数下的定位结果

可以看出,随着振荡频率和衰减系数的增大,其定位误差在逐渐减小。这是因为码振荡中大于阈值的点在逐渐的减小,从而使得码逐渐趋向于正常的码信号。从表1可以看出定位的标准差较小,可见定位具有较高的稳定性。

用采样器将模拟器输出的信号进行采样做相关分析,得到如图11所示的相关图。其中图(a)为正常和畸变信号相关图的比较,图(b)是对图(a)的畸变信号相关图的放大比较。

图11 FPGA相关图分析

将图11与图7进行对比分析。图11的(b)中可以看到随着振荡频率和衰减系数的减小,自相关图的左右不对称性会更加明显,且自相关峰值也会降低,同样计算得到的载噪比也会降低。对比图7,图11在fd=9 MHz,σ=4 MNepers/sec时,相比于正常的相关图仍具有较低的相关峰值。主要原因是在FPGA的实现过程中,由于工程硬件的限制以及IIR滤波器反馈截短导致反馈数据的不准确性,使得硬件仍然可以采样得到振荡信息,所以也就导致此时的自相关峰值仍低于正常值,且定位上依然存在着误差。

4 结论

本文对卫星导航系统模拟电路故障TMB的故障注入方法进行了详细的分析,提出了针对TMB的FPGA实现方法并在硬件上进行了实现,对实现过程中可能会遇到的关键技术进行了说明。本文结合Matlab和FPGA,从理论和工程的角度均对TMB进行了分析,最后通过对模拟器输出的异常信号通过相关图和接收机定位结果进行了对比,分析了TMB故障对信号的影响。本论文目前只是对码故障中的模拟电路故障TMB进行了分析,后期还将基于此实验的基础上对其他常见的故障类型进行实现和探究。

猜你喜欢
畸变时钟滤波器
基于条纹分析技术的镜头畸变校正实验设计
浅谈有源滤波器分析及仿真
基于多模谐振器的超宽带滤波器设计
大型焊接容器局部热处理防畸变工装优化设计
古代的时钟
几何特性对薄壁箱梁畸变效应的影响
从滤波器理解卷积
这个时钟一根针
有趣的时钟
时钟会开“花”