擴頻通信系統(tǒng)CCSK信息調(diào)制解調(diào)算法設(shè)計
引言
在直序擴頻系統(tǒng)中,Nbit擴頻碼只能代表1bit信息,例如發(fā)射方發(fā)送32bit的擴頻碼,接收方經(jīng)過相關(guān)解擴處理后得到的有效信息為1bit,信息速率為碼速率的1/32。而通過循環(huán)移位鍵控(CCSK)信息編碼,就可以用Nbit擴頻碼代表K位信息,即(N,K)編碼。在采用32bit擴頻碼的系統(tǒng)中,通過CCSK編碼將原始擴頻碼循環(huán)移位產(chǎn)生32種不同的擴頻碼,發(fā)射方通過發(fā)送原始擴頻碼的32種不同循環(huán)碼可以代表5bit有效數(shù)據(jù),這樣的編碼方式可以使32bit碼流攜帶5bit信息,因此,在碼速率不變的前提下,可比采用直序擴頻數(shù)據(jù)調(diào)制的信息速率提高5倍,同樣,接收方通過CCSK的相關(guān)處理,可以解調(diào)出5bit信息。
1 CCSK信息調(diào)制算法設(shè)計
所謂CCSK信息編碼,就是通過軟件算法或硬件電路計算將預(yù)發(fā)射數(shù)據(jù)向?qū)?yīng)擴頻碼轉(zhuǎn)換。CCSK編碼可以通過數(shù)據(jù)映射表產(chǎn)生,也可以通過邏輯電路實時計算產(chǎn)生。
通過CCSK數(shù)據(jù)映射表實現(xiàn)CCSK編碼,其信息轉(zhuǎn)換速率較高、處理操作較少,但需要的硬件資源較多,尤其是對于需要快速切換擴頻碼的抗干擾系統(tǒng),其較大的擴頻碼集合,需要制作大量對應(yīng)的CCSK碼表,因此,映射表法比較適合通過處理器(DSP)軟件計算產(chǎn)生。而實時計算實現(xiàn)CCSK編碼,其資源消耗較少,但處理操作較多。為提高其轉(zhuǎn)換速率,降低轉(zhuǎn)換時間,應(yīng)通過FPGA設(shè)計相應(yīng)邏輯電路來實現(xiàn)。下面以32bit擴頻碼通信為例,詳細(xì)介紹實現(xiàn)兩種CCSK編碼的設(shè)計方法。
1.1 CCSK數(shù)據(jù)映射表
通過表映射實現(xiàn)CCSK編碼時,首先要對32bit擴頻碼進行數(shù)據(jù)預(yù)處理,以產(chǎn)生32bit原擴頻碼的32個循環(huán)移位碼。假定一個32bit擴頻序列{a0,a1,a2,…,a29,a30,a31}通過右循環(huán)移位處理可以得到的32種不同位排列次序的數(shù)據(jù)如下:
{a0,a1,a2,…,a29,a30,a31} 循環(huán)右移 0 次帶表數(shù)據(jù) 0
{a31,a0,a1,a2,…,a29,a30} 循環(huán)右移 1 次帶表數(shù)據(jù) 1
{a30,a31,a0,a1,a2,…,a29} 循環(huán)右移 2 次帶表數(shù)據(jù) 2
……
{a1,a2,…,a29,a30,a31,a0} 循環(huán)右移 31 次帶表數(shù)據(jù) 31
那么,實現(xiàn)循環(huán)移位編碼的方式如下:
假定原信息數(shù)據(jù)為 N(0 ≤ N ≤ 31),原擴頻碼為 m(32 bit m 序列),則有 32 bit 映射擴頻碼 M 為:
M=(m>>n)&0xffffffff +( m<<(32-n)) &0xffffffff
即當(dāng)原信息數(shù)據(jù)為N時,將原m序列右移N位得到的32bit數(shù)據(jù)與m序列右移32-N位得到的32bit數(shù)據(jù)相加,就可得到32bit映射擴頻碼將0~31的5bit數(shù)據(jù)代入上式,就可以得到32種M序列構(gòu)建的CCSK擴頻碼映射表。對于具有L(LN0)個可選擴頻碼集合的系統(tǒng),可通過上式計算產(chǎn)生L個由32個元素組成的碼表。當(dāng)系統(tǒng)對原數(shù)據(jù)進行編碼時,即可通過擴頻碼號L和原數(shù)據(jù)N,在碼表中提取元素號為32XL+N的映射擴頻碼。
在一個擴頻碼集合較大的系統(tǒng)中,計算產(chǎn)生的大量碼表需要占用較多數(shù)據(jù)存儲空間。對FPGA而言,存儲碼表所占的存儲器資源比例較大,但對某些DSP則相對較小,因此,用碼表映射方法實現(xiàn)CCSK數(shù)據(jù)編碼的方法比較適合DSP軟件處理。1.2CCSK邏輯編碼電路的實時計算
CCSK邏輯編碼電路實時計算同碼表映射具有類似的算法,不同的是通過邏輯電路實時計算不必存儲大量的預(yù)處理數(shù)據(jù),從而減少了硬件資源的消耗。其電路由兩級32bit存儲器和多路選擇器組成,其電路原理框圖如圖1所示。該電路將32bitm序列存儲在2個級聯(lián)的存儲器內(nèi)成為一個64bit的序列,這樣,當(dāng)輸入5bit調(diào)制數(shù)據(jù)N時,預(yù)存的64bit序列中的第N位到第N+31位輸出就是得到的32bit序列一般情況下,根據(jù)輸入的原信息數(shù)據(jù)的不同,可以得到32種不同的M序列如下:
{a0,a1,a2,…,a29,a30,a31} 原信息數(shù)據(jù) 0
{a31,a0,a1,a2,…,a29,a30} 原信息數(shù)據(jù) 1
{a30,a31,a0,a1,a2,…,a29} 原信息數(shù)據(jù) 2
… …
{a1,a2,…,a29,a30,a31,a0} 原信息數(shù)據(jù) 31
由上述可見,32種序列同軟件計算得到的M序列完全一致。通過FPGA內(nèi)部的LE單元構(gòu)建圖1所示的邏輯電路比較容易,而且消耗的硬件資源也較少。
數(shù)字相關(guān)器是CCSK信息解調(diào)的關(guān)鍵部件,通過相關(guān)器進行CCSK信息解調(diào)有兩種不同的邏輯電路架構(gòu),包括兩級串聯(lián)型相關(guān)處理算法電路和多極并行數(shù)字相關(guān)器。無輪哪種CCSK相關(guān)解調(diào)器,其核心都是數(shù)字相關(guān)器,而數(shù)字相關(guān)器分為全加器型數(shù)字相關(guān)器和流水線加法器型數(shù)字相關(guān)器。這兩種數(shù)字相關(guān)器的原理框圖如圖3所示。
采樣同步時鐘
相關(guān)峰輸出
(a)全加器型
圖3 數(shù)字相關(guān)器原理框圖
2.1 兩級串聯(lián)型CCSK數(shù)字相關(guān)器算法設(shè)計
兩級串聯(lián)型CCSK相關(guān)解調(diào)邏輯電路一般由兩個全加器型數(shù)字相關(guān)器級聯(lián)而成。如采用32bitm序列擴頻碼的系統(tǒng),可將兩個32bit相關(guān)器級聯(lián)成64bit相關(guān)器,其m序列本地碼可設(shè)置成兩個同樣的m序列:
{a31,a30,a29,…,a2,a1,a0,a31,a30,a29,…,a2,a1,a0}
當(dāng)輸入基帶碼流信號為m序列的某一種32bit循環(huán)移位碼時,相關(guān)器就會輸出相應(yīng)的相關(guān)峰信號。其過程如下:
輸入基帶碼流為32bitm序列的原碼時(時間次序為{a31,a30,a29,…,a2,a1,a0}),當(dāng)碼流與第一段本地碼對應(yīng)緩沖器內(nèi)的本地序列{a31,a30,a29,…,a2,a1,a0} 一致時,相關(guān)器就會輸出第一相關(guān)峰;在采樣同步時鐘的驅(qū)動下,輸入碼流進入第二段本地碼對應(yīng)緩沖器內(nèi),此后,當(dāng)碼流與相關(guān)器的本地序列{a31,a30,a29,…,a2,a1,a0} 一致時,相關(guān)器就會輸出第二相關(guān)峰。
當(dāng)輸入信號是擴頻碼m序列的1次循環(huán)移位碼時,只有當(dāng)輸入碼流信號被驅(qū)動到{a30,a29,…,a2,a1,a0,a31}的位置上時,相關(guān)器才輸出相關(guān)峰信號。相對于0次循環(huán)移位碼產(chǎn)生的相關(guān)峰,其時序延遲了一個碼片單位。依次類推,當(dāng)輸入信號是擴頻碼m序列的N(0<N<31)次循環(huán)移位碼時,通??梢缘玫窖舆tN個碼片時間的相關(guān)峰。圖4所示是相關(guān)峰時序延遲示意圖。
通過計算相關(guān)峰輸出時間同基準(zhǔn)(0 延遲)相關(guān)峰之間的時間差,可以提取調(diào)制在信號上的信息數(shù)據(jù) N :
N=( 數(shù)據(jù)相關(guān)峰字符時間 - 基準(zhǔn)相關(guān)峰字符時間 )/ 碼片時間
采用兩級串聯(lián)型 CCSK 相關(guān)解調(diào)邏輯電路解調(diào) CCSK 信息消耗的硬件資源較少,但由于要對相關(guān)峰進行定時檢測以及消除部分相關(guān)峰,因此,對電路的處理時序較為嚴(yán)格,只能采用全加器型數(shù)字相關(guān)器來實現(xiàn)。而流水線加法器數(shù)字相關(guān)器由于不具有實時歸零功能,無法實現(xiàn)兩級級聯(lián),因此不適合兩級串聯(lián)型 CCSK 相關(guān)解調(diào)邏輯電路的相關(guān)器。
2.2 多路并行 CCSK 數(shù)字相關(guān)器算法設(shè)計
多路并行型 CCSK 數(shù)字相關(guān)器輸入的的是 m 序列 N 次循環(huán)移位碼,如 32 bit 系統(tǒng)中,m 序列 N 次循環(huán)移位碼有 32 種,接收方可以通過 32 個 32 bit 并行數(shù)字相關(guān)器對基帶碼流進行相關(guān)處理。當(dāng)輸入碼流同第 N 路相關(guān)器的相關(guān)輸出超出信號門限時,則認(rèn)定接收到的數(shù)據(jù)為 N,圖 5 所示就是并行相關(guān)峰輸出信號。
多路并行型CCSK數(shù)字相關(guān)器的電路結(jié)構(gòu)比較簡單,對電路時序的要求也較低,相關(guān)器輸出時序位置固定,不需要進行時間差計算提取信息,也不需要對部分相關(guān)峰進行時序處理,故可采用對加法進位延遲要求較低的流水線加法器型數(shù)字相關(guān)器作為相關(guān)處理的核心部件。但是,多路并行型CCSK數(shù)字相關(guān)器消耗的硬件資源在同樣碼速率和碼長時,比兩級串聯(lián)型CCSK數(shù)字相關(guān)器要多若干倍,因此,32bit擴頻系統(tǒng)中采用多路并行型CCSK數(shù)字相關(guān)器要比兩級串聯(lián)型CCSK數(shù)字相關(guān)器所消耗的資源多16倍。
3 結(jié)語
本文對CCSK信息的調(diào)制和解調(diào)算法進行了介紹,給出了CCSK邏輯編碼電路的實時計算方法,同時對兩級串聯(lián)型CCSK數(shù)字相關(guān)器算法和多路并行CCSK數(shù)字相關(guān)器算法的設(shè)計進行了說明。采用直序擴頻的通信系統(tǒng)具有較高的抗干擾能力,但通信信息速率會大幅下降。因此,在通信速率和抗干擾之間找到一個平衡點,是擴頻通信系統(tǒng)的一個重要技術(shù)問題。而利用本文提出的CCSK編碼解碼技術(shù)可以有效地提高擴頻通信系統(tǒng)的通信速率。
20210905_6134570da25b8__擴頻通信系統(tǒng)CCSK信息調(diào)制解調(diào)算法設(shè)計