Nov 27th 2013, 07:33, by R.F.
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={ej(Φ1+Φ2+Φ3+Φ4), ej(Φ1+Φ3+Φ4), ej(Φ1+Φ2+Φ4) , -ej(Φ1+Φ4), ej(Φ1+Φ2+Φ3), ej(Φ1+Φ3), -ej(Φ1+Φ2), ejΦ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={ej(3π/2+0+π+π/2), ej(3π/2+π+π/2), ej(3π/2+0+π/2), -ej(3π/2+π/2), ej(3π/2+0+π), ej(3π/2+π), -ej(3π/2+0), ej(3π/2)}={ej(3π), ej(3π), ej(2π), -ej(2π), ej(5π/2), ej(5π/2), -ej(3π/2), ej(3π/2)}。再根據尤拉公式ejθ=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種不同的值,所以總共會產生44=256種可能性。最普通的解法是將收到CCK編碼和256組CCK1u0 編碼之中,每個chip的共軛複數相乘後相加,於是得到256組複數。在這256組複數中,再找出值(I2+Q2)最大的那組,其對應的8bit資料就是傳送端傳來的資料。
這其中還有些變通的辦法減少解調端的運算負荷量,例如Φ1在每個CCK碼之中都有,便可把Φ1提出來變成C=ejΦ1{ej(Φ2+Φ3+Φ4), ej(Φ3+Φ4), ej(Φ2+Φ4) , -ejΦ4, ej(Φ2+Φ3), ej(Φ3), -ejΦ2, 1},運算量就可以從44變為43,除了這個之外,還有其他更為快速的算法,在此就不一一列出。
CCK 還是正交
CCK所使用的算式C={ej(Φ1+Φ2+Φ3+Φ4), ej(Φ1+Φ3+Φ4), ej(Φ1+Φ2+Φ4) , -ej(Φ1+Φ4), ej(Φ1+Φ2+Φ3), ej(Φ1+Φ3), -ej(Φ1+Φ2), ejΦ1}看起來相當奇怪,但其實是Walsh/Hadamard矩陣的變化,如果把相位和其所出現的位置畫成表格,就很容易看出來。
敏感的人應該已經察覺,相位的出現有其規律性,Φ1每個位置都出現,Φ2則是隔1格位置出現,Φ3是將2格分成1組,隔1組出現,Φ4則是4格1組,隔組出現,這種巧合正好是8階Walsh/Hadamard矩陣的其中4列。Walsh/Hadamard矩陣很重要的一點就是每列相互正交,兩兩內積為0。
▲1個8階的Hadamard矩陣。
This entry passed through the Full-Text RSS service — if this is your content and you're reading it on someone else's site, please read the FAQ at fivefilters.org/content-only/faq.php#publishers.