基于Cyclone Ⅲ的CCK調(diào)制、解調(diào)全新電路研究與實(shí)現(xiàn)
補(bǔ)碼鍵控CCK是應(yīng)用于IEEE802.11b中物理層的調(diào)制方式。在無線局域網(wǎng)通信中,它支持兩種速率5.5 Mb/s和11 Mb/s。CCK的碼字有很強(qiáng)的位置對稱性和良好的自相關(guān)特性,可以很好地克服多徑干擾,所以在雷達(dá)和通信中都得到了很好的應(yīng)用。在數(shù)字通信領(lǐng)域,補(bǔ)償碼被廣泛用于正交頻分復(fù)用OFDM(Or-thogonal Frequency Division Multiplex)、多接入和多信道通信等場合。本文將CCK電路應(yīng)用于差分型碼分多址通信系統(tǒng)中。
1 補(bǔ)償碼序列
1.1 補(bǔ)償碼序列的定義
關(guān)于互補(bǔ)碼(或叫互補(bǔ)序列)的概念,最早由MJE.Golay提出。隨后,互補(bǔ)碼又被Tseng和Liulz擴(kuò)展為互補(bǔ)序列集。之后,多相互補(bǔ)碼的概念又相繼由sivaswamy和Frank等提出。所謂的互補(bǔ)序列(comPlementaryseries)指一對由兩種元素構(gòu)成的等長有限序列,對于任何給定的間隔,在一個(gè)序列中相同元素的對數(shù)與另一個(gè)序列中采用相同間隔方式得到的不相同元素的對數(shù)相等。
互補(bǔ)序列對的特性中,除了零點(diǎn)之外,他們的非周期自相關(guān)矢量和為0,也就是零點(diǎn)有峰值。比如有兩個(gè)序列,其元素分別為ai和bi(i=1,2,…,n),其ai元素的非周期自相關(guān)函數(shù)Cj及bi元素的非周期自相關(guān)函數(shù)Dj為:
式中:若n表示元素的個(gè)數(shù),那么序列{ai}和{bi}就構(gòu)成互補(bǔ)序列對。
1.2 多相互補(bǔ)碼
對于包含K個(gè)碼字的碼集{S1k,S2k,…,SNk},N是碼字長度,k=1,2,…,K,Sik表示碼集中碼長為i的碼字,其非周期自相關(guān)為,這里j表示偏移量;*表示共軛,Si+j*是Si+j的共軛。
對于滿足式(3)的碼集就稱之為互補(bǔ)序列集。
如果碼字的相位是四相或是多相的,那么就得到了多相互補(bǔ)碼,即碼字中的元素Sik=ejφi。其中,ejφi是個(gè)復(fù)數(shù),φi表示相位。同樣地,多相互補(bǔ)碼序列的自相關(guān)向量也必須滿足式(3)。CCK碼其實(shí)就是一種四相補(bǔ)償碼序列。
2 CCK
2.1 CCK碼字定義
IEEE802.11b中規(guī)定,CCK中的碼字序列是一長度為8個(gè)碼片(chip)的補(bǔ)碼,CCK碼的數(shù)據(jù)率可以達(dá)到11 Mb/s和5.5 Mb/s的高速。它的擴(kuò)頻公式可以用下面的等式表示:
式中:C表示傳輸碼字。觀察式(4)可以看出,它每項(xiàng)都有一個(gè)公共部分eiφ1。φi(i=l,2,3,4)表示相位,可以將此公共部分提取出,并得到:
由此可見,復(fù)數(shù)碼字的調(diào)制是通過φ1對所有復(fù)數(shù)碼片進(jìn)行相位調(diào)制來實(shí)現(xiàn)的。式(4)中,C={C0,C1,C2,C3,C4,C5,C6,C7};Ci(i=0,1,…,7)表示傳輸?shù)臄?shù)據(jù),其中C0是最低位。其中的相位參數(shù)φi∈{0,π/2,π,3π/2}(i=1,2,3,4),所以它對應(yīng)的碼字中每個(gè)元素的可能值是{1,-1,j,-j)。
當(dāng)傳輸速率為5.5 Mb/s時(shí),每一CCK序列傳遞4 b信息。此時(shí),將輸入數(shù)據(jù)分為每4 b一組,并設(shè)其為d0,d1,d2和d3;d4(i=0,1,2,3)表示傳輸?shù)臄?shù)據(jù),傳輸順序則為d0~d3,即D=(d0,d1,d2,d3)。這4 b數(shù)據(jù)可決定16個(gè)CCK序列,其中d0和d1決定φ1的相位,按DQPSK編碼進(jìn)行調(diào)制,如表1所示。
其中,相位φ2,φ3,φ4由b2和b3根據(jù)下面式子決定:
對于傳輸速率為11 Mb/s的CCK編碼調(diào)制,首先將發(fā)送的串行數(shù)據(jù)以字節(jié)為單位進(jìn)行分割,每8個(gè)數(shù)據(jù)比特D=(d0,d1,d2,d3,d4,d5,d6,d7)=(D1,D2)編碼調(diào)制成一個(gè)傳輸碼字C。其中,di(i=0,1,…,7)表示傳輸?shù)臄?shù)據(jù),對D1=(d0,d1)按表1進(jìn)行DQPSK編碼調(diào)制,得到相位φ1;對D2=(d2,d3,d4,d5,d6,d7)的比特對(d2,d3),(d4,d5),(d6,d7)分別按表2進(jìn)行QPSK編碼調(diào)制,得到相位φ2,φ3,φ4。
在11 Mb/s的CCK編碼調(diào)制中,每個(gè)復(fù)數(shù)碼片(chip)可能有四種相位,8個(gè)復(fù)數(shù)碼片(chip)則可構(gòu)成65 536個(gè)可能的碼字。實(shí)際使用的CCK碼字只有256個(gè),如果不考慮對整個(gè)碼字的旋轉(zhuǎn),則只有64個(gè)碼字。這64個(gè)碼字是從65 536個(gè)碼字中挑選出來的,它們有良好的互相關(guān)特性(近似于零),是近似正交的。下面簡要地說明一個(gè)典型碼字的產(chǎn)生。如果CCK編碼調(diào)制的傳輸速率為11 Mb/s,它發(fā)送的數(shù)據(jù)(d0,d1,d2,d3,d4,d5,d6,d7)=(1O110001)。那么按照表1和表2的相位調(diào)制方式,d0,d1=10,即φ1=3π/2;d2,d3=11,即φ2=3π/2;d4,d5=00,即φ3=0;d6,d7=01,即φ4=π/2。將這些相位參數(shù)代入式(4)中可得,C=(ei3π/2,ei0,ei3π/2,-ei0,eiπ,ei3π/2,-eiπ,ei3π/2),簡化為復(fù)數(shù)碼字,C={-j,1,-j,-1,-1,-j,1,-j)。
2.2 CCK的調(diào)制
對于數(shù)據(jù)速率為11 Mb/s的CCK來說,其調(diào)制框圖如圖1所示。
由圖1可知,輸入的比特流首先被劃分成8個(gè)比特一組。每組中的高6位(d7,d6,…,d2)用來從基本碼字庫(共有64個(gè)CCK碼字)中惟一選取一個(gè)CCK碼字。之后,再用前2個(gè)比特(d0,d1)來確定φ1,并將對其產(chǎn)生的碼字進(jìn)行DQPSK調(diào)制,最后產(chǎn)生I,Q兩路調(diào)制信號,完成CCK擴(kuò)頻調(diào)制。
CCK實(shí)現(xiàn)的原理圖如圖2所示。這個(gè)模塊由兩大部分組成,數(shù)據(jù)流1:8串并轉(zhuǎn)換模塊和CCK調(diào)制模塊。
CCK調(diào)制的具體實(shí)現(xiàn)如上文所述,其仿真結(jié)果如圖3所示。
2.3 CCK的解調(diào)
2.3.1 最大似然解碼
在對CCK的進(jìn)行解調(diào)時(shí),一般可采用最大似然解碼器對碼字進(jìn)行解碼,這里的最大似然(ML)解碼器是利用CCK碼字的良好的互相關(guān)特性,將接收到的受到噪聲干擾的碼字與64個(gè)可能的碼字進(jìn)行相關(guān)運(yùn)算,然后比較得到64個(gè)相關(guān)結(jié)果,并找出其中幅度值最大的那一個(gè),由此對碼字作出判決。
設(shè)接收到的CCK碼字為C'={C0,C1,C2,C3,C4,C5,C6,C7};Ci(i=0,1,…,7)表示接收到的數(shù)據(jù),將其與所有碼字進(jìn)行相關(guān)運(yùn)算,則R=C'C*,C*是C的共軛,C是發(fā)送端的碼字,則:
式中:θi(i=1,2,3,4)表示角度;θ1~θ4遍歷{0,π/2,π,3π/2}。由式(7)可知,只有當(dāng)θ2=φ2,θ3=φ3,θ4=φ4時(shí),相關(guān)值會(huì)獲得最大值,為8,并由此解調(diào)出d7~d0的值。
2.3.2 新的解碼方法——選擇部分解碼
通過上述內(nèi)容可以看出,如果對調(diào)制后的CCK碼字C'={C0,C1,C2,C3,C4,C5,C6,C7)中的每一位進(jìn)行相關(guān)運(yùn)算,并且在對每一位進(jìn)行運(yùn)算時(shí),又對其中的θ1~θ4都進(jìn)行遍歷{0,π/2,π,3π/2)的話,解調(diào)過程將是一個(gè)很復(fù)雜而又繁瑣的過程,同時(shí)它所帶來的計(jì)算量也將是巨大的。所以,這里提出一種全新的CCK解調(diào)方案。
這種全新的解調(diào)方案不像傳統(tǒng)的解調(diào)方案那樣對每個(gè)CCK調(diào)制后的碼字進(jìn)行相關(guān)運(yùn)算,再根據(jù)相關(guān)值最大來判斷出相應(yīng)的CCK碼,而是只對部分的調(diào)制后的CCK碼字進(jìn)行相關(guān)運(yùn)算,并根據(jù)相關(guān)最大值解調(diào)出全部的CCK碼。
通過觀察式(7)可以看到,調(diào)制后的碼字C'={C0,C1,C2,C3,C4,C5,C6,C7},其中的C7與e-iθ1進(jìn)行相關(guān)運(yùn)算,根據(jù)最大峰值在相關(guān)結(jié)果中的位置,可確定θ1的值,也即解調(diào)出了φ1(φ1=θ1),然后再按照表1來確定d0,d1。碼字C中G是與一e“q。。吃’進(jìn)行相關(guān)運(yùn)算的,如果其中臼。的值已經(jīng)確定,那么可以在島為定值的情況下,根據(jù)相關(guān)解調(diào)的方法,確定島的值;同理,G是與e’?!辴。如’進(jìn)行相關(guān)運(yùn)算的,G是與一e-“q也’進(jìn)行相關(guān)運(yùn)算的,可以通過類似C6的解調(diào)方法來確定夙,亂的值,由此也即知道了仰,仲,鉚的值(島一仇,晚一卿,亂一似),最后根據(jù)表2得到d?!玠,的值。與其他的ccK解調(diào)方案相比,這種解調(diào)方案很好地簡化了計(jì)算過程,也減少了計(jì)算的工作量。圖4是解調(diào)部分的圖形表示。
CCK解調(diào)實(shí)現(xiàn)的原理圖如圖5所示。這個(gè)模塊由ccK解調(diào)模塊和并串模塊兩大部分組成。
經(jīng)過CCK解調(diào),得到8位并行數(shù)據(jù),再經(jīng)由并/串轉(zhuǎn)換轉(zhuǎn)換成串行數(shù)據(jù)輸出。
3 結(jié) 語
研究了補(bǔ)碼序列的定義和性質(zhì),并對CCK調(diào)制和解調(diào)原理進(jìn)行了分析,提出了更為簡便、新穎的CCK調(diào)制解調(diào)方法,該方法降低了計(jì)算的復(fù)雜度,同時(shí)也大大減少了計(jì)算的工作量。本文還將該方法運(yùn)用VerilogHDL硬件描述語言,通過QuartusⅡ7.2進(jìn)行了功能仿真和時(shí)序仿真,同時(shí)還利用Altera公司最新的Cy-clone Ⅲ芯片EP3C25F324C8NES予以實(shí)現(xiàn)。CycloneⅢ前所未有地同時(shí)實(shí)現(xiàn)了低功耗、低成本和高性能。CycloneⅢ的系統(tǒng)最高頻率為505.05 MHz,I/O腳最高頻率為379.36 MHz,而類似型號的CycloneⅡ,Cyclone工的系統(tǒng)最高頻率分別為490.68 MHz和404.53 MHz,I/O腳最高頻率分別為91.76 MHz和204.25 MHz,CycloneⅢ的這一特性提高了系統(tǒng)的性能。同時(shí)該方案的實(shí)現(xiàn)只需用到97個(gè)邏輯單元,對CycloneⅢ總邏輯單元,其使用率為0.34%,而類似型號的CycloneⅡ,Cyclone I芯片的邏輯單元,其使用率分別為0.52%和0.48%。由此可見,這種全新方案節(jié)省了硬件資源,提高了CCK調(diào)制、解調(diào)的速率,簡化了計(jì)算過程,減少了計(jì)算量,同時(shí)Verilog HDL語言的運(yùn)用,也增加了描述的靈活性和高效性。