13fef95410490c029fb47cb530d3a87e 802.11 b/g/n/ac各位可能會稍微熟悉一些,因為無線網路差不多在802.11g和802.11n交接的時期,其硬體設備價格明顯下降,消費者才比較願意將原本有線網路更換為無線網路;加上Intel大打Centrino品牌,除Intel的CPU和晶片組之外,還必須強制搭配Intel的無線網卡,才可掛上此貼紙,無線網路市場也因此活絡起來。

快速目錄:

802.11b 頻率 2.4GHz

上期我們談到802.11a使用ISM(Industrial, Scientific and Medical radio band,工業、科學以及醫療無線頻段)的5GHz頻段,可惜的是各國政府對於這個頻段的使用頻率分歧度較大,在加上能夠傳輸和接收5GHz頻段的硬體設備比較貴,同時也因5GHz頻段的頻率範圍大,前端的天線和收發器的製作較為困難。

802.11b的出場正是為了解決802.11a產品價格過高,市場推廣不利的問題。但2.4GHz同時會被家中既有電器干擾,如微波爐或是無線電話。但當時的時空背景主要以降低價格為考量,干擾問題於是被擺在較後面的順位。802.11b繼承了802.11的DSSS直接序列展頻,以及DBPSK差分2相移鍵(2相位差調變)和DQPSK差分4相移鍵(4相位差調變),所以理論傳輸速率也是1Mbps和2Mbps。不過802.11的FHSS跳頻展頻和GFSK高斯頻移鍵控(高絲頻率偏移調變)已不存在於802.11b之中。如果802.11b只是將FHSS和GFSK廢掉,那這個新規格也不用推出了,802.11b新導入了CCK(Complementary Code Keying,互補碼調變、互補碼移鍵)。

CCK

CCK互補碼調變主要取代掉DSSS中的巴克碼編碼方式,後端調變依然使用DQPSK,原本802.11採用DBPSK調變,11個chip只能代表實際資料1bit(改採DQPSK則是11個chip代表2bit),現在只需8個chip即可代表8bit,速度從802.11的1Mbps(DBPSK)和2Mbps(DQPSK)躍升為11Mbps;若是無線環境比較差的情況下,802.11b的CCK還允許8個chip代表4bit,速度降為一半5.5Mbps。

CCK的編碼方式較為複雜,首先給定1串8bit的資料C={d0, d1, d2, d3, d4, d5, d6, d7},則會編碼為C={e^j(Φ1+Φ2+Φ3+Φ4), e^j(Φ1+Φ3+Φ4), e^j(Φ1+Φ2+Φ4) , -e^j(Φ1+Φ4), ej(Φ1+Φ2+Φ3), e^j(Φ1+Φ3), -e^j(Φ1+Φ2), e^jΦ1}。Φ1、Φ2、Φ3、Φ4的值由資料C分成4組決定。其中Φ1的值會因為此符號位於奇數或偶數而有差別,兩者相差180度。

假設此符號為第偶數個,則當(d0, d1)=(0, 0)時、Φ=0;(d0, d1)=(0, 1)、Φ=π/2;(d0, d1)=(1, 1)、Φ=π;(d0, d1)=(1, 0 )、Φ=3π/2,確定角度之後再代回公式即可算出。之後的d2~d7則是兩兩一組,依照QPSK的方式得出相位值(注意此處不是格雷碼編碼),[di, d(i+1)]為(0, 0)時、Φ=0;[di, d(i+1)]為(0, 1)、Φ=π/2;[di, d(i+1)]為(1, 0)、Φ=π;[di, d(i+1)]為(1, 1)、Φ=3π/2。詳細DQPSK和PQSK的轉換請見附表。

