1 互補碼(CCK)調變與解調 
        互補碼(Complementary Code Keying, CCK)最早是源自於 M.J.E. Golay 應用在紅外線多切口光譜計(Multisli t Spectrometry)的構想上,然而其特性對雷達及通訊的應用而言,卻成為一種極佳的編碼方式。IEEE 802.11b 互補碼(Complementary Code Keying, CCK)調變與直接序列展頻(DSSS)調變不同地方是,在直接序列展頻只是利用一組具有良好的自相關性的「字碼 」(codeword)直接表示所要傳送的二進制資料,譬如用10110111000 這一組字碼代表所要傳的二進制資料的1,而用01001000111 這一個字碼代表所要傳的二進制資料0,所以即使在無線傳輸通道中受到干擾,而使的所傳出去的字碼中有幾個碼被改變,也可以利用所傳出去字碼的多餘度而使接收端很輕易的解回原來所代表的二進制資料,利用其多餘度故然可以很有效的防止資料錯誤,但相對的該頻寬的資料傳送輸效率將會大大的降低,由此可知:直接序列展頻是降低頻寬使用效率來提高其資料接收的正確性。 

而 IEEE 802.11b 所用的「互補碼」(CCK),以傳輸速率 11Mbps為例,是一個利用64 組近乎正交的「字碼」(codeword)再經由DQPSK 調變後可以產生出256 組字碼,利用此256 組字碼可以用來代表所要傳送的資料,這些字碼幾乎完全正交,因此互補碼就是利用編碼後字碼之間的正交性,拉開訊號空間點,來降低錯誤率,並保持資料的傳輸速率。以下將針對傳輸速率 5.5 Mbps和 11Mbps互補碼的調變以及解調之過程與差異做介紹。

 

1.1 互補碼(CCK)的調變

        IEEE 802.11b傳輸速率為5.5M11M bits/s  時,使用互補碼調變(CCK),展頻碼為長度8 個切片(chip)之互補碼。茲分別敘述如下

首先我們看到互補碼調變(CCK)的碼字(codeword)如式(1.1)

 

 

5.5M bit/s CCK的調變過程:如圖1.1 所示,一串原始資料 data 經過 「攪拌器」(Scrambler)後,每四個位元為一組,編號成d0d1d2d3  ,其中d0d1經過表3.3  DQPSK編碼得到φ1,其它φ2、φ3、φ則由(1.2)式得到:

得到φ1、φ2、φ3、φ4 之後,再代入CCK 碼字公式(1.1)便可得5.5M bit/s CCK碼字。

.....(1.2)

11M bit/s CCK:每八個位元為一組,編號成d0 d7,其中d0d1、經過表1.1 編碼後可得到 φ1d2d3d4d5d6d7 經過表1.2 編碼可得φ2、φ3、φ4,就如原始的QPSK 直接對應角度一樣,由資料的輸入對應到輸出角度,再代入CCK 碼字之公式便可得11M bit/s CCK 碼字。

1.2說明11M bit/s CCK 碼字的產生。

 

 

圖1.2 11M bit/s CCK碼字的產生

 

在此,要注意的是:IEEE802.11b  的互補編碼(CCK)利用的差異編碼(DQPSK)所找到的φ1 ,會因為所在的是奇數或偶數的symbol 而有所不同,所以在表1.1 中會有分奇偶位置,而有不同的對應。 11Mbps  CCK  為例,每次取八個位元,對應出φ1、φ2、φ3、φ4四個角度,在代入式(1.1)的公式,即可獲得一組CCK 的字碼,由此過程可知,互補碼只有2 8 =2256  種可能的字碼,但此互補碼字碼所存在的空間集合卻高達 48=65536 ,所以互補碼就是利用其各字碼之間的碼距,來確保在無線傳輸時,即使任一組字碼中的碼被干擾而發生錯誤時,也可以利用相對應的解碼方式,找出正確的原始資料。

 

 

