GNSS改进型平均相关捕获技术和Simulink仿真

2019-02-18 01:51王乐宁王孟园
无线电通信技术 2019年2期
关键词:运算量改进型傅里叶

王乐宁,喻 敏*,王孟园,许 辉

(1.武汉理工大学 交通学院,湖北 武汉 430063;2.电子科技大学 通信抗干扰技术国家级重点实验室,四川 成都 611731)

0 引言

卫星信号的成功跟踪和锁定,需接收机提前粗略地估计出该卫星信号的载波频率和C/A码相位,并且要求其估计误差值满足跟踪载波环和码环的牵入范围,该任务由卫星信号的捕获过程完成[1]。对于GNSS用户直接关心的是接收机启动后的定位时间,研究高效和可靠的捕获算法,缩短冷启动的重捕时间,从而减少首次定位所需时间,可迎合快速定位的需求。目前,GNSS软件接收机通用的捕获算法大都基于Van Nee等人提出的FFT圆周相关捕获算法[2],相比传统的时域线性捕获算法和并行频率捕获算法,具有搜索次数少、速度快的特点。

在捕获过程中,搜索框架和运算量是限制捕获时间的两大因素。为了优化捕获算法,国内外学者也从上述两个方面提出改进方案,如罩新贤[3]等人提出了优化搜索路径的方法;Wu.Z.F[4]等人提出利用差分处理技术提高捕获信号的载噪比;Rntnarn.D.V[5]等人通过蝶形FFT算法提高捕获速度。本文将对传统并行码相位搜索框架进行改进,引入二次平均分组采样处理模块以达到下采样的目的,从而减少傅里叶变换点数和降低运算量。利用GNSS软件接收机采集的实际信号进行算法验证,使用Matlab编程和Simulink器件仿真相结合的方式,获得粗码相位的捕获结果和所需时间,以验证改进算法的有效性。

1 并行码相位捕获

GNSS信号捕获大都以GPS为蓝图,是伪码(PRN)、码相位和频率的三维搜索过程[1,3]。在没有历书和星历的支持下,伪码搜索是按照卫星次序进行顺序搜索。其他二维搜索根据搜索框架的不同,可以分为线性捕获、并行频率捕获和并行码相位捕获。传统并行码相位捕获是将码带进行一次傅里叶变换后,然后进行频带搜索,此方法是传统搜索模型中搜索次数最少的。

一般情况,信号捕获过程按照卫星次序依次搜索1~32号卫星即伪码(PRN)捕获,然后进行码相位和频率的二维搜索。假设按照搜索步长500 Hz将多普勒频移搜索范围(±20 kHz)划分为41个频带进行搜索,码相位搜索按照0.5个码片的搜索范围进行对1 023个码片进行搜索(即2 046次搜索),所以并行码相位捕获算法的搜索次数为41×1次。相比线性捕获的41×2 046次搜索和并行频率捕获的1×2 046次搜索,并行码相位捕获算法最为受人青睐。

并行码相位捕获过程中,数字中频信号与本地正余弦载波进行混频生成复数结果I+jQ,然后将此复数结果进行傅里叶变换。进而将变换结果与本地C/A码傅里叶变换的共轭值做乘积运算,得到频域相关结果,最后傅里叶反变换得到时域相关结果,检测相关结果的峰值是否超过门限,便可以得到卫星信号的捕获,如图1[1,5]所示。

图1 并行码相位捕获算法框图

周期伪随机码的相关值大小可以反映捕获结果。从数学推导上看,长度为N的2个周期性序列x(n)和y(n)的相关值z(n)[1,5]为:

(1)

对式(1)进行N点的离散傅里叶变换,得到N点的变换值Z(k):

(2)

2 改进型平均相关捕获算法

尽管并行码相位捕获算法极大地减少了搜索次数,但每完成一次频带搜索,要进行2次傅里叶变换和1次傅里叶逆变换,运算量较大,影响捕获时间。改进型平均相关捕获算法是基于平均相关采样的原理,减少傅里叶变化点数,降低单频带捕获的运算量,进而减少捕获时间的方法。

在采样信号分别与本地的同相、正交载波信号进行混频后,将N点的混频信号进行“二次平均分组采样”[6-7]即选取中频信号采样点的最初1~M点作为分组的起点,将采样点每连续N/2k点进行数据平均后即可得到2k个平均点,这样将采样信号转换为了M组2k点的平均采样,图2为前3点平均分组采样示意图。