假設現今有串8bit的資料為C={1, 1, 0, 0, 1, 0, 0, 1},根據附表轉換為Φ1=3π/2、Φ2=0、Φ3=π、Φ4=π/2。代換回公式即為C={e^j(3π/2+0+π+π/2), e^j(3π/2+π+π/2), e^j(3π/2+0+π/2), -e^j(3π/2+π/2), e^j(3π/2+0+π), e^j(3π/2+π), -e^j(3π/2+0), e^j(3π/2)}={e^j(3π), e^j(3π), e^j(2π), -e^j(2π), e^j(5π/2), e^j(5π/2), -e^j(3π/2), e^j(3π/2)}。再根據尤拉公式e^jθ=cosθ+jsinθ進行運算,變成C={cos(3π)+jsin(3π), cos(3π)+jsin(3π), cos(2π)+jsin(2π), -cos(2π)-jsin(2π), cos(5π/2)+jsin(5π/2), cos(5π/2)+jsin(5π/2), -cos(3π/2)-jsin(3π/2), cos(3π/2)+jsin(3π/2)}={-1, -1, j, -j, j, j,1, -1 },最終{1, 1, 0, 0, 1, 0, 0, 1}經過CCK之後就會變成{-1, -1, 1, -1, j, j, j, -j }。

由於CCK將資料編碼成複數chip,所以同時需要I、Q通道表示1個chip、如果編碼出來為1,則I、Q分別傳送0、0;若為j,則I、Q為0、1;若為-1,則I、Q為1、0;若為-j,則I、Q為-1、-1。

5.5Mbps 小更動

802.11b引入的CCK有2種速率,11Mbps和5.5Mbps,如果今天空間中的雜訊實在太多,符號錯誤率超過8%,則會改採5.5Mbps的速率。兩者編碼的步驟大致上相符,只不過輸入的8bit資料變成4bit,所以在算式的地方有些小小變更。假設C={d0, d1, d2, d3},d0和d1依然拿來選擇Φ1的角度,其餘Φ2、Φ3、Φ4的角度則是變成Φ2=(d2×π)+π/2、Φ3=0、Φ4=(d3×π)。

在解調方面,由於將每8bit分成4組相位,而4組相位又分別有4種不同的值,所以總共會產生4^4=256種可能性。最普通的解法是將收到CCK編碼和256組CCK編碼之中,每個chip的共軛複數相乘後相加,於是得到256組複數。在這256組複數中,再找出值(I^2+Q^2)最大的那組,其對應的8bit資料就是傳送端傳來的資料。

這其中還有些變通的辦法減少解調端的運算負荷量,例如Φ1在每個CCK碼之中都有,便可把Φ1提出來變成C=e^jΦ1{e^j(Φ2+Φ3+Φ4), e^j(Φ3+Φ4), e^j(Φ2+Φ4) , -e^jΦ4, e^j(Φ2+Φ3), e^j(Φ3), -e^jΦ2, 1},運算量就可以從4^4變為4^3,除了這個之外,還有其他更為快速的算法,在此就不一一列出。

CCK 還是正交

CCK所使用的算式C={e^j(Φ1+Φ2+Φ3+Φ4), e^j(Φ1+Φ3+Φ4), e^j(Φ1+Φ2+Φ4) , -e^j(Φ1+Φ4), e^j(Φ1+Φ2+Φ3), e^j(Φ1+Φ3), -e^j(Φ1+Φ2), e^jΦ1}看起來相當奇怪,但其實是Walsh/Hadamard矩陣的變化,如果把相位和其所出現的位置畫成表格,就很容易看出來。

敏感的人應該已經察覺,相位的出現有其規律性,Φ1每個位置都出現,Φ2則是隔1格位置出現,Φ3是將2格分成1組,隔1組出現,Φ4則是4格1組,隔組出現,這種巧合正好是8階Walsh/Hadamard矩陣的其中4列。Walsh/Hadamard矩陣很重要的一點就是每列相互正交,兩兩內積為0。

 

▲1個8階的Hadamard矩陣。

使用 Facebook 留言

K.Su
2.  K.Su (發表於 2013年11月28日 20:53)
好文<( ̄︶ ̄)>
把困難的知識變成簡單的文章
絕對好文!!
曼妮
7.  曼妮 (發表於 2013年12月30日 21:10)
大大,小弟有在這家喝過嗎,還不錯,推薦給大大試看看~

line:lolasexy 及時:ccyno19 SKype:moneylife9

大大可以參考看看。大大如果有好茶訊也可以分享給小弟哦~

發表回應

謹慎發言,尊重彼此。按此展開留言規則