基于FPGA的BOC(1,1)信号捕获技术

2017-04-26 01:34王奕新左启耀
导航定位与授时 2017年2期
关键词:伪码支路载波

王奕新,左启耀,李 峰

(北京自动化控制设备研究所,北京 100074)

基于FPGA的BOC(1,1)信号捕获技术

王奕新,左启耀,李 峰

(北京自动化控制设备研究所,北京 100074)

BOC调制是新一代卫星导航系统中广泛采用的调制方式,在时域上具有多峰值特性,副峰的存在增加了捕获的难度。采用自相关副峰消除技术(ASPeCT)在原有的BOC码相关支路的基础上增加一条伪码相关支路,可以有效削弱码相位检测函数的副峰,避免误捕获,是一种性能良好的BOC信号捕获技术。提出一种采用二维并行快速搜索的在FPGA芯片中实现ASPeCT捕获技术的方案,可以显著缩短捕获时间。在理论分析和仿真验证的基础上,采用Verilog硬件描述语言在接收机FPGA+DSP平台上编程实现,在露天测试中,成功捕获到Galileo E1B卫星导航信号,并对ChipScope采集的数字中频信号的多普勒频率和码相位静态捕获结果进行验证,与同一段信号的Matlab仿真结果一致,证明所提出的技术方案正确合理可行。

BOC调制;ASPeCT技术;信号捕获;FPGA

0 引言

随着卫星导航技术的发展,传统的BPSK调制信号在提高定位精度上遭遇瓶颈,因此,新一代卫星导航系统计划采用BOC调制方式[1]。BOC调制相较于BPSK调制,增加了一个副载波调制环节,将原有的基带信号频谱分别向左右两侧搬移。BOC调制不仅提高了频段的复用性,而且信号的自相关函数峰值相较于BPSK信号更加尖锐,有利于提高伪距测量精度[2];但是自相关函数的多峰值特性[3]也增加了信号捕获的复杂性,尤其是存在噪声和干扰的情况下,容易造成误捕获,给接收机捕获算法设计带来难度。

BOC信号捕获技术的研究重点是如何正确识别主峰值,BPSK-Like捕获算法[4]只捕获频谱中一个边带,适合高信噪比信号捕获;SCC捕获算法[5]、三路并行相关捕获算法[6]、Filtered捕获算法[7]和ASPeCT算法[8]都是通过增加额外的相关支路来确定主峰,由于2个频谱边带都参与运算,所以低信噪比信号也有很好的处理效果。本文提出一种基于二维并行快速搜索的ASPeCT捕获技术实现方案,并在FPGA芯片中完成了方案的软件设计,以及实际信号的捕获测试。

1 ASPeCT算法实现原理

通过多普勒频率和码相位的二维搜索实现捕获。如果每次只搜索一个单元,对于伪码周期长度为4ms的BOC(1,1)调制信号,完成128×8184个单元的搜索大约需要1h,难以在FPGA上实现。因此,本文提出了ASPeCT算法的二维并行快速搜索实现方案,在多普勒频率一维,通过傅里叶变换一次完成128个频率的搜索;在码相位一维,通过100路并行相关器一次搜索100个码相位,将搜索次数由128×8184降为82,最小捕获时间降为328ms。算法原理图如图1所示。

图1 基于二维并行快速搜索的ASPeCT捕获算法原理图Fig.1 The schematic diagram of ASPeCT acquisition algorithm based on 2-D parallel fast search

以图1中最下方一对相关支路为例,它可以完成一个码相位上全部频率搜索单元的搜索,将输入的BOC(1,1)数字中频信号表示为[9]

(1)

其中,c(t)和χ(t)分别表示信号中的调制伪码和调制副载波,τi(t)表示传播相位时延,θi(t)是载波相位。

对于BOC码相关支路,中频输入信号先与本地载波混频,再与本地BOC码做相关运算,结果可表示为w1(t) = 2c(t-τi(t))c(t-τo(t))χ(t-τi(t))

χ(t-τo(t))·cosθi(t)(cosθo(t)+jsinθo(t))

=c(t-τi(t))c(t-τo(t))χ(t-τi(t))

χ(t-τo(t))·((cosθe(t)-cos(θi(t)+

θo(t)))+j(sinθe(t)+sin(θi(t)+θo(t))))

(2)

其中,θe(t)=θi(t)-θo(t)。再经过时间为T的积分,对积分结果采样得到

(cosφe(nT)+jsinφe(nT))

(3)

RBOC/BOC(τ)为BOC码自相关函数,τe(t)=τi(t)-τo(t),ωe(t)=ωi(t)-ωo(t),ωi(t)和ωo(t)分别为信号载波和本地载波角频率,φe(t)表示信号载波和本地载波的相位差均值。RBOC/BOC(τ)的表达式为