图2 前3点平均分组采样示意图

然后将二次平均采样的数据点和本地C/A码同样处理后的数据点进行快速傅里叶变换,结果共轭相乘后反变换,从M组中取最大值相关值判别后输出结果,改进型平均相关捕获框图如图3所示。

图3 改进型平均相关捕获框图

因为要保证平均的每个采样点都在同一个数据码片上,故采用不同起点的分组平均采样取最大相关值的方法。混频后的傅里叶变换将信号变换到频域,其有用信息只包含在前半段频率分量之中,因为后半段是前半段的复数共轭,所以可以进行频谱截半[8-9]。最后进行 IFFT运算进行捕获结果判断,便可以得到相应的码相位起始偏移值和载波频率估计值。改进型平均圆周相关捕获算法相较于传统的并行码相位捕获方法,将2次的N点傅里叶变换运算改为了2M次2k的FFT,一般情况2k远远小于N,故减少了运算量,提高了运算速度。

3 Matlab/Simulink实验仿真

Matlab具有强大的数值分析、数字信号处理和数字图像处理功能,其中,Simulink可以对动态系统进行建模、仿真和分析。Simulink提供了丰富的器件库,支持连续、离散以及二者混合的线性和非线性系统仿真,可以根据仿真的最佳效果来调试及修订控制系统的参数[12-13]。用户可以从模块库中选择所需要的基本功能模块,建立结构图模型,设置仿真参数,进行动态仿真并观看输出结果,针对输出结果进行分析和比较。根据传统并行码相位捕获和改进型平均相关捕获框图,搭建器件完成动态仿真,对捕获结果和所需时间进行比较,验证改进型平均相关捕获算法的正确性和优化性。

3.1 传统并行码相位算法仿真实验

实验采用GNSS接收机采集的频率为9.548 MHz的数字中频信号,采样频率为38.192 MHz。根据传统并行码相位的捕获框架,通过Matlab的load程序将定长数据写入Workspace中,然后利用Simulink的Repeating Sequence Stair器件,即图4中的data器件载入到仿真空间中。将GNSS数字中频信号和本地正余弦信号进行混频,其中的sinCar模块和cosCar模块为本地正余弦信号产生模块,其频率和采样参数的设定根据所搜索的频带而定,混频后再将信号进行傅里叶变换。上述步骤进行的同时,本地C/A码信号也通过C/A码生成器产生,并以GNSS数字中频信号的同样采样频率采样后进行傅里叶变换随后进行共轭,然后与混频后的傅里叶变换相乘进行傅里叶逆变换,取模平方后得出某频带码相位的相关值。如果有峰值出现且满足门限设置则捕获成功,此时正余弦模块的频率和峰值出现的码相位便是GNSS捕获频率和粗码相位,传统并行码相位的仿真图如图4所示。

图4 并行码相位仿真图及捕获结果

由于1 ms采样点数为38 192,传统并行码相位的傅里叶变换和傅里叶逆变换的点数均为38 192。并且Simulink是实时动态系统的仿真,为了保证FFT傅里叶变换模块能正确按照点数进行运算,在傅里叶变换之前加上Buffer模块用于数据缓存,在实际仿真的第一个1 ms时间内是没有显示捕获结果的。为了便于与改进型平均相关捕获算法的结果进行比较,证明改进型算法的优化性,实验进行相关值和捕获时间的实时输出,图4中的Scope模块用于捕获时间的实时观测,图中的Simout模块用于傅里叶逆变换的结果输出到Workspace,从而对捕获的卫星信号的粗略码相位进行显示。传统并行码相位的捕获结果(PRN=6)如图5所示,其中捕获粗码的码相位为28 202,如图6所示。

图5 传统并行码相位捕获结果

图6 传统并行码相位捕获的粗码

3.2 改进型平均相关捕获算法仿真实验

由于Matlab中处理的是离散数据,原则上要选择N点的DFT离散傅里叶变换,但在实际操作中点数选用2的整数幂个,从而进行基于2的快速傅里叶变换FFT更为高效[3,14]。N点的DFT运算要进行N2次复数乘法和N(N-1)次复数加法,而N点的基于2的FFT运算要进行(N/2)lbN次复数乘法和NlbN次复数加法,基于2的FFT运算量减少。对于本文仿真实验未进行平均分组采样之前是进行38 192点傅里叶变换,按照平均分组之后可以将38 192个采样点分成9组2 121点的傅里叶变换,运算量减少较大。如果采样点数是2的整数幂时,运算量减少效果会更为明显。

