APP下载

CCSK编码序列解扩解调FPGA实现研究

2015-05-22崔海涵

仪器仪表用户 2015年6期
关键词:码元流水线寄存器

崔海涵

(北方工业大学 电子信息工程学院,北京 100144)

0 引言

CCSK(Cyclic Code Shift Keying)循环扩频调制是一种多进制(M 进制)非正交的编码扩频信号。与多进制正交扩频信号MOS(M-ary Orthogonal Signaling)相比,同样具有频谱效率高、LPI-LPD(低截获- 低检测)特性和优良的误码性能,同时,具有比MOS 硬件实现简单、计算量小等优点,从而被广泛应用于现代通信系统中[1]。

1 CCSK编码序列发送

直接序列扩频系统中,32bit的扩频编码只能表示1bit的数据信息,信息的速率为码速率的1/32,本文中介绍的循环位移键控(CCSK)信息编码方式则可以用32bit的扩频编码表示4bit的数据信息。这样的编码方式可以使32bit的数据编码携带4bit的有效数据信息,从而实现了直接序列扩频调制的4倍的信息速率。而对于接收方,也就同样的可以解调出4倍的数据信息,从而实现了较高的信息量传递目的。

本文中采用了4/32bit的扩频映射,使用CCSK循环移位码进行发送,发送序列如表1所示。

扩展后码元序列采用半正弦脉冲成型,脉冲成型函数如下式所示。

表1 CCSK数据码字映射关系表Table 1 CCSK data word mapping table

O-QPSK调制的时候,码片序列分为正交的I、Q两路,编码为偶数的码元输入到I相位的载波上,编码为奇数的码元输入到Q相位的载波上,例如:4bit码元0000对应的32bit的CCSK码字为1101100111000011010100100010111 0,编码为偶数的I路数据就是1010100100010111,编码为奇数的Q路数据就是1101100111000001。在实现上为了使I路和Q路的相位存在偏移,Q路码元相对于I路要延返Tc秒发送,Tc是码元速率的倒数[2]。

本文采用O-QPSK(偏移四相相移键控)调制方式,它与原有的QPSK是相同的相位关系,是一种QPSK的改进型调制方式。之所以采用这种调制方式是因为其将同相和正交两条的码流数据在时间上错开了半个码元周期。O-QPSK码元相位偏移关系如图1所示。

Q路相对于I路错后了半个码元周期,由于这两条支路的相位存在错位,所以每次只有一路可能发生正负极性翻转,而不会发生两支路码元正负极性同时翻转的现象,因此O-QPSK信号相位只能跳变0°、±90°,而不会出现180°倒相。这样信号通过BPF(带通滤波器)后的包络起伏小,性能得到了改善,尤其是对降低旁瓣再生和频谱扩展具有很好的作用。

图1 O-QPSK码元相位偏移关系Fig.1 O-QPSK code phase-shift relationships

2 CCSK编码解扩解调FPGA实现

2.1 O-QPSK解扩解调数学原理

发送的数据比特信息和对应的CCSK编码序列如表2所示。

表2 下行链路CCSK编码序列标号表Table 2 Downlink CCSK coding sequence number table

数据信号解扩解调过程:

经过信道传输后的输入数据表达式u (t):

经过LPF后高频分量被滤掉之后的得到信号,如下:

上面做相干用到了16个相关器。但是,由序列m与序列m-8的共辄特性,可以把相关器降低到8个。这样就大大降低了实现的复杂度。

序列m与序列m + 8的相关模平方值最大。这样只需要用前8个码序列做相关解调就完全够了。解调时用接收到奇偶部分别于前8个PN序列做正、负相关,正相关作为序列0#-7#的峰值,负相关所得结果作为序列8#-15#的结果。

2.2 CCSK编码解扩解调相关性仿真

如图2所示,给出了对本项目所采用CCSK O-QPSK解调解扩结构仿真所得的相关峰值情况。本仿真以第三个序列输入,分别观察对应于16个本地序列的相关匹配度。图中横轴为输入序列与本地序列之间的相位偏差,单位为四分之一码片(本地对信号的采样率为码元速率的4倍);纵轴为按照式(10)计算的结果(对最高峰值,计算方法是IQ两路分别完全匹配相关,两路分别得到64(16个码片,每个码片4的采样点),两个相关值相加在平方,接近16384)。从图中可以看出,本地第三个序列的匹配度输出峰值最高,可以可靠的解调解扩出所接收的信息数据bit。