χ(t-τi(t))χ(t-τo(t)))dt

(4)

(5)

故经过归一化FFT的结果可表示为

(cosφe+jsinφe)L(ωe,k)

(6)

对S1(k)取模平方,得到式(7)。

(7)

伪码相关支路有类似结果

(8)

其中,RBOC/PRN(τ)为BOC码与伪码的互相关函数,RBOC/PRN(τ)的表达式为

χ(t-τi(t)))dt

(9)

将V1与V2相减,得到

(10)

在预设BOC(1,1)中频信号载噪比为45dB·Hz、码相位延迟为1000码片的条件下,BOC码相关支路输出的取模平方结果V1、伪码相关支路输出的V2及两路求差结果V分别如图2所示,可以看出,基于二维并行快速搜索的ASPeCT算法通过伪码相关支路可以显著削减位于捕获码相位±0.5码片处的副峰,使合路输出检测量不受副峰的影响,主峰值更加尖锐,是一种性能良好的快速高精度捕获算法。

(a)BOC码相关支路平方结果 (a) The square result of BOC code correlation branch

图3 基于二维并行快速搜索的ASPeCT捕获算法流程图Fig.3 The flowing chart of ASPeCT acquisition algorithm based on 2-D parallel fast search

(b)伪码相关支路平方结果 (b) The square result of pseudo code correlation branch

(c)两路求差结果 (c) The subtraction of two branches图2 两路求差前后的结果Fig.2 The result before and after subtraction of two branches

2 ASPeCT算法的硬件实现

基于二维并行快速搜索的ASPeCT捕获算法在FPGA+DSP硬件平台上实现,其中FPGA采用Xilinx公司的Kintex-7 K325T芯片,工作时钟为62M,中频信号数据速率为62M,位数为4bit。

2.1 实现流程

基于二维并行快速搜索的ASPeCT捕获算法流程如图3所示。输入中频信号先与载波NCO生成的正余弦信号相乘得到同相正交两路零中频信号I_Data和Q_Data,再将它们分别与码NCO生成的伪码序列Code和BOC码序列Code_BOC相关,一次完成K个码相位上的相关,经过部分累积降低采样频率分别得到P个采样点补零至M点进行傅里叶变换,将时域信号转换为频域信号,一次完成对多普勒频率一维的搜索,然后将两条相关支路的变换结果平方相减生成检测量,最后将检测量的最大值MaxValue和对应地址MaxAddr传给DSP,在DSP的控制下进行N/K次运算完成对整个伪码周期的搜索。

以Galileo E1B信号的捕获为例,Galileo E1B信号采用CBOC(6,1,1/11,'+')调制方式,只捕获其中的BOC(1,1)成分造成的损耗不超过0.5dB。Galileo E1B信号长度为4ms,包含4092码片。将实现的搜索参数说明如下:

1)对于多普勒频率一维,一般陆基运动载体上的卫星信号接收机接收到载波的最大多普勒频率为±10kHz,为了覆盖20kHz的频率搜索范围,相干积分时间最长不能超过50μs[11]。对于伪码周期为4ms的Galileo E1B信号,取P等于80,4ms信号经过50μs相关累积得到80点采样数据。如果将这80点数据直接进行FFT,由式(10)可知,虽然对所有频率单元的搜索可以一次完成,但是当ωe偏离谱线时会产生频率损耗L2(ωe,k),多普勒频率一维的输出结果如图4所示。

图4 80点FFT归一化输出结果Fig.4 The normalized output result of 80 point FFT

可以看出,在FFT点数和输入数据个数均为80时,FFT的频谱泄漏会造成ASPeCT算法多普勒频率输出结果最大3.9dB的频率损耗,严重影响性能。为了弥补频率损耗,同时兼顾FFT对输入数据的长度是以2为底的指数幂的要求,取FFT点数M为128,将80点采样数据补零至128点进行运算。补零后的多普勒频率输出结果如图5所示。

图5 128点补零FFT归一化输出结果Fig.5 The normalized output result of 128 point FFT

由图5可知,补零后的ASPeCT捕获算法最大仅有1.4dB的频率损耗,满足实际要求。算法的频率分辨率为

Δf=20kHz/128=156.25Hz

(11)

2)对于码相位一维,GalileoE1B信号的伪码周期长度为4092码片,选取码相位搜索步长Δc为0.5码片,实现对整个伪码周期的搜索需要遍历8184个搜索单元。本文取K等于100,即采用100路并行相关器,一次搜索100个半码相位,只需82次就可以完成对码相位一维的搜索。算法对码相位的估算精度为0.5码片。

可以看出,基于二维并行快速搜索的ASPeCT捕获算法通过复杂的傅里叶变换和追加更多相关器资源,在码相位估算精度和频率分辨率不变的前提下,将搜索次数从原有的128×8184次降为82次,最小捕获时间从70min降为328ms,适合在资源丰富的Kintex-7芯片中实现。

