×
嵌入式开发 > 详情

基于高速帧同步和相位模糊估计法的FPGA实现

发布时间:2020-06-20 发布时间:
|

数字通信中的消息数字流总是用若干码元组成一个“字”,又用若干“字”组成一“句”。因此,在接收这些数字流时,同样也必须知道这些“字”、“句”的起止时刻,在接收端产生与“字”、“句”起止时刻相一致的定时脉冲序列,统称为群同步或帧同步。帧同步的检出一般可用相关检测技术完成。以往数据通信中的速率不是很高,相关检测的问题容易解决,但数字通信的日益高速率化的趋势,对实时状态下的相关检测提出了新的难度挑战。实际上,很多高速数传系统比如中继卫星通信系统,要求用户星和地面站下行链路间的传输数据率越来越高,达到了数百兆甚至上千兆的水平。在这样的高速环境下对数据进行实时的处理,就更加困难。

PSK调制在通信领域得到了广泛的应用,但存在相位模糊的问题,其一般可通过差分编码来解决。此法虽然简单,但需要在发送端加入独立的差分编码电路,并在接收端加入差分检测电路。也有一些方法不用单独加入差分编码电路,比如在接收端结合Viterbi译码过程来完成相位模糊值的估计,进而进行相位恢复。但这一过程算法复杂,比较耗时。

本文既研究了高速条件下8PSK信号的帧同步问题,同时又对其相位模糊值进行估计。主要依靠并行结构,对传统帧同步方法进行了简化和改进,从而同时完成上述两个任务。并且将该算法付诸FPGA实现,验证了算法的有效性。

1 传统帧同步器结构和同步检测算法

过去已经有很多帧同步技术的研究,其中最普遍的帧同步方法就是周期性地在一帧的起始处集中插入定长的帧同步码。这种结构通常是用计算接收符号序列与本地同步码序列相关的方法来检测帧同步。

对于一维信号,如BPSK调制信号,其相关运算通常可用简单的同或门来实现。将待检测比特流与本地同步码序列对应位进行同或,然后逐位相加。根据和的大小以及符号即可对帧同步以及相位模糊值进行检测。这种方法虽然简单,但无法适应如MPSK这样的二维信号的帧同步检测以及相位模糊值的估计,因此应用范围较窄。

2 实现相位模糊估计的帧同步检测算法

能够实现相位模糊估计的帧同步检测算法包含两部分:

(1)待检测数据与本地同步码进行相关运算;

(2)相关值与门限比较,根据比较结构给出相应的峰值脉冲及相位模糊值。

下面以8PSK信号为例对能够同时实现二维信号帧同步以及相位模糊估计的相关算法和判决方式进行详细介绍。

2.1 相关算法

由于8PSK信号是二维信号,所以待检测符号序列可用aiejφi-Ii+jQi,i=0,1,2,…,N-1表示。其中ai为第i个数据的幅度;φi为其相位;N为帧头码元长度;Ii,Qi分别表示其实部和虚部。可以用miejθi=i0i+jQ0i,i=0,1,2,…,N-1表示本地同步码序列,其中:mi为第i个同步码的幅度;θi为其相位;I0i,Q0i分别表示其实部和虚部。本文选取M序列作为同步码,并将0,1分别映射为8PSK中相对的0相位和4相位;然后进行8PSK调制。如果帧头部分码元发生错误(由0变为1,或者相反),其相位就会发生180°偏转,即由aiejφi变成了aiej(φi+π)。

待检测符号序列与本地同步码序列的相关值应该为:

得到式(1)的相关值后,一种比较直接的方法就是首先计算相关值的模,然后与门限进行比较来检测峰值存在与否,若检测出峰值,再由相关值的实虚部关系(arctan(*))估计相位模糊值。

但是上述方法计算相当复杂,FPGA资源消耗较大,并且不易并发地进行峰值检测和相位模糊值的估计。所以下面提出一种易于FPGA实现的简化的算法。



『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多
keil中调试中无法添加变量到watch