赵文龙,吴承安,王景景,牛秋娜
(青岛科技大学 信息科学技术学院,山东 青岛 266061)
直接序列扩频技术凭借多种独特优点被广泛应用于军民通信领域。扩频码同步技术是扩频通信中的关键技术,码同步的好坏决定了通信机的性能。众多国内外学者对该技术进行了研究和改进,目前研究热点多集中在提高伪码同步精度和速度上。
在伪码捕获部分,PAN 等[1]提出了基于离散多项式相位变换改进的部分匹配滤波器和频域快速傅里叶变换相结合(partial matched filters combined with fast Fourier transform,PMF-FFT)的捕获算法,实现了伪码相位和载波频偏的并行捕获,具有较快的捕获速度。HOU 等[2]在PMF-FFT 方案基础上进行了改进,在捕获模块和跟踪模块间加上精细的频率估计模块,提高了系统的捕获精度。但对于长扩频码,PMF-FFT 算法系统复杂度高,实现难度较大,且使用到匹配滤波器的捕获法几乎都存在占用硬件资源多、硬件平台兼容性差的问题。MUHAMMAD 等[3]采用一种常用的基于快速傅里叶变换(fast Fourier transform,FFT)的捕获法捕获直扩信号,并行搜索伪码相位,串行搜索载波频偏。杨伟君等[4]在基于FFT 的捕获法基础上进行了改进,提出利用差分译码技术缓解载波频偏的影响,先求出伪码相位,再利用解扩后的数据求载波频偏。但该方法降低了接收信号的信噪比,且增加了硬件的使用量。
在伪码跟踪部分,WANG 等[5]提出了一种对偶结构的非相干码跟踪环,其包含粗跟踪回路和细跟踪回路,该方法在跟踪精度和收敛时间之间取得较好的平衡,并且拥有较好的鲁棒性。XIAO 等[6]提出了基于迭代自适应卡尔曼滤波的伪码跟踪算法,通过反复执行前向跟踪和后向估计获得越来越精确的跟踪结果,降低了载波同步误差对码跟踪性能的影响。同时,使用点积功率码鉴别器性能评估算法优化了码鉴别方式,进一步提高了码跟踪性能。这两个方法都提升了伪码跟踪效果,但皆在不同程度上引入额外计算量。ROSADO 等[7]提出了一种基于卡尔曼滤波器的高灵敏度跟踪结构,将卡尔曼滤波器的低复杂度和最优性与测量信号处理相结合,仿真结果表明该结构能够在最低为15 dB的载噪比下稳定跟踪信号。孟生云等[8]对跟踪鉴相曲线进行了研究,提出基于相关曲线主瓣的二阶中心矩扩展因子的性能评价方法,利用伪码相关曲线主瓣在干扰前后的畸变情况,反映干扰对伪码跟踪性能的影响。这两个方法具有较低的复杂度,且在仿真中取得了较好的效果,但还没通过工程应用的检验。
为了解决上述问题,本工作设计了一种低捕获复杂度和宽跟踪范围的伪码同步技术。并进行了硬件实现和实验验证。
直接序列扩频系统的组成如图1所示,由信源产生的信息码元与伪码序列进行相乘,产生与后者相同速率的扩频序列,扩频序列对载波进行调制,这样就得到了直接序列扩频通信系统的发射信号。接收端对接收信号进行捕获和跟踪处理后,用与发送端同步后的伪码序列对接收信号进行解扩,然后进行解调运算,最后恢复出发端发送的信息码元。
图1 直接序列扩频系统组成原理图Fig.1 Schematic diagram of direct sequence spread spectrum system
2.1.1 FFT 相关计算的改进
如果在时域直接计算两个伪码序列的相关值,将会产生巨大的计算量。因此,本文采用FFT 相关法将时域卷积运算转换为频域相乘运算,大幅降低计算量[8],具体公式如下
常用的扩频序列长度为2n-1,经过X倍上采样后长度为X(2n-1),而基2快速傅里叶变换运算的数据长度需为2n',所以上采样后的扩频序列长度不符合要求。在进行相关计算时,一般会对接收信号进行分段处理,每段的长度与上采样后的本地扩频序列长度保持一致。因此,本地扩频序列和每段接收信号的长度都需要进行调整,本工作使用双倍长度补零法对两者的长度进行拓展。对本地伪码序列的处理方法为:复制该序列为两段,在两段序列中间补充L-2N个零,L=(2n″)min≥2N-1(N为上采样后的扩频序列长度)。对接收信号的处理方法为:先对接收信号按照每段一个码元的长度进行分段处理,再将各段进行补零直至长度为L。
假设本地伪码序列长为127,上采样倍数为1,则L=256,两段伪码序列中间补充2个零。如图2所示,使用双倍补零法改进后FFT 相关计算结果和使用FFT 相关计算的结果完全相同,既满足快速傅里叶变换算法要求,又没有造成相关结果的额外损失。
图2 使用双倍补零法改进的FFT相关计算效果图Fig.2 Effect diagram of improved FFT correlation calculation using double zero filling method
2.1.2 载波频偏搜索机制的改进
水声通信的载波频偏公式为
其中f0为载波频率,c为声音在水中的传播速度,v(t)表示收发信机间的相对运动速度。
本工作假设水声通信场景为:收发两端相对移动速度为15 m·s-1,c为1 450 m·s-1,f0为14 kHz,使用扩频码为m 码,码长为127。该水声通信场景符合大部分初步海试的要求,本文对载波频偏搜索机制的改动均基于此水声通信场景,在其他水声通信场景下也可使用类似方法,但需对参数进行调整。
传统的伪码捕获法是时频二维串行捕获法,即在由伪码步进相位和载波频偏搜索间隔构成的二维空间进行搜索,其捕获效果如图3 所示。而基于FFT 的伪码捕获法对伪码相位进行并行搜索,而对载波频偏进行串行搜索,比传统时频二维捕获法速度更快,但无法满足水声通信系统对伪码同步的速度越来越高的要求。因此,本工作对上述方法的载波频偏搜索机制进行了改进,改进后的载波频偏搜索机制如图4所示。
图3 时频二维捕获效果图Fig.3 Effect diagram of time-frequency two-dimensional acquisition
图4 改进载波频偏搜索机制后的流程图Fig.4 Flow chart of improved carrier frequency offset search mechanism
首先,可根据(2)式粗略估计载波频偏的搜索范围,设置载波频偏搜索间隔。其次,通过观察图3可以发现,载波频偏轴上的最大值和两个相邻值与其他相关结果有明显区别。若像传统捕获法的做法按照顺序进行二维搜索,会导致大量无效计算。基于此,采用蓄水池抽样算法对范围内的载波频偏值进行随机排序,依据随机顺序进行相关计算,将相关值与阈值进行比较。如果超过阈值,则在载波频偏轴上当前相关结果附近再进行两次计算,取这3 个相关值中的最大值处的载波频偏和伪码相位作为本次捕获的最终结果。在进行下一次伪码捕获时,优先在上一次捕获到的载波频偏值附近进行搜索,避免无必要的重复计算;若相关值无法超过阈值,排除已经搜索过的载波频偏值,然后再次使用蓄水池算法进行随机抽样相关计算即可。
对载波频偏值进行排序的具体操作:N个载波频偏值即N个元素,从N个元素中随机等概率取出k个元素并按取的顺序进行排序,k即为蓄水池的大小。对第k+1到第N个元素进行N-k次操作,在对第i(k+1≤i≤N)个元素操作时,产生一个[0,i)之间的随机数d,若d在[0,k-1]内,则用第i个元素替代第d个元素。当完成对所有元素的操作后就得到了一个随机序列,每个元素都是以等概率获得的。改进后的FFT捕获算法如图5所示。
图5 改进后的FFT捕获算法原理图Fig.5 Schematic diagram of improved FFT acquisition algorithm
无论何种跟踪环路皆是利用扩频码自相关函数的偶对称性来获取扩频码与接收信号的相位差。图6是伪码序列自相关函数曲线。
图6 伪码序列的自相关函数曲线Fig.6 Autocorrelation function curve of pseudo code sequence
通常扩频通信系统工作在信噪比较低的环境下,在该环境下极难提取相干载波,工程上多采用非相干环路。捕获的载波频偏值与实际值会有偏差,这要求跟踪环路具有较好的容错性。因此本工作采用了全时间超前-滞后非相干相关同步跟踪回路[10]。其原理如图7所示。
图7 全时间超前-滞后非相干相关同步跟踪回路原理框图Fig.7 Schematic block diagram of full time lead lag incoherent correlation synchronous tracking loop
图6中r(t)为接收信号,
其中,A为信号幅度,c(t-Td)为伪随机序列,d(t-Td)为信息信号,Td为传输延迟,f0为载波,φ0为随机载波相位。
n(t)为噪声信号,可用下式进行表示
其中nC(t)和nS(t)是相互独立的零均值基带高斯白噪声。
收端扩频码发生器分别产生超前和滞后Δ/2的两路本地伪码信号,这两路伪码信号分别与本地振荡器的输出相乘得到两路本地参考信号a1(t)和a2(t)。输入信号与这两路本地参考信号进行相关运算。
本地振荡器的输出为
两路本地参考信号分别为
噪声信号分别与本地参考信号a1(t)和a2(t)进行相关运算输出分别为(忽略2f0+fIF项)
噪声信号与扩频码进行相关,相当于对噪声进行扩频,降低了噪声功率谱密度,对于扩频高增益系统后续可忽略噪声对系统的影响。
k1和k2为两支路的增益,假设k1=k2=k,中频滤波器的中心频率为fIF,fIF即估计载波频偏与实际载波频偏的误差,单边等效噪声带宽为Bn,中频滤波器的输出分别是
中频滤波器的带宽只让信息调制的信号通过,所以在y1(t)中只需考虑c(t-Td)c(t-+ΔTc/2)中的直流和信息调制d(t)cos(2πfIFt+φ'0)的乘积分量。对于高处理增益的系统:
其中Rc(τ)是扩频码c(t)的自相关函数。
中频滤波器的输出z1(t)和z2(t)经过平方器,平方器的输出是基带分量和中频载波的倍频分量。低通滤波器的作用是只让基带分量通过,其滤除二次谐波后输出为
其中式(16)即为鉴别器的鉴别特性曲线。
在模拟电路中,将鉴别器的输出经环路滤波后,控制VCO 的输出,从而调整本地伪码发生器的相位,降低剩余相差。在本工作中采用数字电路的做法,通过鉴相曲线直接控制本地伪码器,使其按固定的步长左移(或右移)本地伪码。
当扩频系统的增益很高时,m序列的自相关函数可表示为
单Δ值的延迟锁定环的跟踪范围为-Δ/2~+Δ/2,而双Δ值的延迟锁定环的跟踪范围为-Δ~+Δ,后者的跟踪范围是前者的两倍。将Δ设置为2,将式(17)带入式(16)得式(18)。
当使用m序列且Δ=2时,鉴别器的鉴相曲线如图8所示。
图8 鉴别器的鉴相曲线Fig.8 Phase discrimination curve of discriminator
本系统实现基于DSP 平台,采用TI 的TMS320C6747芯片,系统实现原理图如图9所示。上位机通过串口向DSP发送不同指令以实现发送与接收功能,码元的传输也是通过串口实现。DSP通过外部存储器接口A(external memory interface A,EMIFA)连接模数转换器(analog to digital converter,ADC)和数模转换器(digital to analog converter,DAC),采用AN9238 做模数转换,采用AN9767做数模转换。通过定时器输出PWM 控制ADC、DAC的采样率。
图9 DSP平台系统实现原理图Fig.9 Schematic diagram of DSP platform system implementation
本系统在水箱环境下进行了实验,如图10所示。
图10 水箱实验图Fig.10 Experimental drawing of water tank
由表1 可知,接收端的采样率fs为203.2 kHz,码元速率fb为40 bps,伪码长度为127,收发端载波频率fc=f'c=14 kHz,伪码速率Rc为5.08 kHz,码片持续时间Tc=1/Rc。由于水箱环境无法真实模拟出载波频偏效果,所以人为将发端的载波频率加上固定125 Hz的偏移,即载波频偏fd=125 Hz。设置载波频率搜索范围为f0-250 Hz到f0+250 Hz,载波频偏搜索间隔为10 Hz。
表1 实验参数Table 1 Experimental parameters
采用巴特沃斯滤波器设计跟踪环路中的中频滤波器和低通滤波器,中频滤波器的通带较小频率为60 Hz,通道较大频率为120 Hz,阻带较小频率为40 Hz,阻带较大频率为140 Hz,通带最大衰减1 dB,阻带最小衰减为40 dB。低通滤波器的通带边界频率为30 Hz,阻带边界频率为80 Hz,通带最大衰减1 dB,阻带最小衰减为60 dB。
DAC输出的波形和ADC 采集的波形如图11和图12所示。
图11 DAC输出的波形Fig.11 Waveform of DAC output
图12 ADC采集的波形Fig.12 Waveform of ADC acquisition
3.3.1 捕获部分
首先将接收到的信号通过50 Hz的陷波器,滤除工频干扰。然后进入伪码捕获阶段,从接收信号中截个数据,即一个码元长度,调整本地伪码与这段数据进行相关运算。捕获效果如图13所示,伪码相位为84,载波频偏为f'd=120 Hz。
图13 捕获效果图Fig.13 Capture effect
伪码捕获阶段主要由伪码相位搜索和载波频偏搜索两部分组成。在伪码相位搜索部分,若直接进行127 点的时域相关运算,需要进行(127)2=16 129次乘法运算与127×126=16 002次加法运算,使用双倍补零法改进的FFT 相关法需要进行次乘法运算,3×256×log2256=6 144次加法运算,相对于时域相关计算乘法计算量减少81%,加法计算量减少61.6%。水箱实验共计采集120组水箱实验数据,每组数据含90个码元。传统时频串行捕获法平均用时约为26.6 ms,改进后的FFT 捕获法平均用时约为7.9 ms,捕获时间减少约70.3%。
3.3.2 跟踪部分
捕获结果的码相位作为接收机本地的码相位,fd'+f'c作为接收机本地振荡器的频率。跟踪鉴相曲线如图14(b)所示,横坐标为点数,每点持续时间为1/fs,从A点到E点共160个数据,160/fs=4Tc,从B点到D点为跟踪范围,共80个数据,80/fs=2Tc,与图8保持一致。C点即为收发伪码同步的位置,收端伪码发生器即是根据跟踪鉴相曲线调整伪码向着减小跟踪偏差的方向调整。相对于Δ=1的延迟锁定环来说,跟踪范围扩大了一倍,当捕获结果存在偏差时仍然能保证伪码跟踪效果,降低失锁概率。
图14 跟踪鉴相曲线图Fig.14 Tracking phase discrimination curve
当本地伪码序列与接收信号完全同步时,使用该序列对接收信号进行解扩运算,这大大降低了干扰和噪声信号的功率谱密度,并使得解调器输入信号的信噪比显著提高,提高了系统的抗干扰能力。
3.3.2 整体测试
分别采用改进前和改进后的伪码同步算法对实验数据进行处理。采用改进方案系统的基带信号眼图如图15(b)所示,眼睛轮廓清晰,眼睛张开的幅度较为明显。采用改进方案系统的星座图如图16(b)所示,接收信号的星座图更紧凑清晰,不同星座聚类间的距离较大。即改进后的伪码同步算法对于伪码的捕获和跟踪效果更好,载波频偏误差和伪码相位误差误码率更小,误码率更低。在水箱实验环节,采用改进方案系统的误比特率低于10-4。
图15 眼图对比Fig.15 Eye chart comparison
图16 星座图对比Fig.16 Constellation comparison
但水箱环境下多径效应的影响更为突出,噪声多为功率较低的人为噪声。为此对系统的抗高斯白噪声能力进行了仿真测试,并与常见的水声调制方式进行对比,效果如图17所示。改进后直扩系统的抗高斯白噪声能力略有提升,但明显强于2FSK、2PSK、QPSK 等调制方式。这表明改进后的伪码同步技术性能良好,具备较高的应用价值。
图17 抗高斯白噪声能力对比Fig.17 Comparison of ability to resist Gaussian white noise
本工作研究并改进了直接序列扩频的伪码同步技术。在伪码捕获阶段,采用了基于FFT 的伪码捕获法,使用双倍补零法解决了运算序列无法进行基2傅里叶变换的问题。针对常见的水声通信场景,利用蓄水池抽样算法改进了载波频偏的搜索机制,并优先在上轮结果附近进行搜索,有效减少了计算量。在伪码跟踪阶段,使用全时间超前-滞后非相干相关同步跟踪回路,由于其合理的设计,捕获阶段造成的载波频偏误差不会对跟踪效果造成影响。该环路采用双Δ值的延迟锁定环,扩大了跟踪范围,降低了失锁概率。最后,基于DSP平台实现了该技术并通过了水箱实验,实验结果表明改进后的伪码同步法提高了伪码同步速度,降低了伪码同步误差。后期还需要开展海试试验进一步检验系统性能。