2.2 实现结构

2.2.1 本地载波和码的生成

捕获电路的载波NCO通过累加DSP提供的载波频率控制字,并将累加值作为取样地址送入相幅转换电路得到本地复制正余弦载波信号Carrier_Sin和Carrier_Cos用于混频,如图6所示。

码NCO通过读入DSP提供的码频率控制字,得到2倍于伪码速率的半码片发生计数信号Code_En,当计数值为偶数时,通过ROM控制器依次读取存在ROM里的4092个Galileo E1B信号的伪码码片值,得到伪码序列Code;如果同时在计数值为奇数时反转伪码电平,即可生成经副载波调制的伪码序列Code_BOC,如图7所示。

2.2.2 相关支路数据的处理

BOC码相关支路的结构如图8所示。将BOC码延时得到依次相差半个码片的100路信号,再将这100路信号分别与同相正交支路上的零中频信号相关并进行50μs累积,每个码相位上产生80个累积结果,100路信号共产生100×80个累积结果。每完成一次50μs累积,就将100个结果纵向写入100×80 RAM的一列,4ms写满RAM的80列。当一个RAM纵向写满后,依次将每个码相位上的80个结果横向读出补零后进行128点FFT变换,输出的实部和虚部结果分别为RE_BOC和IM_BOC。伪码相关支路的情况与之类似,输出的FFT变换实部和虚部结果分别为RE_PRN和IM_PRN。

图6 本地载波生成的结构框图Fig.6 The structured flowchart of local carrier generation

图7 本地码生成的结构框图Fig.7 The structured flowchart of local code generation

图8 BOC码相关支路的结构框图Fig.8 The structured flowchart of BOC code correlation branch

2.2.3 检测量的生成

将BOC码和伪码相关支路输出的FFT结果平方相减得到峰值检测量Value,计算公式为

(12)

实现框图如图9所示,利用平方差公式进行分解,并采用流水线的工作模式,依次计算100个半码相位上FFT变换输出的多普勒频率搜索结果存入100×128 RAM,然后逐一比较选出最大值MaxValue和对应地址MaxAddr传给DSP,由DSP比较82次搜索的结果得到整个伪码周期的最大值,当最大值超过门限时,声明捕获成功,对应地址就是捕获到信号的码相位时延和多普勒频率。

图9 检测量生成的结构框图Fig.9 The structured flowchart of test quantity generation

3 ASPeCT算法验证

ASPeCT算法验证是通过接收实际Galileo E1B信号实现的。2015年8月25日上午9点54分,北京市仅可以观测到播发BOC(1,1)信号的Galileo系统在轨工作的11号卫星,经过反复调试,解决实际问题,在露天环境下,采用基于二维并行快速搜索的ASPeCT捕获算法在“FPGA+DSP”平台上成功实现了对11号卫星的动态捕获,并利用ChipScope采集了4bit卫星信号数据,数据中频频率为15.58MHz,数据长度为4ms。实际卫星信号的Matlab捕获仿真结果如图10所示,信号的多普勒频率和码相位时延分别为625Hz和3459.5码片。

(a)多普勒频率捕获结果 (a) The Doppler frequency acquisition result

(b)码相位捕获结果 (b) The code phase acquisition result

(c)二维捕获结果(局部) (c) The two-dimension acquisition result (part)图10 ASPeCT算法的实际卫星信号捕获结果Fig.10 The real satellite signal acquisition result of ASPeCT

同一段卫星信号的FPGA捕获结果如图11所示,可以看出,捕获结果峰值明显,最大值远大于次大值,且在地址00100110000100处有一个幅值为3231的峰值,地址的前七位0010011即十进制数19为码相位捕获结果,后七位0000100即十进制数4为多普勒频率捕获结果,经过DSP计算得到的实际卫星信号的多普勒频率和码相位分别为

Doppler=4Δf=4×156.25=625(Hz)

(13)

Phase=(100×69+19)Δc

=6919×0.5=3459.5(chip)

(14)

与Matlab仿真结果一致,验证了设计的正确性。

图11 基于ASPeCT技术的实际卫星信号的FPGA捕获结果Fig.11 The FPGA acquisition result of actual satellite signal based on ASPeCT

4 结论

为了削弱BOC调制信号的副峰、避免误捕获,ASPeCT算法在原有的BOC码相关支路的基础上增加一条伪码相关支路,实现方案更为复杂,每次只搜索一个单元的串行搜索不能满足BOC信号在FPGA上动态捕获的实现。

