摘要:差分跳频是一种数字通信系统,其频率跳变速度快,通信保密性好。接收机采用软件无线电的技术解调。解调窗口的同步是关键技术,是正确解调的前提。推导出同步算法的计算公式,给出相应的数据图表和流程图。该算法同步建立时间短,运算量小,并且可以实时调整,在仿真中取得成功。
1 差分跳频简介
差分跳频系统工作于短波波段(2MHz~30MHz),频率跳变速度5000跳/s,最高数据传输速度为19.2kbps。5000跳/s的频率跳变使得频率不易被跟踪,通信保密性好。差分跳频不同于传统的模拟跳频,发射机采用DDS直接合成发送频率,接收机采用软件无线电方法解调。
简单说明系统的工作方式,见图1频率转移图。系统待发数据为0110110……。当第一个bit'0'到来时,频率点由f1转移到f2,该bit'0'用频率f2发送;当第二个bit'1'到来时,频率点由f2转移到f4,以此类推解调时,将接收信号采样的数字信号,对采样数据进行快速傅立叶变换(FFT)运算,识别当前的频率点,然后保护频率转移图和前一次的频率点解调原始数据。
实际系统的参数如下:将2.56MHz~28.16MHz的频带等间隔划分为10个信道,每个信道以5kHz等间隔取256频率点。通信开始前,系统扫描10信道,动态决定一个特性最好的信道用来通信,收发双方按协议从选定信道的256个频率点中取64作为工作频率,按存储在系统中的频率转移图进行通信。该系统支持三种数据传输速率:4.8kbps、9.6kbps和19.6kbps。
2 同步策略
差分跳频系统采用软件无线电的方法进行数据解调。软件无线电结构降低了系统硬件的复杂性,接收机不需要传统模拟跳频系统中的频率合成电路和硬件的同步电路。但没有硬件的同步电路后,采用何种软件算法快速实现同步成为关键技术之一。
如图2所示,接收信号经过A/D采样变为数字信号,然后对一跳时间内(以下称为解调窗口)的采样数据进行FFT运算,识别当前的频率点,依据频率转移图和前一次的频率点解调原始数据。如果解调窗口不同步,则窗口内会出现两个频率点,无法判定该用哪个工作为解调频率点。因此必须将不同步的解调窗口滑动到同步位置,才能正确解调数据。
笔者设计的同步方法简述如下:
(1)随机选择初始窗口,对采样数据作FFT运算,识别可能出现的两个频率点f1和f2以及FFT后的相应幅度P1和P2(在频域中频率点的能量与幅度的平方成正比,为简化以幅度代替能量计算)。
(2)判断这两个频率点在时域波形上的顺序。
(3)频率点f的幅度P(请注意,这里指FFT后的频域幅度)只与两个因素有关:采样前模拟信号的时域振幅和该频率点在解调窗口内点据的时间长度。模拟信号的时域振幅可以在接收端采用自动增益控制保持常数值。那么,P只要频率点在解调窗口内点据时间长度(也就是该频率点占据的采样点数目)的单值函数,只要找到这个函数,即可先由FFT计算出幅度P,反求该频率点占据的窗口长度,最后将窗口滑动适当长度即可同步。
以下假设:采样频率为fs,解调窗口总长度为N,某一频率点占据的长度为N1。
定义:α=N1/N
3 实现的方式
具体实现要考虑很多复杂的情况,详细说明如下。
首先要找到(3)中提及的函数关系,这个函数关系记为P=F(α)。
在满足(f1/fs)×N1=整数的条件下,由离散傅立叶变换的性质可推出P=F(α)=A·(N/4)·α,A是A/D采样前模拟信号的时域振幅。
但实际情况更为复杂。上面提到的(f1fs)×N1=整数的条件不可能总被满足。当系统的采样频率和窗口长度确定后(这两个量是系统级的参数,一经确定不能变更),只有有限几个频率点满足要求。而差分跳频系统需要64个工作频率点,它们是收发双方按协议从选定信道的512个频率点中选择的,也就是说512个频点都有可能成为工作频率点,绝大部分不满足工作。如果条件得不到满足,那么公式修改为P=F(α)=H(f, α)·A·(N/4)·α。因子H(f,α)依赖于频率和α。H(f,α)无法动态自适应计算,因为依赖于α,而α恰好是要求解的变量。因此,直接对采样数据进行计算的方法不太可取。
还有一点,希望该跳频系统降低对同步的敏感性,从而降低复杂性和运算量,因此希望P=F(α)是非线性函数,以改善系统特性。
可采用对采样数据预先加窗函数修正的方法。本系统采用海明窗,因为海明窗是满足要求的最简单窗函数,并且可以理论推导出P=F(α)的函数式。海明窗定义为:
W(n)=0.5+0.5cos[2(π-N/2)] n=0,1,2,…,N-1 (1)
经过推导得到加窗后的P=F(α)的估计式为:
P=F(α)=0.935A·N·{α/4-sin(2πα)/(8π)+[cos(α)-1]/(8π)} (2)
图3是用Matlab仿真得出的P=F(α)的图形。该图形不是按(2)式直接绘制的,它是实际仿真得到的结果,与(2)式彼此独立,但(2)式的图形也基本是这个图形。(2)式中的系数0.93可以在(0.92~0.94)之间微调。
图3是Matlab按下述方法计算得到的:对应每一个α值,在满足采样定理前提下随机选择1000点频率,让其占据的窗口相对长度为α,计算FFT后的频域幅度,求1000点的平均值作为纵坐标。因此图3所表达的函数不依赖于具体频率。这个图划分为线性区和非线性区,线性区的范围为0.25<α<0.75。解调窗口进入非线性区的意思是窗口位置距离同步位置非常近了,再经过细致调整就可以同步。
图3整体上是非线性函数,非线性的好处是降低了系统对同步的敏感性。假设解调窗口稍微不同步,那么窗口必定落在非线性区,在该区幅度变化不显著,不会对正确解调造成影响。
如果根据频率点幅度P求α?先求解P=F(α)的反函数,即α=F-1(P)。但(2)式求不出闭合解析的反函数。可用下述方法:在Matlab中绘制图3的反函数,再使用曲线拟合方法得到反函数的表达式(公式(3)只适用于线性区的反函数):
α=F-1(P)=(4.985×10-8)×P3-(1.8×10-5) ×P2+(4.131×10-3) ×P+0.166
第二个复杂的情况是必须判断解调窗口类型。
假设初始的解调窗口未同步,则该窗口内有两个频率点f1和f2,依据这两个频率的时域顺序和所占据的窗口长度(也就是域中两个频率的幅度)有四种情况,分别称为第I、第II、第III、第IV类型窗口,见图4。每个窗口都假定不同步,且只绘出一跳时间内的波形。
为什么要判定窗口类型呢?因为实际计算时取幅度较大的频率点来求解α,这样可降低噪声的干扰。但幅度较大的频率点可能是f1也可能是f2,在时域中的顺序可能在前也可能在后,于是形式四种类型。
如果初始窗口进入非线性区,因非线性区频率点幅度变化小,为降低噪声影响,在非线性区移动的点就是固定值(这个值可以根据实际需要加以微调)。判断窗口是否进入非线性区的准则为:是否有一个频点的幅度超过门限值。
图5
4 流程
经过以上讨论,得出实际的算法流程见图5。
说明:如果第一次滑动窗口后未能进入预定同步位置,则继续第二次调整。此时移动后的窗口以大概率进入大非线性区,如果第二次滑动窗口仍旧不同步,则继续第三次调整,至多三次调整后,以95%概率进入同步锁定。三次调整后仍不同步(至多5%概率),判定为同步失败,选择窗口重新计算。
以上的窗口是向右滑动的(也就是向时间轴正向滑动),如果系统开辟较大缓冲区,也可以向左滑动(也就是向时间轴负向滑动),此时前面的数据不能丢失,并且对第III和第IV类型窗口的滑动点数变为绝对值较小的负数值。
该同步算法的优点是同步建立时间短,运算量小,可以实时调整。对接收数据加窗函数修正降低了系统对同步的敏感性。该算法在系统仿真中取得成功。
评论
查看更多