基于SDR 的快跳频通信系统方案及实验
2022-09-03文成玉廖聪慧熊航杜鸿
文成玉,廖聪慧,熊航,杜鸿
(成都信息工程大学通信工程学院,四川 成都 610225)
0 引言
慢跳频指每个跳频段携载一个以上码元,快跳频指每个码元被分割成多个片段并从不同的信道频率上贯序发送[1]。在现有快跳频通信系统中,收发两端依赖卫星授时和精密时钟建立精确起跳点[2-3],使用相同的伪随机序列发生器控制数控振荡器生成混频频率[4-5],使快跳频通信系统需要通过专用硬件系统实现,并且对卫星授时的依赖也限制了系统对应用环境的适应性。
到目前为止,研究者对快跳频通信的研究主要聚焦于跳频频率、跳频周期以及起跳时间等参数估计方面[6-8]。殷婕等[9]提出将短时傅里叶变换(STFT,short-time Fourier transform)和图像处理结合,对时频图分析得出跳频信号参数估计,相比传统时频分析法有更高的精确度,但仅针对单个跳频信号的参数估计。付卫红等[10]提出通过压缩感知法和原子匹配法对跳变时刻、跳速和跳频频率进行估计。该方法显著降低计算复杂度并得到较高的估计精确度,但未验证存在多个跳频信号时算法的有效性。张宝林等[11]通过短时傅里叶变换二次估计和多重信号分类(MUSIC,multiple signal classification)对跳频时刻和跳频频率进行估计。该方法参数估计精度较高,但无法兼顾时间和频率分辨率。Li 等[12]通过截获大量跳频信号数据,构建长短期记忆(LSTM,long short-term memory)神经网络模型,预测跳频频率。该方法能显著提高预测精度,但未实现逐点频率的高精度预测且该实验仅在单个通信网络中进行。
由于快跳频系统不易获得,公开文献中的研究工作主要在仿真环境中实施,研究结果在现实场景中的适用性和稳健性存在不确定性。
为了使用通用软件定义无线电(SDR,software defined radio)设备实现快跳频通信系统,本文主要研究工作如下。
1)根据跳频信号模型,揭示解跳结果对起跳时间精度的敏感性。
2)解析本文提出的快跳频通信方案,包括跳频表检测、精密起跳点检测和解跳3 个步骤。
3)通过两台SDR 设备在无线信道中的通信实验,验证了本文方案的有效性。
1 系统模型
1.1 跳频信号模型
跳频复信号片段如图1 所示,real 和imag 分别是跳频信号的I和Q分量,PH是起跳点,PP是跳频周期,PB≤PP是一个跳频周期内发送的基带调制信号采样点数。针对跳频信号流中第m个跳频段,跳频运算为
图1 跳频复信号片段
其中,SH(k)是跳频周期内第k个复采样点,M(q)是基带调制信号M的第q个复采样点,fm是跳频段m的跳频频率,Fs是采样率。一个跳频段消耗PB个基带调制信号采样点,输出PP个跳频信号采样点。
使用欧拉公式对式(1)进行分解,得到程序中的具体计算式为
1.2 解跳对起跳点误差的敏感性
在解跳运算中,每个跳频段消耗PP个跳频信号采样点,输出PB个调制信号采样点。对于跳频信号流中第n个跳频段,解跳信号SdeH为
其中,0≤k≤PB,fn为跳频段n的跳频频率。解跳中最大的挑战是k=0 时,SH(nPP)能够精准对齐跳频段的第一个采样点,即起跳点对准。
对于接收端第n个跳频段前后的采样流[…,SH(nPP–1),SH(nPP+0),SH(nPP+1),…,SH(nPP+PP–1),SH(nPP+PP),…],有以下2 种情况。
1)如果起跳点对准,即从采样点SH(nPP+0)开始解跳,使用式(4)解跳第n段时的起始相位为0,与式(1)执行段跳频时的起始相位一致,解跳后I 和Q 分量是连续的。图2 是起跳点误差为0 采样点时的解跳结果。
图2 起跳点误差为0 采样点时的解跳结果
2)如果起跳点前移一个采样点,即从SH(nPP–1)开始解跳第n段,此时,第n段实际起始采样SH(nPP+0)对应的解跳下标k就从0 变成了1,该段解跳起始相位不再从0 开始,而是从开始,导致解跳后信号I 和Q 分量出现跳变。图3 是起跳点误差为1 采样点时的解跳结果。
图3 起跳点误差为1 采样点时的解跳结果
从图3 中解跳结果可以看出,即使起跳点有一个采样点偏移,也会导致解跳后基带信号在起跳点出现跳变,这样的跳变导致基带信号幅度和相位失真,不能被后端解调器正确解调。
2 快跳频通信方案
本文快跳频通信方案由3 个模块构成:跳频表检测、精密起跳点检测和解跳。跳频信道数N、信道频率集f0~fN−1、跳频周期PP和跳频周期采样数PB等参数为已知条件。对于盲跳频信号解跳,需要首先检测这几个参数。
2.1 跳频表检测
在多数文献中,通过加窗短时快速傅里叶变换,按照特定采样点步进搜索每个跳频段的跳频频率[11,13]。这种方法存在的缺陷是当采样率较低或跳频信道频率间隔较近时,傅里叶变换的频谱分辨率较差,导致检测失败;尤其不利的是,当接收信号载噪比较低时会产生较高的误检率。跳频频率检测失败将直接导致解跳失败。
为了克服短时傅里叶变换方法存在的问题,本文方案中的跳频表检测步骤具体如下。
1)对到达的跳频采样块执行N次下变频、低通滤波、复数转幅度、抽取和平滑,得到如图4 所示的N信道幅度阵列,其中N信道幅度显示在同一坐标轴中。
图4 N 信道幅度阵列
2)搜索每个信道幅度中的峰值点,得到由数据下标q、跳频频率f和幅度v构成的三元组(q,f,v)。当其他信道在q±τ区间不存在大于v的幅度时,存储该三元组到跳频表阵列中。其中,为实验常数,τ取值与低通滤波器抽头数、PP及PB相关联。
3)对频率表阵列按数据下标升序排序。其中,低通滤波器截止频率为基带信号带宽,抽取和平滑的目的是消除噪声引起的峰值点。
跳频表的作用是描述到达的跳频信号流中每个跳频段出现的时间戳(数据下标q等效于时间戳)、跳频频率f和幅度v(为中间参数)。三元组中数据下标q随噪声波动较大,不能直接用作起跳点。跳频段的精密起跳点通过专门检测算法实现。
2.2 精密起跳点检测
正交解调的本质是计算基带信号的瞬时频率,正交解调输出幅度分布区间即瞬时频率分布区间。解跳信号瞬时频率分布区间与基带信号最大频偏相关联。对于跳频信号来说,有以下2 种情况。
1)如果起跳点出现偏移,每个跳频段的解跳起始相位都存在突变;由于快跳频周期PP小于源调制符号周期,相当于给跳频信号叠加了符号率更高的相位调制,即使经过低通滤波,正交解调输出的瞬时频率分布区间也会显著增大。
2)如果起跳点对准,即使在有噪声的信道中,经过低通滤波后,正交解调输出的瞬时频率分布区间也相对较小。
图5 给出了不同起跳误差情况下解跳信号的正交解调幅度。
图5 不同起跳误差下解跳信号的正交解调幅度
根据上述分析,当起跳点误差为0 时,正交解调幅度峰峰值最低;而当起跳点存在正或负误差时,正交解调幅度峰峰值显著变大。基于这一性质,精密起跳点检测的步骤如下。
1)以跳频表首节点数据下标q0为参考点,置参考起跳点P"区间为q0–DL
2)从正交解调幅度峰峰值二元组阵列中搜索Qpp最小的节点,对应的P"即精密起跳点PH。
3)输出起跳点出现漂移时的正交解调幅度峰峰值阈值Qpp_thr。
其中,Qpp_pre和Qpp_suc分别是二元组阵列中精密起跳点PH节点的前序和后继节点的正交解调幅度峰峰值,α<1.0 为常数。
在首次计算精密起跳点时,由于跳频表中峰值点数据下标q是非常粗糙的值,需要对到达的跳频数据块执行DR–DL–1 由于本文方案不依赖卫星授时和驯服时钟,在通信过程中可能存在起跳点随时间漂移的问题。为了容忍起跳点漂移,在首次检测起跳点PH时,同时记录起跳点PH出现漂移时的正交解调幅度峰峰值阈值Qpp_thr,在后续解跳过程中,当解跳后数据块的正交解调幅度峰峰值Qpp超出阈值Qpp_thr时,置精密起跳点检测步骤1 中参考起跳点P"区间为PH±1,重新搜索起跳点PH。起跳点漂移即使存在也是一个慢变过程。 解跳过程步骤如下。 1)将每个到达的跳频数据块缓存到FIFO 队列中,记录队列中第一采样点全局数据下标Ptr0,在通信过程中Ptr0 随时间不断递增。 2)按2.1 节方法对FIFO 队列中采样集执行跳频表检测,其中数据下标使用全局数据下标,缓存到跳频表阵列。 3)按2.2 节方法执行精密起跳点PH检测,记录正交解调峰峰值阈值Qpp_thr,此步骤仅执行一次。 4)按式(4)对每个跳频段执行解跳;对解跳后复信号执行低通滤波和正交解调,获得正交解调峰峰值Qpp,当Qpp>Qpp_thr时,按2.2 节方法重新计算精密起跳点PH,此时置参考起跳点P"区间为PH±1,更新Qpp_thr。 5)每完成一个段解跳,置PH=PH+PP;删除FIFO 队列中已经完成解跳的接收采样;删除跳频表中已经使用的节点。 图6 为本文快跳频通信系统流程。 图6 本文快跳频通信系统流程 本文方案与文献[1-2]方案的系统流程区别在于以下几点。 1)发送端不使用伪随机码发生器选择跳频信道,而使用随机数选择跳频信道,形成随机跳频序列,而不是伪随机跳频序列。 2)接收端解跳中不使用伪随机码发生器来跟踪发送端跳频图案,而使用2.2 节精密起跳点检测算法直接检测起跳点。 3)本文方案不依赖高精度卫星授时,发送端和接收端间采样时钟速率偏差可能导致收发两端采样点出现滑动漂移。为了克服采样点滑动漂移引起的起跳点漂移,解跳后同时执行起跳点漂移检测,如果出现漂移,则重新检测起跳点并再次执行解跳。 对于快跳频通信,每个跳频段仅仅传输一个符号的片段,所以,调制信号应该具有恒幅度包络,如2FSK(frequency-shift keying)、MSK(minimum frequency-shift keying)、GMSK(Gaussian MSK)或OQPSK(offset quadra phase shift keying)。2FSK带外呈慢波纹衰减,频谱利用率不高;GMSK 有较好的频谱利用率,但正交解调后符号轨迹与前后符号的状态相关联,载噪比较低或采样数较少时频偏估计误差较大[14];相对而言,MSK 有接近GMSK的频谱利用率,突出优点是在低载噪比和少量符号条件下,频偏估计误差优于GMSK。 鉴于上述因素,在快跳频通信实验中,使用MSK 调制。 为了利用GNU Radio 执行快跳频通信实验,开发相关OOT(out of tree)模块如下。 1)MSK 调制模块。输入字节流,输出MSK 调制采样流;MSK 解调器使用GNU Radio 的符号同步模块实现,同步算法选用zero crossing。 2)BER 测量模块。该模块包括BER 测量帧字节流发送和BER 统计2 个子模块。 3)跳频模块。输入调制复信号采样流,输出跳频复信号采样流。 4)解跳模块。输入跳频复信号采样流,输出解跳复信号采样流。 通信发送端信号处理流程如图7 所示,主要由4 个模块组成。 图7 通信发送端信号处理流程 1)BerEst_FrmGen 模块。输出BER 测量帧字节流,每个帧由首部、计数器以及用户自定义字符消息组成。 2)MSK Mod 模块。执行MSK 调制,位速率为1 024 bit/s,每个符号采样点数为2 048,调制信号采样率Fs=2.0 Msps。 3)CuitFhssFast_Sender 模块。使用真随机数从信道频率表中选择跳频频率,对调制信号执行跳频运算;跳频周期PP=512 采样点,每个跳频周期发送信号采样点数PB=448,此时每个符号通过4.6 跳发送,跳频信道数N=16,信道间隔65.536 kHz 围绕0 中频左右依次分布。 CuitFhssFast_Sender 模块输出跳频信号时,同时输出2 个连续QPSK 调制信号,参照图8 中左右两端幅度较低的突出尖峰,用于验证同频段内存在其他连续信号时算法的有效性;QPSK 信号幅度为跳频信号幅度的1/8,若提升QPSK 信号幅度,接收端收到的射频信号将会出现明显的互调失真。 图8 接收端跳频信号PSD 最大保持幅度 4)UHD。USRP Sink 使用Ettus B210 总线形射频收发器,工作在无同步、内时钟模式,未使用射频功放,通过天线将信号发送到无线信道。 通信接收端信号处理流程如图9 所示,主要由7 个模块组成。 图9 通信接收端信号处理流程 1)UHD。USRP Source 使用Ettus B210 总线形射频收发器,通过天线接收空中信道跳频信号。 2)CuitFhss_DeHop 模块。该模块将跳频信号解跳为基带信号。 3)Frequency Xlating FFT Filter 模块。该模块有2 个作用,一是修正发送/接收SDR 设备间的频率差,二是执行低通滤波。由于发送端未发送频率校准信号,实验中SDR 设备间频率差需要通过人工观察正交解调幅度中值来估计。 4)Quadrature Demod 模块。执行正交解调。 5)Symbol Sync 模块。执行符号同步,输出1 sps的同步波形,同步算法选用 zero crossing。 6)Binary Slicer 模块。将1 sps 同步波形转换为二进制位流。 7)BerEst Excutor 模块。执行误码率(BER,bit error ratio)统计,结果显示在控制台,同时存储到csv 文件。 受主机性能限制,在实验中,接收端分3 个步骤实现:首先通过USRP 模块接收无线信道跳频信号,将其存储到数据文件;然后使用解跳程序CuitFhss_Dehop 对文件中跳频信号执行解跳,并将解跳结果存储到数据文件;最后读取解跳数据文件,使用处理流程末端5 个模块,即修正频偏、执行低通滤波、跟踪位同步、位同步转位流、统计BER。 在现实无线信道中,一般用载噪比(CNR,carrier noise ratio)近似评价接收端信号质量。CNR定义为信号载波平均功率与噪声平均功率比值。对于快跳频信号来说,难以通过功率谱平均获得客观的CNR 指标。在快跳频通信实验中,使用PSD 最大保持幅度Amax评价接收信号质量,使用Amax-BER关系评价系统性能。在GNU Radio 中,PSD 计算的输入是SDR 设备DSP 输出的正交信号,并不等于天线上的信号电平,且该结果仅为参考值。接收端SDR 设备DSP 输出信号R可近似表示为 其中,g为射频前端增益,SH(k)为发送端发射的跳频信号,nchan(k)为无线信道噪声,这2 个分量来自无线信道;nadc(k)为ADC 量化噪声,nlo(k)为本振泄露,nitr(k)为交调失真,这3 个噪声分量由SDR 设备自身产生,忽略热噪声成分。 实验中,SDR 发送端未连接射频功放,发射归一化增益置为0.7;两台SDR 设备天线间距恒定4 m,按0.5 步进改变接收端归一化增益,控制SDR 设备DSP 输出信号幅度,此时,由于天线端口信号电平是恒定的,影响跳频信号质量的主要因素为接收端内部产生的3 个噪声分量;每个增益传输3 组10 KB数据,测量接收信号PSD 最大保持幅度Amax与BER的关系,结果如图10 所示。 图10 接收信号PSD 最大保持幅度与BER 的关系 1)当接收端增益为0 时,Amax低于−70 dB,解跳/解调后只有少数正确帧,整体BER 较高;参照式(6),DSP 输出信号主要噪声成分为ADC 量化噪声项和本振泄露项,此时容易看到0 中频本振泄露幅度已接近跳频信号幅度。 2)当接收端归一化增益提升到0.15~0.45时,Amax分布区间约为–65~–45 dB,来自天线的信号分量显著强于本振泄露和量化噪声,此区间BER 有最低均值。 3)由于SDR 设备射频前端没有预选滤波器,实验场地与三大运营商基站只有30 m 左右距离,接收端归一化增益进一步提升到0.50 以上,Amax幅度大于–45 dB,DSP 输出信号中出现交调失真成分,BER 随射频增益正比上升。 本文提出了一种基于SDR 的快跳频方案。发送端使用真随机序列对调制信号执行跳频运算后发射。接收端通过信道下变频、低通滤波和幅度峰值检测运算检测跳频表;通过解跳后基带信号正交解调幅度峰峰值分布特性搜索精确起跳时间;根据跳频表和起跳时间对跳频信号执行下变频实现解跳。 解跳真随机序列跳频信号,意味着本文方案结合SDR 设备除了可实现快跳频通信外,还具备解跳盲跳频信号的能力。在跳频表检测和精密起跳点检测中使用解跳和低通滤波运算,使本文方案在低载噪比或低采样率条件下仍可正常工作。在实际信道通信实验中,使用两台通用SDR 设备,不依赖外部时间源和时钟源,测试了跳频信号的PSD 最大保持幅度Amax和BER 关系,验证了方案的有效性和简洁性。 受实验主机配置和性能限制,接收端全流程未在同一个程序中实时连续执行,但从本质上来说,计算开销比重最高的滤波器卷积运算和解跳中的下变频运算都具有显著的单数据多指令特征,适合在GPU 或FPGA 中通过并行计算加速,因此本文方案具备良好工程实现潜力。2.3 解跳
2.4 系统流程
3 通信实验
3.1 调制类型选择
3.2 GNU Radio OOT 模块
3.3 通信发送端
3.4 通信接收端
3.5 实验结果
4 结束语