本文提出了一种ASPeCT捕获算法在FPGA芯片上的二维并行快速搜索实现方案,在BOC码相关支路和伪码支路并行工作的基础上,在码相位一维,通过追加更多的相关器资源一次搜索多个码相位;在多普勒频率一维,通过傅里叶变换一次完成所有频率单元的搜索,显著缩短了捕获时间。在理论分析和仿真验证的基础上,通过FPGA逻辑编程在FPGA+DSP平台上实现了动态捕获并采集了卫星导航信号数据。数据的FPGA测试结果显示捕获峰值明显,且多普勒频率和码相位时延与Matlab仿真结果一致,证明了方案设计的正确性和有效性。可见,基于二维并行快速搜索的ASPeCT捕获算法是一种捕获BOC(1,1)信号的有效算法,可以在实际应用中加以推广。

[1]BetzJW.TheoffsetcarriermodulationforGPSmodernization[C].ProceedingsofIONNationalTechnicalMeetingInstituteofNavigation, 1999.

[2] 周骥, 郭承军, 曹建蜀, 等.GNSSCBOC信号快速无模糊度捕获算法研究[J]. 信号处理, 2015, 31(7):876-882.

[3] 许磊, 何巍巍, 赵胜.BOC调制导航信号的精确捕获方法研究[J]. 无线电工程, 2015, 45(12):36-39.

[4]MartinN,LeblondV,GuillotelG,etal.BOC(x,y)signalacquisitiontechniquesandperformances[C].Proceedingsofthe16thInternationalTechnicalMeetingoftheSatelliteDivisionoftheInstituteofNavigation,IONGPS/GNSS, 2003.

[5]WardPW.Adesigntechniquetoremovethecorrelationambiguityinbinaryoffsetcarrier(BOC)spreadspectrumsignal[C].ProceedingsofAnnualMeetingoftheInstituteofNavigation&CigtfGuidanceTestSymposium, 2003.

[6] 邢兆栋, 张其善, 杨东凯.GALILEO接收机中BOC(1,1)信号的捕获[J]. 北京航空航天大学学报, 2006, 32(6):687-690.

[7]BrickellF,GardonM,McCurleyS,etal.Fastexponentiationwithprecomputation[C].ProceedingsofEurocryptonAdvancesinCryptology, 1993.

[8]JulienO,CannonME,LachapelleG.ANewunambiguousBOC(n,n)signaltrackingtechnique[C].TheEuropeanNavigationConferenceGNSS, 2004.

[9] 谢钢. 全球导航卫星系统原理——GPS、格洛纳斯和伽利略系统[M]. 北京: 电子工业出版社, 2013.

[10]RabinerLR,GoldB.Theoryandapplicationofdigitalsignalprocessing[M].NJ:PrenticeHall, 1989.

[11] 谢钢.GPS原理与接收机设计[M]. 北京: 电子工业出版社, 2009.

Technique of BOC(1,1) Signal Acquisition Based on FPGA

WANG Yi-xin, ZUO Qi-yao, LI Feng

(Beijing Institute of Automatic Control Equipment, Beijing 100074, China)

BOC modulation will be widely adopted in new satellite navigation system. The signal has multi-peaks in time domain. The existence of side-peak increases the difficulty of acquisition. Autocorrelation side-peak cancellation technique (ASPeCT) is good in performance as it can effectively weaken the side-peak of code-phase detecting function and avoid false lock by adding a pseudo-code detecting branch on the basis of one BOC-code detecting branch. An implementation project of 2-D parallel fast search for ASPeCT on the FPGA chip is put forward which can significantly cut the acquisition time.On the basis of theoretical analysis and emulation verification, the acquisition algorithm is realized by Verilog HDL programing on FPGA+DSP receiving platform. The Galileo E1B satellite navigation signal is successfully acquired in the open air test. The Doppler frequency and code phase static acquisition results of the digital IF signal captured by ChipScope fall in line with the Matlab simulation results of the same signal, which proves the validity and feasibility of the project put forward.

BOC modulation; ASPeCT; Signal acquisition; FPGA

2016-06-02;

2016-08-01

王奕新(1991-),女,硕士,主要从事卫星接收机基带处理算法研究。E-mail:wangyixin0916@163.com

10.19306/j.cnki.2095-8110.2017.02.012

TN967.1

A

2095-8110(2017)02-0064-08

猜你喜欢
伪码支路载波
水声单载波扩频均衡技术研究
一种新的生成树组随机求取算法
带残余频偏的QPSK-DSSS信号参数盲估计
一种大扩频比突发直接序列扩频信号同步方法
用于SAR与通信一体化系统的滤波器组多载波波形
低载波比下三电平NPC逆变器同步SVPWM算法
支路不对称发电机故障下定子电磁力仿真分析
基于重采样技术的短码直扩信号伪码估计
中国移动LTE FDD&TDD载波聚合部署建议
抽水蓄能机组定子支路数应用与研究