卷积码和Turbo码
通信原理相關(guān)博文目錄:目錄
我們常在移動(dòng)通信中遇到的卷積碼就是一種非分組碼,卷積碼和信號(hào)處理中的卷積運(yùn)算有關(guān)系嗎?
是不是就是信號(hào)處理中的卷積運(yùn)算,先看看編碼器的編碼原理再說:
下面是一個(gè)比較實(shí)用的卷積碼編碼器:
它有三個(gè)移位寄存器D0,D1,D2和三個(gè)模2加法器,以及一個(gè)旋轉(zhuǎn)開關(guān)組成,編碼前,先將各級(jí)移位寄存器清零:
現(xiàn)在假設(shè)輸入的信息碼元是1101:
當(dāng)輸入的第一個(gè)碼元為1時(shí),三個(gè)模2加法器計(jì)算的結(jié)果都為1:
旋轉(zhuǎn)開關(guān)在這個(gè)間隙內(nèi)依次接到c1,c2,c3:
因此編碼輸出為111:
輸入第二個(gè)碼元1時(shí),之前的碼元右移一位,輸出為110:
以此類推,輸入碼元0時(shí),輸出010:
輸入最后一個(gè)碼元1時(shí),輸出100:
因此輸入1101,編碼輸出為:
111 110 010 100。
其中每一碼組的監(jiān)督碼元都和本碼組的信息碼元,以及前兩組的信息碼元有關(guān),也就是說本碼組的監(jiān)督碼不僅監(jiān)督本碼組,而且對(duì)前面兩個(gè)碼組也有監(jiān)督作用,這是和分組碼特別不同的地方,分組碼的監(jiān)督碼僅監(jiān)督本碼組的信息,所以把分組碼表示成(n,k),而把卷積碼表示為(n,k,m),其中n為分組長度,k為分組中的信息碼元數(shù)目,m為本信息段之前的相關(guān)信息段數(shù)目,顯然一個(gè)碼組的監(jiān)督碼元監(jiān)督著m+1個(gè)信息段,因此也將N=m+1稱為碼組的約束長度,在本例中,相關(guān)數(shù)值如下:
編碼效率:
既然卷積碼也有碼組,為什么說它不是分組碼呢?
真正的分組應(yīng)該是獨(dú)立的,但卷積碼的碼組之間是有著約束關(guān)系的,另外,分組碼有著嚴(yán)格的代數(shù)結(jié)構(gòu),而卷積碼至今尚未找到如此嚴(yán)謹(jǐn)?shù)臄?shù)學(xué)手段,因此不能簡單的應(yīng)用代數(shù)譯碼,實(shí)際上大多數(shù)譯碼器采用的是概率譯碼,這其中最流行的當(dāng)屬維特比譯碼了。
維特比譯碼,現(xiàn)在不說。
現(xiàn)在可以回答一開始的那個(gè)問題了,卷積編碼和卷積運(yùn)算有什么關(guān)系呢?
自然是有關(guān)系的,直觀上,卷積編碼過程具有翻轉(zhuǎn)、右移、疊加和相關(guān)等特征,這個(gè)咱們在信號(hào)中演示的卷積運(yùn)算何其相似啊。
實(shí)際上,在數(shù)學(xué)推算中,每輸入一個(gè)信息碼組,所獲得的輸出碼組,的確可以看做由卷積運(yùn)算得來的,這也是卷積碼名稱的由來。
下面介紹Turbo碼:
所謂最大似然,就是最像的意思。
因?yàn)榫幋a是隨機(jī)的,沒有嚴(yán)格的代數(shù)運(yùn)算,所以譯碼就只能看收到的碼組最像哪個(gè)許用碼組,就判為哪個(gè)碼組。
既要碼組很長,又要最大似然譯碼,聽說這是左右為難的事情?
因?yàn)榇a組加長,譯碼難度就會(huì)成指數(shù)增長,所以長期以來,人們都認(rèn)為,隨機(jī)編譯碼僅僅是香農(nóng)為證明定理的存在而引入的理論方法,實(shí)際上是不可能實(shí)現(xiàn)的,但是Turbo碼的出現(xiàn),顯然改變了這一人們固有的觀念。
Turbo碼的思想是利用短碼來構(gòu)造長碼,通過對(duì)長碼的偽隨機(jī)交織,實(shí)現(xiàn)大約束長度的隨機(jī)編碼。
而在譯碼時(shí),則使用迭代譯碼,將長碼化成短碼,從而以較小復(fù)雜度來獲得接近最大似然譯碼的性能。
編碼器結(jié)構(gòu):
由兩個(gè)遞歸系統(tǒng)卷積編碼器通過交織器并行級(jí)聯(lián)而成,所以Turbo碼也被稱為并行級(jí)聯(lián)卷積碼。
這個(gè)所謂的遞歸系統(tǒng)卷積編碼器,簡稱RSC編碼器。
RSC編碼器和前面討論的卷積編碼器主要的區(qū)別是每一個(gè)移位寄存器的輸出,都有反饋回信息的輸入端,
這就是所謂的遞歸的意思:
交織器的基本原理:
將輸入序列按行寫入,
按列讀出,
目的是將突發(fā)的錯(cuò)碼分散開,變成隨機(jī)錯(cuò)碼,使兩個(gè)RSC編碼器趨近獨(dú)立,同時(shí)可以變短碼為長碼,使之接近香農(nóng)定理的條件,也就是碼組足夠長,并且是隨機(jī)的。
然后刪余,是為了提高編碼效率,周期刪除一些多余的校驗(yàn)位,
復(fù)用則是一種并串轉(zhuǎn)換,將信息位和校驗(yàn)位合并輸出,
Turbo碼譯碼原理:
這是Turbo碼譯碼器的基本結(jié)構(gòu),編碼器用了兩個(gè)RSC編碼器,譯碼時(shí)相應(yīng)用了連個(gè)譯碼器,
收到編碼器發(fā)來的編碼序列后,
首先要進(jìn)行串并轉(zhuǎn)換,分離出信息序列,和兩個(gè)校驗(yàn)序列,對(duì)于那些要?jiǎng)h余的地方要補(bǔ)0,
譯碼器1并沒有對(duì)信息序列作判決,而是產(chǎn)生一個(gè)被稱為外信,1的可信度譯碼信息,這個(gè)信息可以幫組譯碼器2對(duì)信息序列作更精確的判斷,這里的交織器的作用是使譯碼器2的輸入信息,在所有時(shí)刻上都是相對(duì)應(yīng)的,譯碼器2用與譯碼器1同樣的方法,再次產(chǎn)生一個(gè)外信息2,這個(gè)外信息2經(jīng)過去交織后,反饋回譯碼器1,作為譯碼器1的輸入,這一過程就稱為循環(huán)迭代。
經(jīng)過多次循環(huán)迭代后,譯碼器2對(duì)信息序列的判斷會(huì)更為精確,最后對(duì)譯碼器2輸出的似然序列去交織后,再進(jìn)行一次硬判決,就得到了最終的輸出信息。
綜上,編碼用遞歸,譯碼用迭代。
分組碼,卷積碼,Turbo碼的優(yōu)缺點(diǎn)?
分組碼是在嚴(yán)密的代數(shù)理論上建立的,因而它的編譯碼電路都比較簡單,應(yīng)用較為廣泛,適合于發(fā)現(xiàn)和糾正突發(fā)錯(cuò)誤,所謂突發(fā)錯(cuò)誤,即錯(cuò)誤突然集中發(fā)生;
卷積碼可以糾正隨機(jī)錯(cuò)碼,而且在碼率和復(fù)雜性相同的情況下,卷積碼的性能優(yōu)于分組碼;
Turbo碼的編碼性能無疑是這幾種碼中最好的,但大家都看到了,編譯碼較為復(fù)雜,相比之下有較大的延遲,所以通常只應(yīng)用在對(duì)延遲不太敏感的數(shù)據(jù)通信中。
總結(jié)
以上是生活随笔為你收集整理的卷积码和Turbo码的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: php 处理raw数据,PHP用HTTP
- 下一篇: IPC网络高清摄像机基础知识4(Sens