图2 CCSK扩频编码解扩解调判决比较仿真图Fig.2 CCSK despreading and demodulation spread spectrum coding decision simulation

2.3 CCSK解扩解调的FPGA实现

CCSK扩频编码O-QPSK解扩解调的FPGA实现逻辑如图3所示。首先对接收信号分别与本地中频载波的两个正交相位相乘,将接收信号变为零中频信号。然后分别与本地产生的16个软扩频序列的奇部与偶部分别相关运算,然后按照公式(10)得出的 进行平方求和运算,可分别得到输入信号相对于16个软扩频序列的匹配度,最后,通过与预设判决门限比较以及16个匹配度峰值搜索,取得16路输出的最大峰值所对应的序列编号。最后,对所获得的编号进行4bit数据映射,完成信号的非相关解调解扩。

图3 CCSK的O-QPSK解扩解调的FPGA实现逻辑Fig.3 CCSK O-QPSK FPGA implementation of despreading and demodulation logic

使用Xilinx公司的最新开发平台Vivado开发套件进行FPGA的实现,实现过程中参照图3所示进行编程,在采用流水线操作可以降低信号延迟风险,提高接收系统整体速度,这样做可以说用最小的寄存器延迟代价换取资源的和速度的最大化。

在实现过程中,参照Link16信号传输格式,采用的是单脉冲符号包发送方法,每个编码序列之间加入了4chip的间隔,如图4所示。此举目的为的是能够在编码序列存入寄存器后能够使用流水线操作。可以使编码序列之间有充分时间进行匹配滤波,平方求和以及比较最大值操作。由于匹配滤波和比较最大值过程中有相应的寄存器延迟,所以需要有时间来进行数据的传递和储存,这也是工程中常用的用速度换取准确率的方法。

图4 编码序列间4chip间隔时序图Fig.4 Code sequence 4chip interval between sequence diagrams

图5 分级流水线操作实现图Fig.5 Grade pipelining implementation diagram

由于FPGA的是并行处理数据的,16路信号完成匹配滤波平方求和后的信号需要同时进行比较,得出最大值一路的数据符号。在具体实现中多位多组信号比较判断最大值过程中本文采用了分级流水线操作,首先将16组完成匹配滤波平方求和后的信号在同一时刻同时存入16个多位寄存器中,这16个多位寄存器在比较过程中的值是不会变的,直到下一组数据到来时刻。存入寄存器的16个数据采用16-4-2-1流水线操作,用3个时钟的寄存器延迟换取了整个系统的时序约束满足要求。

采用的分级流水线定义如图5所示。

综合出的流水线原理图如图6所示。

图6 分级流水线原理图Fig.6 Classification line schematic

3 仿真结果

仿真模拟了发送端发送0010数据符号的CCSK扩频码,发送信号的幅值用+127和-127表示信号的+1和-1调制后零中频的信号。信号的接收端各路经过图4中的FPGA结构之后得到各路最大值信号,各路最大值信号经过比较得出的最大值就是相应的数据符号。

如图7所示,可以看出signal_2路(代表数据符号0010)在数据最大值比较时刻最大,峰值15235,明显比其他路大,这样就正确的解出相应的数据信息了。

图7 CCSK解扩解调FPGA实现仿真结果Fig.7 CCSK despreading and demodulation simulation of FPGA implementation results

4 总结

本文通过FPGA实现了CCSK的解扩解调过程,达到了9dB的扩频增益,对发送的原始4bit数据信息完整准确的进行了解调,同时兼顾到了FPGA的资源和时序约束问题,同时又加入了类似Link16的编码序列发送格式,提高了数据处理效率。

[1]王立雅,周 亮.CCSK编码扩频技术及其应用[J].信息安全与通信保密,2009, 11.

[2]董俊丽 .符合IEEE 802.15.4b标准的接收机基带电路设计[D].南京:东南大学工学,硕士学位论文,2010.

猜你喜欢

码元流水线寄存器
STM32和51单片机寄存器映射原理异同分析
基于参数预估计和滑动FFT的MFSK信号类内识别方法*
基于ZYNQ的IRIG-B(DC)码设计与实现
基于朴素贝叶斯的无线局域网络入侵防御技术研究
LFM-BPSK复合调制参数快速估计及码元恢复
Lite寄存器模型的设计与实现
流水线
移位寄存器及算术运算应用
报废汽车拆解半自动流水线研究
流水线生产杀死艺术