改进型平均相关捕获算法是在传统并行码相位捕获框架的基础上进行改进的,在采样数据进行傅里叶变换的之前,加上一个平均采样的过程,通过将标称中心频点为9.548 MHz的中频信号数据经过38.192 MHz的采样存放到名为data的Repeating Sequence Stair器件中,和本地载波信号sinCar和cosCar进行混频,和本地C/A码信号进行第一步38.192 MHz采样后继续进行平均采样,同平均后将38 192点下采样9×2 121点快速傅里叶变化即9组18采样点平均的2 121点的快速傅里叶变换,改进型平均圆周相关捕获的Simulink仿真如图7所示。

图7 改进型平均相关捕获的Simulink仿真图

在Matlab中由于FFT快速傅里叶变换时基于2的整数幂的,2 121点的FFT实际操作是补零进行4 096点的FFT[15-16]。第二组FFT时峰值超出了门限值,图8为改进型平均相关捕获结果,其中捕获的码相位为1 567,如图9所示。最后是还原码相位的过程中,可以按照最基本的码相位还原公式进行还原:粗码相位=(平均相关最大值码相位/快速傅里叶点数)×采样点数即(最大值码相位/4 096)×38 192+起点,但是由于采样点并非2的整数幂,故采样点数采用平均分组采样点数,故码相位为(1 567/2 121)×(2 121×18)+2=28 206。

图8 改进型平均相关捕获结果

图9 改进型平均相关捕获算法码相位捕获结果

为了实现传统并行码相位捕获算法和改进型平均相关捕获算法的捕获效率和误差分析,本文选择运用scope模块进行捕获相关峰值的实时输出,从而对所用捕获时间进行直接的图示。通过对图10(a)和图10(b)传统并行码相位仿真捕获时间和改进型平均相关仿真捕获时间的对比,可以得出同一采样信号的不同捕获方法用时不同,并行码相位捕获算法1.9 ms时刻捕获到了卫星,而改进型平均圆周相关捕获算法,仅仅用了1.1 ms的时间,大约缩短了42%的时间,可以看出改进型平均圆周相关能够提高捕获效率,缩短捕获时间。

图10 仿真捕获时间

从图6和图9的捕获的粗码相位对比中可以看出,传统并行码相位的捕获结果为28 202,改进型平均相关捕获算法捕获的粗码相位为28 206,两者有着4个码相位的偏移,存在着0.02%的误差。其中误差原因有2点:① 实验数的采样频率即每毫秒的采样点数不是2的整数幂;② 分组平均采样致使相关点减少,会引起少量的码片偏移。对于粗码的捕获而言误差在允许范围之内,且减少了运算量缩短了近42%捕获时间,可证明改进型平均相关算法具有优化效果。

4 结束语

通过对传统并行码相位的框架进行了改进,提出改进型平均相关捕获技术,将原38 192个采样点的FFT平均分组为9组2 121点的FFT变换(非2的整数幂补零),减少了运算量,可有效地提高捕获效率。利用Matlab/Simulink器件库进行实时捕获框架的搭建,得到改进型算法的捕获结果,验证了改进型平均相关捕获算法的正确性。

通过比较改进型捕获算法的粗码相位捕获结果和所用时间,可以得出改进型平均相关捕获算法比传统并行码相位捕获算法运算量小,捕获时间缩短了42%,虽存在0.02%的码相位误差,但误差在合理范围之内,是传统并行码相位捕获算法的合理优化。

猜你喜欢
运算量改进型傅里叶
一种傅里叶域海量数据高速谱聚类方法
Cr5改进型支承辊探伤无底波原因分析
改进型自抗扰四旋翼无人机控制系统设计与实现
构造Daubechies小波的一些注记
法国数学家、物理学家傅里叶
用平面几何知识解平面解析几何题
减少运算量的途径
基于傅里叶域卷积表示的目标跟踪算法
IWI美国分公司UZI PRO SB半自动冲锋枪改进型
让抛物线动起来吧,为运算量“瘦身”