1.2  互補碼調變、傳送流程

        11M bit/s 互補碼調變(CCK)傳送端架構如圖1.3 所示。首先輸入資料位元經由攪拌器(Scrambler)均勻打散後,再以每八個位元一組形成一個符元(Symbol),再送入多工器,多工器再利用八個位元中的最後六個位元來選擇64 組複數CCK 碼字的其中一組,第一及第二個位元利用DQPSK 調變後,旋轉之前六個位元所選出的CCK 碼字,接著再乘上覆蓋碼後(cover code)傳送出去。在此要說明的是:覆蓋碼(cover code)為 1 1 1  1 1 1  1 1”的序列,是將CCK  碼字公式第四及第七個切片冠上負號,目的是用來使得直流偏移值(DC offset)能夠較小。

.....(1.2)

 

1.3  互補碼(CCK)的接收與解調

        11M bits/s 互補碼調變(CCK)接收器架構如圖1.4 所示。首先經中頻降頻至基頻的類比信號經由類比/數位轉換器(A/D converter)轉換成數位訊號,接著經由複數乘法器與載波回復迴路的輸出做相乘的動作以去除頻率偏移及相位失真的效應,接著再移去覆蓋碼,然後送入快速華許轉換(Fast Walsh Transform)做相關性運算,利用最大振幅輸出解得六個位元,並將其送入符號檢測器(Sign Detector)及差分解碼器而解出φ1 所代表的兩個位元,最後再將資料位元送入解攪拌器(Descrambler),還原原來所傳送的資料位元。

上面的敘述主要是同調(Coherent)的解調方法,實際上,互補碼(CCK)的解調方式可分為非同調(noncoherent)與同調(coherent)兩類,其區別在於:同調解調時,訊號的相位必須正確解出來,之後在做解差分編碼的動作;而非同調解調則不須找到相位,可以靠著前後訊號的的“相位差”來解出原始資料,同調  解調的錯誤率會比非同調解調的錯誤率好上1~2dB

圖1.4 速率11M bit/s CCK接收端架構

 

以下將對互補碼(CCK)的兩種解調方式:非同調(noncoherent)與同調(coherent)解調過程做詳盡的介紹。

首先,我們注意一下互補碼(CCK)的碼字(codeword),我們將之編號成C1,c2,c3,c4,c5,c6,c7,c8  其對應如(1.3)所示:

 

 

 

 

我們可以發現φ1 出現在每一個切片(chip)上,φ2 出現在所有奇數切片上,φ3出現在奇數組切片上,而φ4則出現在以個切片為一組的奇數組上。如上所述之形式,實際上互補碼就是一個Walsh/Hadamard  函數的組合。換句話說,互補碼調變就是一個使用複數Walsh/Hadamard  之形式的調變方式,而此形式就是一般所謂的互補碼。

 

非同調解調的做法就是將收到的互補碼(CCK)的碼字(codeword) c7,c6,c5,c4,c3,c2,c1,c0  做兩兩之間的複數乘法,找出φ2、φ3、φ4(1.4)式,之後再將得到的φ2、φ3、φ4 帶入原先之碼字,(1.5)式,兩者互相做共軛複數(complex conjugate)乘法,則可得到φ1(1.6)式 。同調解調的做法,則是利用快速華許轉換(Fast Walsh Transform ;FWT)來做快速解調的動作。

 

 

 

 

 

1.4快速華許解調變架構

       快速華許架構為一般常用之 CCK 解調架構,與 1.3 節提到的解碼過程比較,減少許多解調變的整個架構之面積。根據 CCK 方程式,先不考慮第四與第七個 chip 的負號,經過整理後如下:

..............(1.6)

