新闻中心

EEPW首页 > EDA/PCB > 设计应用 > 基于FPGA的通信系统同步提取的实现

基于FPGA的通信系统同步提取的实现

作者:时间:2013-03-25来源:网络收藏

配对之后,对各个组合对应的输入移位样点数据做补码减法运算。例如在组合(1,8)中,当样点数据进入移位寄存器时,将对应移位寄存器中的并行第一位输出作为被减数,第8位输出作为减数。其它组合类似。当样点数据中的同步头完全进入移位寄存器时,那么对应并行输出的第一位应该是正值,而第8位对应的是负值。两个输出做补码相减。正值减去一个负值,输出得到一个更大的数值。这时,只有增加运算的位数,才能得到正确的运算结果。

对128个编号可以做64个配对,这就需要64个减法器。64个减法运算同时进行,有64个输出结果。然后利用32个加法器对64个数值进行加法运算。逐级进行相加运算,最后得到一个相关峰值。假设data(n)是16bit的信息数据,在逐级相加运算当中,不是直接采用这16位进行补码减法和补码加法运算,而是随着一级级的相加运算,位数也一位一位地增加。这样就优化了电路,节省了资源。

假设一个码元采样8个点,经I、Q分路(以QPSK调制为例)之后,每一正交路为4个点。相对于(1,8)配对,在第一个补码配对减法器中对应的是{t13,t1[3..0]}和{t83,t8[3..0]};相对应(2,11)配对,在电路中对应的是{t23,t2[3..0]}和{ta13,ta1[3..0]};依此类推。

下面有必要分析一下为什么要表示成{t13,t1[3..0]}的形式。在补码运算中,由0101-1101=0101+0010+0001=0111+0001可以看到0111+0001的和值是一个更大的正值,是不能用4位表示的,因为这个时候和值本应为1000,表示结果8(十进制),而在补码中却为-8。如果将补码的头一位都进行重复,使其变为5位,就可完全避免这种情况的发生。例如:

00101-11101=00101+00010+00001=00111+00001=01000

11000-00111=11000+11000+00001=10000+00001=10001 通过这样的一个变换,即不会产生溢出,也不会产生错误,保证了电路进行逐级运算的正确性。

对应128长的同步头,一个码元采样8个点,经I、Q分路,每一正交路为4个点,每一路上为128×4=512个样点。采用并行处理,在数据来到之时,分成四路,每一路做一个匹配滤波器,这样可以直接由每个码元对应的样点组成匹配滤波器。将四个匹配滤波器产生的相关值比较出最大值,再和后边门限比较,超过门限,即作为同步信号。同步提取的流程如图5所示。

3 仿真结果

同步相关峰的仿真(利用Quartus2.1软件)如图6和图7所示,clk是输入时钟,in是输入数据,sclr是清零信号,out是输出信号。

用Quartus2.1软件编译适配,一片APEX EP20K400EBC652-1XEP20K400EBC652-1X只用了百分之三十的逻辑单元就可以实现同步提取。

一个完整的帧同步系统的工作状态包括两种,即捕获状态和锁定状态,并且在一定条件下使它们互相间能自动切换。当帧同步信号捕捉到时,帧同步系统应立即由捕捉状态转换到锁定状态。同步提取完成后,只是完成了初始同步,即同步捕获,还要进行同步锁定,以防止假同步和漏同步的发生。限于篇幅,这儿仅仅讨论了初始同步的实现。 通过对帧同步提取的实现可以看出,补码配对相减匹配滤波法是一个很有效的方法。它提供了一种将扩频码作为同步信息进而实现帧同步提取的方法,并且在很大程度上节约了的内部资源。这儿只是介绍了M序列码作为同步头的实现方案,对于m序列码作为同步头的实现,只要稍微做一下修改,即加一些相应的延时单元就可以实现。


上一页 1 2 下一页

关键词: FPGA 通信系统

评论


相关推荐

技术专区

关闭