直接扩频通信同步系统的FPGA设计与实现
扫描二维码
随时随地手机看文章
摘要:对直接扩频通信同步系统进行了研究,使用PN码作为扩频序列,利用其良好的自相关性,提出一种新式的滑动相关法使收发端同步,并给出该系统的FPGA实现方法。利用ISE 10.1开发软件仿真验证,证明此方法可以提高运算速度,减少捕获时间。
关键词:扩频通信;滑动相关;FPGA
0 引言
扩频通信系统具有容量大、抗干扰能力强、保密性好等优点。但是如果收发两端PN码的频率和相位不同步,解扩后的数据只是一片噪声。扩频通信系统的关键技术之一PN码同步包含捕获和跟踪两个过程,本文只对捕获过程做重点研究。
最简单的串行捕获方法是滑动相关法,本文在原有方法上加以改进,使得捕获的速度更快,实时性更强。
1 滑动相关的基本原理
滑动相关法是利用PN码良好的相关特性,在接收端与发送端相位不对齐时相关值很小,而当它们相位对齐时做相关运算会输出一个很大的峰值。
如图1所示,接收信号与本地产生的PN码做相关运算,如果计算结果小于预设门限值,则门限鉴别器会控制PN码移位控制时钟,在此时钟驱动下,码产生器产生的伪随机序列移动一个相位继续和接收信号做相关运算。直到计算结果大于某一门限值时,表示完成对接收信号的捕获,门限鉴别器就不再控制PN码移位,而给跟踪单元使能信号,让跟踪单元开始工作。
这种方法最大的优点是实现简单,但是如果接收信号和本地PN码不对齐,需要不断对本地码移位并重新计算判决,速度慢,实时性不好,本文对滑动相关法进行改进,系统性能提高明显。
2 改进滑动相关法的FPGA实现
改进滑动相关捕获法的FPGA实现包括以下模块:信号存储模块、PN码存储模块、乘法器模块、积分器模块和门限鉴别模块。原理框图如图2所示。
采样得到的接收信号存于信号存储器中,本地PN码不再由PN码产生器生成,而是事先存于FPGA内部的存储器中。相关运算时不滑动本地PN码,直接由存储器中读取,每采样一次滑动一次接收端存储单元数据,通过后续单元并行计算并完成一次相关判决,这样可以提高运算速度,发端发完一组完整PN码就可以完成信号的捕获。算法每个单元具体实现过程将在下文具体阐述。[!--empirenews.page--]
2.1 信号存储器
信号存储单元由一个双口RAM构成,在采样时钟驱动下,接收信号按地址顺序存于RAM中。RAM的读取时钟是做乘法的计算时钟,在采样速率不是很快时,计算时钟可以是采样时钟的数十倍,可以达到上百兆,而读取数据宽度也可以扩展为接收数据宽度的整数倍,一次读取多个接收数据参与运算,这样串行运算变为并行运算,极大提高了处理速度。如图3所示,接收到的数据按从地址0到地址7的顺序存储,读取数据宽度是接收信号的4倍,那么每存储4个数据后读取地址滑动一次,一次并行读取4个数据和本地PN码做乘法。
如果PN码周期是127,读取宽度为40,那么4个计算时钟就可以完成乘法计算,但是读取宽度太宽会增加FPGA内部逻辑单元的使用量,需要在资源和速率方面做权衡。
2.2 PN码存储器
在传统的滑动相关法中,PN码如果选取m序列可由FPGA做反馈移位产生,顺序读取,这样会影响运算效率。本文将PN码由Matlab工具软件生成,然后按一定格式存储于FPGA内部存储器,可选取ROM存储,读取宽度和信号存储器的读取宽度相同。PN码存储器不滑动,每次都按地址递增顺序读取数据,操作和信号存储器类似,不再赘述。
2.3 乘法器和积分器
这两个模块主要是实现接收数据和本地PN码进行相关累加功能。接收到的数据首先和本地码相乘,然后将相乘结果累加完成积分功能。
乘法并不需要FPGA器件内部的硬件乘法器,如果PN码为1则将接收数据取正号,PN码为0则将接收数据取负号。每个乘法器时钟完成一个读取地址中一组数据的乘操作,乘完将一组相乘结果求和后输入到积分器进行每一组数据的累加。如果每组参与乘加的数据很多,一个时钟不能完成加法运算可以采用流水线方法优化算法。
积分器累加的次数由PN码长度和每次参与乘法运算的数据个数有关(即读取数据的宽度),数据个数越多需要累加的次数越少。累加结束后将计算结果输入到门限鉴别器做后续判决,同时积分器清零。
2.4 门限鉴别器
门限鉴别器的功能是对判决积分器的计算结果进行最大值检测。检测值超过门限预设值,则给跟踪单元使能信号,启动跟踪功能,否则不作任何操作。
门限值的设定需要通过Matlab工具软件仿真得出。m序列有很好的相关特性,当接收信号与本地码同步时积分器会输出一个明显高于不同步时的峰值,在实际应用的场合由于噪声大小不同峰值也不是固定值,要根据情况进行仿真设定一个比较适合的数值。数值过大会出现漏警现象,即已经同步但受噪声影响积分器输出值小于门限值而使系统无法正常工作。数值过小会导致不同步时启动跟踪单元。一般多次仿真,并把门限值设置稍大有利于系统正常运行。
3 FPGA仿真结果与分析
本系统设计时选取的是Xilinx公司Virtex系列的XC4VSX35芯片,该芯片含有34560个逻辑单元,可用I/O脚448个,192个18×18 Xtreme DSP,18kb Block RAM 192个,最高工作频率500M。以Xillnx公司的ISE 10.1开发软件为平台,运用Verlog语言作为输入,并编译、仿真、下载验证了同步捕获系统。图4为系统仿真图,clk_1是数据采样时钟,每次时钟上升沿接收数据由data_in输入,clk_2为计算时钟,每次采样一个数据后4个计算时钟相关值由he输出,由图可以看出并行相关运算速度很快。本系统的门限值设置为125,如图he值没有超过门限值则下一个时钟清零,如果系统捕获成功he超过门限则输入给跟踪单元的使能信号enable保持一个周期的高电平,从而启动跟踪单元工作。
4 结论
本文提出的改进滑动相关算法运算速度快,捕获时间短,实现起来比较简单。利用FPGA设计并实现了算法,仿真结果满足系统要求,该方法成功应用在扩频通信解扩端,使用效果良好。