崔海涵
(北方工業大學 電子信息工程學院,北京 100144)
CCSK(Cyclic Code Shift Keying)循環擴頻調制是一種多進制(M 進制)非正交的編碼擴頻信號。與多進制正交擴頻信號MOS(M-ary Orthogonal Signaling)相比,同樣具有頻譜效率高、LPI-LPD(低截獲- 低檢測)特性和優良的誤碼性能,同時,具有比MOS 硬件實現簡單、計算量小等優點,從而被廣泛應用于現代通信系統中[1]。
直接序列擴頻系統中,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
發送的數據比特信息和對應的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所示,給出了對本項目所采用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
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
仿真模擬了發送端發送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
本文通過FPGA實現了CCSK的解擴解調過程,達到了9dB的擴頻增益,對發送的原始4bit數據信息完整準確的進行了解調,同時兼顧到了FPGA的資源和時序約束問題,同時又加入了類似Link16的編碼序列發送格式,提高了數據處理效率。
[1]王立雅,周 亮.CCSK編碼擴頻技術及其應用[J].信息安全與通信保密,2009, 11.
[2]董俊麗 .符合IEEE 802.15.4b標準的接收機基帶電路設計[D].南京:東南大學工學,碩士學位論文,2010.