董国英, 李名祺
(上海无线电设备研究所, 上海 200090)
扩频信号的一种快速捕获技术
董国英, 李名祺
(上海无线电设备研究所, 上海 200090)
介绍了一种双频域并行捕获算法及其快速实现方法,该方法通过将时域的相关运算转换成频域傅里叶变换的乘法运算实现码相位的并行搜索,且基于频域圆周移位的原理,通过对傅里叶变换序列进行循环移位实现多普勒频率的并行搜索,大大减小了运算量和捕获时间。和其他算法相比,本算法捕获时间能缩小一个数量级,尤其适于宽范围高动态扩频信号的快速捕获。
码相位; 多普勒频率; 并行搜索
扩频通信具有保密性好、抗干扰能力强等诸多优点,被广泛应用于天基测控等领域。在这种环境中,高、低轨道飞行器之间往往具有很高的相对速度和加速度,且载频较高,会产生较大的多普勒频移和多普勒频率变化率,因此接收设备必须在宽范围高动态条件下快速完成信号的捕获,也就是必须在较短时间内完成对码相位和载波频率的二维搜索,而传统的捕获算法很可能跟不上载波频率变化的速度。
本文介绍一种双频域并行快速捕获算法,此算法将码相位搜索变换到频域并行实现,并基于频域的圆周移位原理同时实现频率的并行搜索,在资源消耗基本相当的情况下大大缩短捕获时间,可以满足宽范围高动态环境下信号的快速捕获要求。
频域并行码相位搜索法将时域的相关运算变换成频域的乘法运算[1-3],即分别将基带信号和本地扩频码序列进行FFT运算并将FFT的结果进行共轭相乘,最后将乘积进行IFFT运算,即可一次性完成所有码相位的搜索,但是频率维仍然需要串行搜索,在高动态环境下,多普勒范围较宽以±90 kHz为例,如果搜索步长设置为1 kHz,则需要180次串行频率搜索才能完成频率维的捕获。因此,在高动态信号环境下,多普勒频偏范围较宽,需要的搜索时间也会变长。
频域并行频率FFT搜索法将本地扩频码序列与接收信号进行分段相关计算[4-5],再将各段的相关值进行FFT计算,找出FFT结果的峰值并计算对应的频率,即可一次性完成频率的并行搜索,但是该算法需要串行搜索所有的码相位。对应扩频序列的每一个码相位都需要进行分段相关和FFT计算,遍历所有的码相位才能完成码相位的捕获。
该算法在扩频序列较长的情况下仍需要很多次运算才能完成,比如扩频序列长度是1023,采用2倍采样时需要进行2046次码相位的搜索, 搜索时间较长,不能满足快速捕获的要求。
2.1 基于快速傅里叶变换的频域并行码相位搜索
码相位搜索是通过将接收信号序列x(n)和本地扩频码序列c(n)进行相关运算并搜索相关峰值来计算码位移的[6],而两组序列在时间域内的相关运算可以通过序列x(n)和反转序列c(-n)的线性卷积实现。
根据线性卷积的原理,将两个序列分别进行补零,则原序列的线性卷积就等于补零后序列的循环卷积,而根据循环卷积的特性,时域的循环卷积等价于频域的相乘,进而可以利用频域的傅里叶变换计算时域的相关值,如下式所示
=x′(n)*c′(-n)
=IFFT{FFT[x′(n)]×FFT*[c′(n)]}
R(k) =X(k)×C*(k)
=FFT[x′(n)]×FFT*[c′(n)]
(1)
式中:L为采样点数;*为卷积运算;FFT代表傅里叶正变换;IFFT代表傅里叶反变换;*代表求共轭;m代表码位移;x′(n)和c′(-n)分别为x(n)和c(-n)补零后的序列。
由上式可知,实际中可以将时域的相关转换到频域上完成,只需将接收基带信号进行FFT计算,同时将产生的本地码序列进行FFT计算,两个序列的FFT结果进行共轭相乘,并将乘积进行IFFT计算,即得到两个序列在所有相位上的相关值,对相关峰值进行检测,即可一次性搜索所有码相位,实现码相位的并行搜索。
2.2 基于频域圆周移位的并行多普勒频率搜索
由傅里叶变换的圆周频域移位特性可知,对N点的DFT如果[7]
(2)
那么
(3)
因此,序列x(n)与复指数序列ej2πln/N的乘积的傅里叶变换等于X(k)在圆周频域移位l个单位,记为x((k-l))N。
因此,将傅里叶变换序列X(k)循环移动l位再与C*(k)相乘并做IFFT:
(4)
即对傅里叶变换序列X(k)进行循环移位与在时域内对x(n)进行频率补偿后再做FFT等效[8],因此做一次FFT计算并通过FFT结果的频域圆周移位即可同时完成频率和码相位的并行搜索,算法计算量大大减小。
通过对X(k)进行不同位移的移位后与C*(k)相乘并做IFFT,找出IFFT结果组内模值的最大值,并最终找出组间的最大值,通过其对应的组位移计算多普勒频移,通过IFFT模值最大值的位置计算码相位。捕获的原理框图如图1所示。
从上图可以看出,通过将时域相关变换到频域两个序列FFT的乘积,再进行IFFT计算,完成并行码相位搜索;同时基于频域圆周移位将信号FFT进行循环移位后,再与码序列的FFT相乘,并将乘积进行IFFT计算,完成并行多普勒频移搜索。这样双频域快速捕获算法同时在频域完成了对码相位和多普勒频率的二维搜索,运算量和捕获时间都显著减小。
2.3 双频域捕获算法的快速实现方法
对一个伪码周期时间内的接收基带信号做N点FFT,并将其结果存储在RAM中,这样频域的循环移位就可以通过控制读取存储单元的顺序实现,并且通过RAM的缓存作用,处理时钟不再受到采样率的限制,可以采用比较高的时钟域进行乘法和IFFT计算,从而减小捕获时间。基于FPGA平台采用流水线的形式进行乘法和IFFT计算,可实现快速处理。
首先将两个序列的FFT结果分别存储在不同的RAM中,然后分别连续读取RAM多次(需要连续读取RAM的次数为多普勒频偏范围除以FFT频率精度的商,假设为m次)。对存储基带信号FFT结果的RAM每次重新读取都较上一次有1个地址偏移,以此实现频域的圆周移位,而存储本地码序列FFT结果的RAM只需顺序读取即可。将读出的两个序列进行共轭相乘,并对乘积进行IFFT计算,IFFT的计算结果可分为m组,分别对应频域m点循环移位的相关值,即分别对应频域的m次搜索。从每组结果中找出模值的最大值和对应位置,并最终找出组间最大值。最大值所在的组序号乘以fs/N(fs为基带信号采样率,N为FFT点数)即为多普勒频偏,而其对应的位置即为码相位偏移。
本方法通过RAM的缓存作用,将所有的乘法和IFFT计算都放在高时钟域进行,并以流水线的形式实现频域的多次搜索,大大减小了捕获时间。
设定频率捕获范围是±100 kHz,扩频码长度是1 023,扩频码速率是10.23 Mcps,数据速率是8 kbps,采样率是20.46 MHz,高速主处理时钟为120 MHz。为了防止比特跳变的影响,取2个比特时间内的接收信号数据和1个比特时间内的码序列进行计算,其采样点数分别是5 115个点和2 558个点,分别补零到8192点做8192点的FFT。采样率是20.46 MHz,做8192点的FFT,可以得出FFT频率精度是2 497.6 Hz,则±100 kHz的多普勒范围需要搜索81次。
下面将频域并行码相位搜索法、频域并行频率FFT搜索法以及双频域并行捕获方法三种方法的计算量和捕获时间分别进行比较。
对双频域并行捕获算法来说,主要包括以下计算:
b) 将信号FFT与本地码的FFT共轭相乘需实数乘法4N次;
d) 基于频域圆周移位将信号FFT结果进行循环移位然后重复b)、c)搜索81次,因而共需实数乘法20 119 552次,实数加法26 198 016次。
频域并行码相位搜索法和双频域并行捕获方法相比只有d)不同,需将本地载波NCO修正一个步长后进行混频,然后重复a)~c)81次(频率精度相同条件下),则共需实数乘法37 158 912次,实数加法51 757 056次。
频域并行频率FFT搜索法每个码相位需要做一次5 115点的相关累加和一次FFT(以128个分段即128点FFT为例),共需要搜索2 046个码相位,共需实数乘法45 527 592次,实数加法26 430 228次。
双频域并行捕获算法的快速实现方法采用流水线的方式实现频域的圆周移位,供需进行1次FFT计算和81次IFFT计算,按照主处理时钟是120 MHz,流水线运算的(乘积及IFFT)的处理时间为5.6 ms;比较而言,频域并行码相位搜索法运算需要进行81次FFT计算和81次IFFT计算,处理时间为11.35 ms;频域并行频率FFT搜索法需要进行2 046次5 115点的相关运算和128点的FFT运算,处理时间为87.2 ms。需要特别说明的是,上面只计算了数学运算的处理时间,且所有的运算均在高时钟域进行,而捕获时间除了运算时间外还应包括FFT运算的处理时延,即从FFT输入使能拉高到FFT输出使能拉高之间的时间(一般小于200 μs)。
从表1可以看出,和频域并行码相位搜索法相比,本算法加法和乘法运算次数分别减小了50%和46%,运算时间减小了一半;和频域并行频率FFT搜索法相比,本算法加法运算次数相当,乘法运算次数减小了56%,而运算时间更是小了一个数量级,因此双频域并行捕获算法运算量小,捕获时间短,比较适合高动态环境的快速捕获。
表1 运算量和运算时间比较
本算法通过将两个序列的时域相关运算转换到频域傅里叶变换的乘法运算,并对乘积进行傅里叶逆变换,实现频域码相位的并行搜索,并基于频域圆周移位的原理,依次将接收信号的傅里叶变换序列进行圆周移位后再进行乘法和傅里叶逆变换,实现频域多普勒频率的搜索。和频域并行码相位搜索法相比,本算法可以在消耗资源不变且捕获灵敏度相同的情况下,节省一半的运算量和捕获时间,和其他捕获算法相比,本算法最大的优势就是捕获时间短,可以将捕获时间缩小一个数量级,因此特别适用于扩频信号的快速捕获。
[1] 张帆. GPS捕获设计与VLSI实现方法[D].西安:西安电子科技大学, 2011: 15-26.
[2] 祁东杰. 大频偏-高动态扩频信号捕获跟踪技术及其FPGA实现[D]. 北京:北京理工大学, 2015: 14-28.
[3] 赵春燕, 崔嵬. 一种可克服非相干数据影响的直扩信号捕获算法[J]. 电子学报, 2011, 39(7): 1491-1496.
[4] 谢伟. GPS中伪随机码的捕获技术研究[D]. 安徽:安徽大学, 2007: 26-46.
[5] 黄振, 陆建华,杨士中. 基于 DMF 直扩系统捕获性能的研[J]. 电路与系统学报, 2002, 7(1): 92-95.
[6] 梁丽芳. 基于FPGAt利用FFT算法实现GPSC-A码捕获的研究[D].辽宁:大连海事大学, 2009: 14-23.
[7] 方艳梅,刘永清,等(译). 数字信号处理—原理、算法与应用[M]. 北京:电子工业出版社, 2014: 350-356.
[8] 张现宇,郭熙业,王跃科,等. 一种高动态环境下卫星扩频信号的快速捕获方法研究[J]. 宇航计测技术, 2014, 34(4): 18-22.
Quickly Acquisition Technology of Spread Spectrum Signals
DONGGuo-ying,LIMing-qi
(Shanghai Radio Equipment Research Institude, Shanghai 200090, China)
An bi-frequency domain acquisition algorithm and its fast implementation method is given, which can realize the search of code phase and Doppler frequency in parallel. Instead of calculating correlation in time domain, the parallel search of code phase is carried out by executing multiplication in frequency domain. Meanwhile,based on the principle of circular shift of frequency domain, the fourier transform sequence is cyclic shifted with different offset to search Doppler frequency in parallel. As a result, the amount of computation and the capture time is significantly reduced. Compared with other algorithms, the capture time can be reduced greatly. So it is suitable for rapid acquisition of spread spectrum signals under large deviation and high dynamic conditions.
code phase; Doppler frequency; parallel search
1671-0576(2017)01-0048-04
2016-12-16
董国英(1984-),女,工程师,硕士,主要从事弹载数据链方向的基带信号处理研究工作;李名祺(1986-),男,工程师,硕士,主要从事授时通信、弹载数据链等信号处理方面的研究工作。
TN914.42
A