介紹除了OFDM外,一個(gè)完整通信鏈路中所需的其他環(huán)節(jié),給出發(fā)射機(jī)鏈路和接收機(jī)鏈路的整體框圖,最后結(jié)合802.11a介紹相關(guān)技術(shù)指標(biāo)。
系統(tǒng)框圖調(diào)整
在上一篇中,框圖部分我們剛介紹了用IFFT/FFT來(lái)實(shí)現(xiàn)OFDM,通過(guò)加循環(huán)前綴(CP)來(lái)消除ISI和減少ICI。
在這一節(jié)中,我們要將整體的OFDM基帶實(shí)現(xiàn)模型給完整描繪出來(lái),即:
其中,圖上省略了在輸入的二進(jìn)制數(shù)據(jù)之后,FEC編碼器之前的加擾的部分,作用是為了避免出現(xiàn)長(zhǎng)串的1或0,影響接收機(jī)的定時(shí).
前向糾錯(cuò) (英語(yǔ): forward error correction ,縮寫(xiě) FEC )或 信道編碼 (英語(yǔ): channel coding )是一種在單向通信系統(tǒng)中控制傳輸錯(cuò)誤的技術(shù),通過(guò)連同數(shù)據(jù)發(fā)送額外的信息進(jìn)行錯(cuò)誤恢復(fù),以降低比特誤碼率。
擾碼器
在數(shù)字通信中,如果出現(xiàn)常‘1’或者?!?’序列都會(huì)影響接收機(jī)鏈路中同步的建立和保持。所以往往可以在發(fā)射機(jī)鏈路中加入擾碼器(scrambler)來(lái)將數(shù)字信號(hào)變換為具有近似白噪聲統(tǒng)計(jì)特性的數(shù)字序列.這樣同時(shí)能限制電路中存在不同程度的非線性特性對(duì)其他電路通信造成的串?dāng)_.
所謂加擾,即在不增加冗余而攪亂信號(hào),改變其統(tǒng)計(jì)特性.這項(xiàng)技術(shù)的實(shí)現(xiàn)方式即耳熟能詳?shù)姆答佉莆?a href="http://www.brongaenegriffin.com/tags/寄存器/" target="_blank">寄存器序列(即偽隨機(jī)序列,m序列).
在硬件實(shí)現(xiàn)上,有兩種不同的實(shí)現(xiàn)方式,分別是輸入信號(hào)不經(jīng)過(guò)寄存器:
和輸入信號(hào)經(jīng)過(guò)寄存器:
其中,圖中的+號(hào)為模2加法,即可以使用異或?qū)崿F(xiàn).而在這里,802.11a中采用的是方式1,其中生成多項(xiàng)式為:
信道編碼
在加擾后,為了加強(qiáng)對(duì)信道的抗噪能力,我們需要引入額外的監(jiān)督碼元來(lái)對(duì)接收信號(hào)進(jìn)行檢錯(cuò)糾錯(cuò)即信道編碼過(guò)程.由于這一部分原理猶如天書(shū),所以僅盡量寫(xiě)得像是個(gè)人能讀懂的.
在802.11a中主要采用了:卷積編碼.在框圖中將稱之為FEC( forward error correction ,前向糾錯(cuò))編碼/譯碼器
卷積碼原理
卷積碼的由來(lái),是因?yàn)檩斎氲脑枷?shù)據(jù)會(huì)和編碼器(encoder)的沖激響應(yīng)(impulse response)做卷積運(yùn)算。即:
編碼過(guò)程
一個(gè)(n,k,m)卷積編碼器由Nk個(gè)移位寄存器和n個(gè)模2加法器組成。編碼輸出的n比特不僅取決于正在移入的k比特,還與這之前輸入的m個(gè)k位有關(guān)。所以對(duì)一般框圖來(lái)說(shuō):
至此,我們可以得到1/2卷積編碼器的原理圖:
在此情況下,每輸入1比特就是輸出A和B兩個(gè)兩個(gè)比特,實(shí)現(xiàn)1/2碼率.
刪余
為了提高傳輸效率,在卷積編碼后一邊會(huì)進(jìn)行刪余(puncture),即周期性刪除一些相對(duì)不重要的數(shù)據(jù)比特.進(jìn)行刪余后的卷積編碼一般也稱作刪余卷積碼.而在譯碼前會(huì)對(duì)刪掉的比特位置進(jìn)行填充.
具體操作如下:
在ofdm系統(tǒng)中,針對(duì)不同的數(shù)據(jù)速率需要不同的編碼率,所以我們可以用1/2通過(guò)刪余得到2/3和3/4等編碼率.
所以在很容易可以得到多碼率卷積碼的硬件結(jié)構(gòu):
熱心的網(wǎng)友的問(wèn)題:
那這個(gè)時(shí)候,就會(huì)有熱心的網(wǎng)友想問(wèn):
- 為什么不針對(duì)2/3,3/4單獨(dú)開(kāi)一套卷積編碼,非得用1/2去改?在接收端填充不會(huì)影響結(jié)果的嗎?
- 你上面寫(xiě)的那個(gè)有限狀態(tài)機(jī)是什么東西,有什么用?
那這個(gè)時(shí)候就要引入解調(diào)部分的原理了.
Viterbi算法
其基本原理為:將接收到的序列和所有可能的發(fā)送序列作比較,選擇其中漢明距離最小的序列當(dāng)作是現(xiàn)在的發(fā)送序列.這是一種利用最大似然估計(jì)進(jìn)行譯碼的算法.
里面有從最短路徑,動(dòng)態(tài)規(guī)劃,概率估計(jì)等角度去解讀Viterbi算法的,大家都可以先去看看,而他們有一個(gè)共同的好處,就是圖多,也方便大家理解.
需要注意的是,這里利用Viterbi算法進(jìn)行卷積碼譯碼的前提和轉(zhuǎn)換思路是將編碼的實(shí)現(xiàn)即有限狀態(tài)的狀態(tài)機(jī),看成是一個(gè)**隱性馬爾可夫模型(HMM)**這樣子才能實(shí)現(xiàn)利用最大似然等概率的方式來(lái)反推電路的設(shè)計(jì).
看完了上面的幾個(gè)連接,就可以理解到狀態(tài)編碼將直接影響到整個(gè)算法的復(fù)雜度,所以在譯碼過(guò)程中先將數(shù)據(jù)進(jìn)行增余,再進(jìn)行譯碼,即將刪余后的2/3或3/4碼率通過(guò)增余再變成1/2的話,Viterbi算法的實(shí)現(xiàn)復(fù)雜度將會(huì)大大降低.
交織/解交織
在信道編碼后的信息具有一定的檢糾錯(cuò)能力,但是面對(duì)信道的突發(fā)錯(cuò)誤使得誤碼區(qū)塊長(zhǎng)度超過(guò)信道編碼的糾錯(cuò)能力的上限時(shí),信道編碼就顯得有點(diǎn)"失效"了.這個(gè)時(shí)候需要引入交織,將信道的突發(fā)錯(cuò)誤平均到各個(gè)字段上,讓他變成隨機(jī)錯(cuò)誤,再憑借信道編碼,就可以大大提高其糾錯(cuò)能力了.
原理及作用
在上一節(jié)的信道編碼中,我們可知道信道編碼可以對(duì)一段字符中的某幾個(gè)字符進(jìn)行檢錯(cuò)和糾錯(cuò),但如果接收端是這樣的:
直接有一個(gè)字段就全錯(cuò)了,這個(gè)時(shí)候信道編碼是救不回來(lái)的,接下來(lái)看看交織是怎么做的(以分組交織為例,簡(jiǎn)單):
通過(guò)將信息進(jìn)行重新整合,若信道出現(xiàn)突發(fā)錯(cuò)誤,這樣在解交織時(shí)就會(huì)平攤到各個(gè)字段上,這樣子就可以通過(guò)信道編碼進(jìn)行糾錯(cuò)了.
交織有兩種基本形式:分組交織和卷積交織.
還有利用兩個(gè)卷積編碼器進(jìn)行級(jí)聯(lián),實(shí)現(xiàn)一串由偽隨機(jī)性質(zhì)的編碼,即并行級(jí)聯(lián)卷積碼,又稱為T(mén)urbo碼.
其中,分組交織的原理在前面已經(jīng)講了,假設(shè)輸入為N,輸出為M,則稱交織深度為N*M.可見(jiàn)交織深度必將給系統(tǒng)帶來(lái)較大延時(shí),故必然會(huì)受到約束.
然后就是卷積交織器,這是一個(gè)非常適用用于連續(xù)比特流通信系統(tǒng)的交織方式,其交織深度僅為分組交織的一半.圖解如下:
由于在OFDM中采用的是多載波調(diào)制,所以分組交織的延時(shí)也沒(méi)有這么嚴(yán)重,而在802.11中采用的是分組交織,故不過(guò)多討論卷積交織和Turbo碼,有興趣的同學(xué)可以看一下參考文獻(xiàn).
解交織
此時(shí)可以換一個(gè)角度考慮問(wèn)題:將分組交織看成是一種矩陣的轉(zhuǎn)置
那么顯然解交織也只需要對(duì)這個(gè)矩陣再進(jìn)行一次轉(zhuǎn)置就可以了,所以跟加擾的解擾一樣,這里只要同樣做一個(gè)轉(zhuǎn)置的交織過(guò)程就可以了.
熱心網(wǎng)友的問(wèn)題
那么這個(gè)時(shí)候就會(huì)有熱心的網(wǎng)友問(wèn):你說(shuō)的這個(gè)加擾器,他不就是將基帶信號(hào)變成具有偽隨機(jī)信號(hào)性質(zhì)的東西了嗎,這個(gè)時(shí)候還整交織干嘛嘛?
那顯然這個(gè)網(wǎng)友是沒(méi)有好好看交織的原理的,他的目的是為了讓信道中出現(xiàn)的突發(fā)錯(cuò)誤轉(zhuǎn)換成隨機(jī)錯(cuò)誤,讓大伙們來(lái)"平攤"這個(gè)誤碼,而加擾的話主要目的是為了區(qū)別用戶(上行加擾)或者區(qū)分小區(qū)和信道(下行加擾)。
加擾是發(fā)送端用小區(qū)專用的加擾序列(偽隨機(jī)碼,根據(jù)小區(qū)ID生成)進(jìn)行加擾,接收端在進(jìn)行解擾,只有本小區(qū)內(nèi)的UE才能根據(jù)小區(qū)的ID進(jìn)行解擾,從而區(qū)分小區(qū),這么做的好處就是可以減少相鄰小區(qū)的干擾。
調(diào)制與解調(diào)
這部分為通信原理究極基礎(chǔ)部分,不詳述.
需要注意的是,由于在OFDM中為多載波調(diào)制,各子載波可以選擇不同的調(diào)制方式,而協(xié)議中對(duì)不同信息域的信息也會(huì)采用不同的調(diào)制方式,所以這個(gè)在后面具體實(shí)現(xiàn)時(shí)會(huì)再說(shuō).
同時(shí),由于OFDM僅規(guī)定了子載波的頻率與帶寬,所以我們可以進(jìn)行
- 相位的調(diào)制如:BPSK,QPSK
- 相位幅度聯(lián)合調(diào)制:16QAM,64QAM
那這個(gè)時(shí)候就會(huì)引入星座圖,然后根據(jù)星座圖畫(huà)接收域,就可以實(shí)現(xiàn)解調(diào)了.
而! ,在前一節(jié)中介紹到OFDM系統(tǒng)具有峰均功率比(Peak-to-Average Power Ratio,OAPR)的問(wèn)題,所以僅實(shí)現(xiàn)幅值上的調(diào)制是不是就有點(diǎn)虧啊.所以類(lèi)似在第一節(jié)中的ASK-OFDM就不會(huì)太常見(jiàn).
導(dǎo)頻插入與信道均衡
在802.11a或是其他協(xié)議中,在通信開(kāi)始前都有訓(xùn)練序列以進(jìn)行信道均衡,但是在OFDM中對(duì)頻偏是很敏感的,因?yàn)樗麜?huì)破壞載波間的正交性,所以我們需要浪費(fèi)一些子載波插入導(dǎo)頻,降低隨時(shí)間增長(zhǎng)的對(duì)頻率估計(jì)的偏差.
多普勒頻移
除了多徑等對(duì)頻率的影響,還有一個(gè)重要的比較重要的影響因素就是多普勒頻移.他指的就是發(fā)送機(jī)位置的移動(dòng)將對(duì)接收機(jī)的頻率估計(jì)進(jìn)行影響.圖解如下:
在維基上有對(duì)其他狀態(tài)的討論,可見(jiàn)于參考文獻(xiàn).
熱心網(wǎng)友的證明
僅針對(duì) 接收機(jī)不動(dòng),發(fā)送機(jī)移動(dòng)的情況:
已知:
在一個(gè)波內(nèi),光源的速度變化乘以波的周期等于波長(zhǎng)變化
高鐵上要怎么辦呢?
剛聽(tīng)完鄭同學(xué)的講解啊,我想的就是 高鐵要咋辦呢?這么高速的情況下,應(yīng)該頻偏會(huì)很?chē)?yán)重吧.
然后去查了一下,現(xiàn)在主要的方式就是結(jié)合MIMO配合Moose,S&C,CP等算法進(jìn)行進(jìn)行頻率的補(bǔ)償,這里不細(xì)說(shuō)了,大家有興趣的話可以看一下參考文獻(xiàn)
高鐵場(chǎng)景下OFDM_MIMO系統(tǒng)多普勒頻偏估計(jì)算法研究^[5]^
網(wǎng)友的疑問(wèn)
那你這個(gè) 導(dǎo)頻插入和信道均衡 在哪啊?
實(shí)際上這個(gè)導(dǎo)頻插入大家可以短淺理解為DDS,導(dǎo)頻產(chǎn)生可以回看我之前寫(xiě)的DDS:
基于FPGA的兩路信號(hào)發(fā)生器-CSDN^[6]^
至于信道均衡的話,在這里具體包括四個(gè)方面的內(nèi)容:
- 長(zhǎng)訓(xùn)練符號(hào)提取(LTS Picking)
- 能量計(jì)算(Energy Compute)
- 信道估算(Channel Estimating)
- 信道補(bǔ)償(Channel Compensating)
跟Viterbi算法一樣,理論很多,實(shí)現(xiàn)很難,還是等到具體實(shí)現(xiàn)的時(shí)候再慢慢談吧
IQ調(diào)制
在完成數(shù)字調(diào)制,即星座圖映射之后,現(xiàn)在必然存在實(shí)數(shù)I和復(fù)數(shù)Q域,在最后發(fā)送前,我們需要將這兩路信號(hào)合并,他的實(shí)現(xiàn)思路其實(shí)很簡(jiǎn)單,就是要維持他們的正交性:
802.11a下的標(biāo)準(zhǔn)
這里主要就是 圖多.
主要參數(shù)設(shè)定
在802.11a中,可以根據(jù)應(yīng)用的情景不同選擇不同的調(diào)制方式實(shí)現(xiàn)不同的數(shù)據(jù)速率和不同的編碼效率,其中編碼效率的變換在上文的卷積碼中已經(jīng)提到了.
可見(jiàn)一個(gè)OFDM符號(hào)中有52個(gè)子載波,但其中4個(gè)為導(dǎo)頻信號(hào),即只有48個(gè)子載波進(jìn)行數(shù)據(jù)傳輸.而一個(gè)OFDM符號(hào)位4us,而保護(hù)間隔位0.8us.即用于數(shù)據(jù)傳輸?shù)臅r(shí)間為3.2us.即子載波間隔為:
物理層協(xié)議單元(PPDU)幀結(jié)構(gòu)
在802.11a中,相關(guān)的幀結(jié)構(gòu)如下:
訓(xùn)練序列
其中,PLCP(Physical Layer Convergence Procedure),可見(jiàn)PLCP Preamble為前導(dǎo)碼,具體每位定義如下:
在前導(dǎo)碼中分為兩種訓(xùn)練序列:
- 短訓(xùn)練符號(hào)(Short Training Symbol,STS)在t1-t10上周期重復(fù).但不是所有子載波都需要這個(gè),只要其中的{-24,-20,-16,-12,-8,-4,4,8,12,16,20,24}
- 長(zhǎng)訓(xùn)練符號(hào)(Long Training Symbol,LTS)在T1-T2上周期重復(fù),其中圖上G12為兩周期保護(hù)間隔,T1和T2為完整ofdm信號(hào)周期,應(yīng)為3.2us,即圖示有錯(cuò).
具體符號(hào)內(nèi)容后續(xù)實(shí)現(xiàn)的時(shí)候再講,這里我們可以得到在發(fā)送時(shí)的訓(xùn)練序列為:
其中,按4個(gè)子載波隔開(kāi)的是短訓(xùn)練序列,各個(gè)子載波都需要的是長(zhǎng)訓(xùn)練序列,那4個(gè)長(zhǎng)條的是導(dǎo)頻.
Signal域
接下來(lái)就到了Signal域,也就是PLCP Header部分.這一部分需要使用BPSK調(diào)制,而且碼率為1/2,即此時(shí)數(shù)據(jù)數(shù)據(jù)為6Mb/s,下面是signal域的結(jié)構(gòu)
其中,前四位為速率位,決定后續(xù)數(shù)據(jù)域的傳輸方式,對(duì)應(yīng)如下:
第五位為保留位,緊接著的是Length域,主要是MAC所需要發(fā)送的物理層服務(wù)數(shù)據(jù)單元(PSDU)的個(gè)數(shù).第17位為0-16位的偶校驗(yàn)位.
18-23位全部置0,作用有2:
- 初始化卷積編碼器
- 終止Viterbi譯碼器的碼網(wǎng)絡(luò)(讓其走回開(kāi)始狀態(tài))
需要注意: SIGNAL字段的內(nèi)容不加擾。
Data域
接著就到了數(shù)據(jù)域,其中包括服務(wù)域,PSDU,尾比特域和填充比特:
其中,Service的前7個(gè)比特設(shè)為了0,這里主要是為了初始化接收機(jī)的解擾碼器.其余的字段主要用于計(jì)算data域長(zhǎng)度和維持時(shí)間,pad段為了填充數(shù)據(jù)幀為ofdm數(shù)據(jù)符號(hào)數(shù)整數(shù)倍.
其他細(xì)節(jié)可參看參考文獻(xiàn),這里主要介紹重要的協(xié)議標(biāo)準(zhǔn),其他細(xì)化的會(huì)在實(shí)現(xiàn)中說(shuō)明.
與MAC交互過(guò)程
最后可以看看物理層與MAC層的交互,以發(fā)送過(guò)程為例:
評(píng)論