整理後的 CCK 方程式中可以發現,原本的八個 chip 經過提出相同的數值後,相鄰的兩個 chip 皆變成{ejφ2,1},且前四個 chip 提出相同的值ejφ2與ejφ4後,與後四個 chip 提出相同的值ejφ1,前四個 chip 與後四個 chip皆變成{ejφ3,{ejφ2,1},{ejφ2,1}},且全部八個 chip 皆可提出共同值ejφ1,這是一個相當有規則的現象。根據這樣的現象,建構出快速華許解調變方塊,如圖 1.5 所示。

 

.....(1.2)

 

如圖 1.5所示之快速華許解調變方塊中,輸入訊號為所接收到之八個 chip訊號 X1、X2、X3、X4、X5、X6、X7、X8,由 CCK 方程式中可以發現第一、第三、第五與第七個 chip 皆有乘上ejφ2,所以訊號進入後需先將與 2 f 有關之 X1、X3、X5、X7 做 2 f 處理, φ2可能為 0、π/2、π、3π/2 四種情況,所以對 φ2處理即為對 X1、X3、X5、X7 分別同時乘上 1、j、-1、-j 四個值的動作,很明顯地,因為φ2有四種情況,而每一個快速華許解調變方塊一次只能對φ2 做一種情況的處理,所以整個解調變架構總共要有四組快速華許解調變方塊,如圖 1.6 所示,分別針對 φ2每一種情況作處理。

 

圖 1.5中φ2 = 0(ejφ2=1)所以 X1、X3、X5、X7 做乘 1 處理後,再做兩兩相加,如(1.8)式所示,因而第一層共有四個複數加法器。由圖
1.6 中四組快速華許解調變方塊分別得到 K0、K1、 K2 與 K3 ,我們定義 θ2,當  θ2 寣]0,-π/2,-π,-3π/2)時e-jθ2=(1,j,-1,-j),因此可由(1.9)式變為(1.10)式。由 CCK 方程式中可以發現第一、第二、第五與第六個 chip 皆有乘上ejφ3,所以在圖 1.5的第一層加法器所得到的四個複數值中,因第一個複數值跟 X1 與 X2 有關,而第三個複數值跟 X5 與 X6 有關,因此我們可以由圖1.5得到(1.11)式,因而第二層共有八個複數加法器,同樣的我們定義θ3,當θ3  寣]0,-π/2,-π,-3π/2)時e-jθ3=(1,j,-1,-j),因此可由(1.11)式變為(1.12)式。所以第三層複數加法器共有十六個,最後總共得十六個複數和。因此得到(1.13)式與定義θ4 得到(1.14)式。由圖1.6 可知總共有 64 個輸出值,需找出能量值(I2+Q2)最大的一個(即每一層皆為最大能量值),如果φ-θ=0或 φ=θ,則每一層的能量值結果為 (1+1)2、(j+1)2、(-j+1)2與(-1+1)2,得到最大能量值,所以當 φ22,φ33與φ44,時可以得到最大能量值(I2+Q2),所以若得到的最大絕對值的 Q 大於 I 且 Q 為正數,則φ1
π/2,反之若 Q 為負數,則φ1為π。若得到的最大絕對值為 I 大於 Q,且I 為正數,則φ1為 0。反之若 I 為負數,則φ1為 3π/2。

 

 

 

 

..............(1.6)..............(1.6)..............(1.6)

 

 

..............(1.6)

 

..............(1.6)

 

..............(1.6)

..............(1.6)

 

                                            .....(1.2)                            

 

 

由於每一的快速華許解調變方塊最後會得到十六個複數和,所以總共會有六十四個複數和,所得之六十四個複數和分別會對應到一組 CCK
碼,而六十四個複數將根據能量值(I2+Q2)大小互相比較,將會有一組最大值出現,而其所對應之 CCK 碼即為其傳送端之資料。對於使用快
速華許方塊架構 CCK 解調變之整體架構總共需要 28*4=112 個複數加法器,18*4+4*3=84 個複數乘法器,六層比較器共 32+16+8+4+2+1=63

個比較器等等。