通信情妖,就是將信息準(zhǔn)確無誤地從發(fā)件人傳遞給收件人的過程睬关。信息在光纖,電纜中以電信號(hào)傳播毡证,在傳播過程中信號(hào)會(huì)因?yàn)樵肼暫透蓴_而“受傷”电爹,因此我們需要想辦法保證信息傳遞的準(zhǔn)確性。
重傳
我前段時(shí)間網(wǎng)購了一只可愛的熊本熊料睛,但是過了好幾天快遞記錄一直停滯不更新丐箩。我心急,聯(lián)系商家恤煞,他說跟快遞確認(rèn)可能小熊已經(jīng)丟了屎勘,于是給我重新發(fā)了一只。
可以粗略地將通信模型類比成網(wǎng)購熊本熊居扒,其中的熊本熊就是需要傳遞的信息塊1(如下圖所示)概漱,商家是發(fā)送方(transmitter),我是接收方(receiver)喜喂,委托的快遞是信道(可以簡(jiǎn)單理解為信息傳遞的管道)瓤摧。
我通過查詢快遞,發(fā)現(xiàn)熊本熊發(fā)貨異常玉吁,與商家聯(lián)系之后照弥,他給我又發(fā)了一只過來。
在信息傳遞錯(cuò)誤的情況下进副,會(huì)使用與我類似的策略:如果接收方發(fā)現(xiàn)信息有誤(不完整这揣,損壞或者丟失),就要求發(fā)送方將原來的信息重新發(fā)送一次敢会,這就是重傳機(jī)制曾沈。
重傳機(jī)制在日常生活中也非常常見,比如我們交談時(shí)候鸥昏,如果沒有聽清楚,會(huì)不自覺地“嗯姐帚?”一聲吏垮,對(duì)方就會(huì)將剛才的話再說一遍。
前向錯(cuò)誤更正
我們通過聽到的語音片段罐旗,判斷對(duì)方發(fā)出的信息是否正確膳汪,那手機(jī)和計(jì)算機(jī)又怎么判斷發(fā)送信息是否正確呢?使用CRC校驗(yàn)九秀。
網(wǎng)購熊本熊遗嗽,收到貨物之后,我怎么判斷是我買的那只呢鼓蜒?
我會(huì)將它與網(wǎng)店的照片和描述進(jìn)行比對(duì)痹换,比如外觀征字,顏色,材質(zhì)娇豫,樣式等等匙姜,如果這些關(guān)鍵信息與網(wǎng)店描述一致,那么就可以肯定我收到的是正品冯痢。與商家確認(rèn)之前氮昧,我利用了網(wǎng)店的冗余信息,判斷網(wǎng)購貨物的真?zhèn)巍?/p>
前向錯(cuò)誤更正是一種在單向通信系統(tǒng)中控制傳輸錯(cuò)誤的技術(shù)浦楣,通過連同數(shù)據(jù)發(fā)送額外的資訊進(jìn)行錯(cuò)誤恢復(fù)袖肥,以降低比特誤碼率。
電子設(shè)備也是根據(jù)發(fā)送信息中攜帶的冗余信息來驗(yàn)證正確性的振劳,這種技術(shù)角前向錯(cuò)誤更正椎组。所有的電子設(shè)備與人類不同,它們只認(rèn)識(shí)0和1澎迎,傳遞的信息也是一串010101010101...
一樣的碼流庐杨,所以在傳送的信息碼流之后,發(fā)送方會(huì)添加與信息碼流相關(guān)的冗余信息夹供,供接收方判斷收到信息的正確性灵份。本質(zhì)上,是通過一系列的運(yùn)算哮洽,提取出信息碼流的特征填渠,用冗余信息描述,并將冗余信息附在信息碼流的之后一起發(fā)送出去鸟辅。
如下圖所示氛什,黃色塊是信息比特,CRC bits就是冗余信息匪凉。接收方解碼出信息比特枪眉,再運(yùn)算出CRC bits與發(fā)送的CRC bits進(jìn)行比較:如果相同,則信息接收無誤再层,否則說明信息傳輸錯(cuò)誤贸铜。CRC的具體的機(jī)制可以參考我之前的博文CRC校驗(yàn)編碼。
ARQ和HARQ
ARQ
之前介紹的重傳機(jī)制就是一種ARQ(Automatic Repeat-reQuest)技術(shù)聂受。
如下圖所示蒿秦,接收方在收到信息之后,會(huì)借助前向錯(cuò)誤更正技術(shù)來判斷收到的信息是否損壞蛋济,如果沒有則反饋一條ACK(ACKnowledgement)的信息棍鳖,告訴發(fā)送方信息已經(jīng)正確接收,發(fā)送方知曉之后繼續(xù)發(fā)送新的信息碗旅;否則渡处,如果發(fā)現(xiàn)有誤镜悉,就丟棄該信息,然后發(fā)送一條Non-ACKnowledgement(NACK)的反饋信息骂蓖,發(fā)送方收到信息之后會(huì)重新發(fā)送原來的信息积瞒。
該技術(shù)有如下幾個(gè)關(guān)鍵特征:
- 接收方會(huì)發(fā)送反饋信息給發(fā)送方。無論接收正確與否登下,都需要反饋接收情況給發(fā)送方茫孔;
- 接收正確之后才繼續(xù)發(fā)送信息。在前一個(gè)信息沒有正確確認(rèn)之前被芳,不得發(fā)送下一條信息缰贝,所以ARQ又稱為stop and wait ARQ。如下圖所示
HARQ
我們留意到畔濒,如果信息有誤就直接丟棄剩晴,丟棄掉的信息僅僅是部分損壞,那如果不丟棄侵状,是不是可以利用里面的信息解碼呢赞弥?
答案是肯定的。有一個(gè)很直觀的例子趣兄,比如發(fā)送一頁書绽左,只是后面的一小部分模糊不清,如果重發(fā)之后之前損壞的那一小部分是好的艇潭,就可以將二者拼接起來拼窥,完整地復(fù)原之前的結(jié)果,這里的“拼接”就是通信信號(hào)中的軟合并(soft combine)技術(shù)蹋凝。
如上圖所示鲁纠,很明顯如果將之前傳輸有誤的數(shù)據(jù)緩存起來,與現(xiàn)有的損壞數(shù)據(jù)做分集合并鳍寂,必然會(huì)提高信息正確解碼的概率改含,這種結(jié)合了分集合并和ARQ的技術(shù)就稱為HARQ,即混合ARQ技術(shù)迄汛。
HARQ與之前的ARQ有兩個(gè)顯著區(qū)別:
- 緩存損壞數(shù)據(jù)候味。ARQ將損壞數(shù)據(jù)直接扔掉,而HARQ需要緩存起來隔心;
- 緩存數(shù)據(jù)與當(dāng)前數(shù)據(jù)軟合并解碼。緩存數(shù)據(jù)就是為了軟解碼尚胞,提高正確檢測(cè)率硬霍。
如上圖所示,如果數(shù)據(jù)塊2一直發(fā)送失敗笼裳,接收方會(huì)一直反饋失敗唯卖,直到與本地緩存數(shù)據(jù)聯(lián)合正確解碼為止粱玲。
根據(jù)發(fā)送方重發(fā)數(shù)據(jù)的內(nèi)容是否一致,可以將HARQ分為跟蹤合并和增量冗余兩種類型拜轨。
- 跟蹤合并(Chase Combining)
發(fā)送端將原始信息比特(Information Bits)加上CRC(Cyclic Redundancy Check, CRC)后通過Turbo Encoder編碼產(chǎn)生數(shù)據(jù)包(Coded Bits)抽减,無論首次還是之后重傳都要發(fā)送這個(gè)數(shù)據(jù)包Coded Bits,接收方則利用Maximum-ratio概念組合現(xiàn)在及之前收到的Coded Bits后橄碾,再進(jìn)入解碼器(Decoder)卵沉。由於每次重傳都與第一次傳的資料相同,所以並不會(huì)增加編碼率(Coding Rate)法牲,但可以在每次重傳時(shí)都增加訊噪比(Signal to Noise Ratio, SNR)Eb/N0史汗。
- 增量冗余(Incremental Redundancy)
與Chase Combining不同的是,傳送端在傳送前會(huì)將Coded Bits透過循環(huán)緩衝器(Circular Buffer)用打孔(Puncturing)的方式分成四種冗餘版本(Redundancy Version, RV)第一次傳送r.v.=0拒垃,若有需要重傳停撞,通常會(huì)依序再傳r.v.=2、r.v.=3及r.v.=1的部分悼瓮,若傳送四次合併之後仍無法正確解碼戈毒,才會(huì)全部捨棄再從頭重傳一遍,其相關(guān)概念如圖5所示横堡。LTE中的HARQ結(jié)合Soft Combining都是以Incremental Redundancy為主埋市。因此,F(xiàn)EC及Soft Combining提供的低誤碼率翅萤,將可以大幅減少傳統(tǒng)ARQ所必須重傳的次數(shù)恐疲。