本文主要是關(guān)于分組碼和卷積碼的相關(guān)介紹,并著重闡述了分組碼和卷積碼不同特性。
卷積碼
卷積碼是1955年由Elias等人提出的,是一種非常有前途的編碼方法。我們在一些資料上可以找到關(guān)于分組碼的一些介紹,分組碼的實(shí)現(xiàn)是將編碼信息分組單獨(dú)進(jìn)行編碼,因此無論是在編碼還是譯碼的過程中不同碼組之間的碼元無關(guān)。卷積碼和分組碼的根本區(qū)別在于,它不是把信息序列分組后再進(jìn)行單獨(dú)編碼,而是由連續(xù)輸入的信息序列得到連續(xù)輸出的已編碼序列。
即進(jìn)行分組編碼時(shí),其本組中的n-k個(gè)校驗(yàn)元僅與本組的k個(gè)信息元有關(guān),而與其它各組信息無關(guān);但在卷積碼中,其編碼器將k個(gè)信息碼元編為n個(gè)碼元時(shí),這n個(gè)碼元不僅與當(dāng)前段的k個(gè)信息有關(guān),而且與前面的(m-1)段信息有關(guān)(m為編碼的約束長度)。
同樣,在卷積碼譯碼過程中,不僅從此時(shí)刻收到的碼組中提取譯碼信息,而且還要利用以前或以后各時(shí)刻收到的碼組中提取有關(guān)信息。而且卷積碼的糾錯(cuò)能力隨約束長度的增加而增強(qiáng),差錯(cuò)率則隨著約束長度增加而呈指數(shù)下降 。卷積碼(n,k,m) 主要用來糾隨機(jī)錯(cuò)誤,它的碼元與前后碼元有一定的約束關(guān)系,編碼復(fù)雜度可用編碼約束長度m*n來表示。一般地,最小距離d表明了卷積碼在連續(xù)m段以內(nèi)的距離特性,該碼可以在m個(gè)連續(xù)碼流內(nèi)糾正(d-1)/2個(gè)錯(cuò)誤。卷積碼的糾錯(cuò)能力不僅與約束長度有關(guān),還與采用的譯碼方式有關(guān)。總之,由于n,k較小,且利用了各組之間的相關(guān)性,在同樣的碼率和設(shè)備的復(fù)雜性條件下,無論理論上還是實(shí)踐上都證明:卷積碼的性能至少不比分組碼差。
以二元碼為例,編碼器如圖。輸入信息序列為u=(u0,u1,…),其多項(xiàng)式表示為u(x)=u0+u1x+…+ulxl+…。編碼器的連接可用多項(xiàng)式表示為g(1,1)(x)=1+x+x2和g(1,2)(x)=1+x2,稱為碼的子生成多項(xiàng)式。它們的系數(shù)矢量g(1,1)=(111)和g(1,2)=(101)稱作碼的子生成元。以子生成多項(xiàng)式為陣元構(gòu)成的多項(xiàng)式矩陣G(x)=[g(1,1)(x),g(1,2)(x)],稱為碼的生成多項(xiàng)式矩陣。由生成元構(gòu)成的半無限矩陣
稱為碼的生成矩陣。其中(11,10,11)是由g(1,1)和g(1,2)交叉連接構(gòu)成。編碼器輸出序列為c=u·G,稱為碼序列,其多項(xiàng)式表示為c(x),它可看作是兩個(gè)子碼序列c(1)(x)和c(2)(x)經(jīng)過合路開關(guān)S合成的,其中c(1)(x)=u(x)g(1,1)(x)和c(2)(x)=u(x)g(1,2)(x),它們分別是信息序列和相應(yīng)子生成元的卷積,卷積碼由此得名。
在一般情況下,輸入信息序列經(jīng)過一個(gè)時(shí)分開關(guān)被分成k0個(gè)子序列,分別以u(x)表示,其中i=1,2,…k0,即u(x)=[u(x),…,u(x)]。編碼器的結(jié)構(gòu)由k0×n0階生成多項(xiàng)式矩陣給定。輸出碼序列由n0個(gè)子序列組成,即c(x)=[c(x),c(x),…,c(x)],且c(x)=u(x)·G(x)。若m是所有子生成多項(xiàng)式g(x)中最高次式的次數(shù),稱這種碼為(n0,k0,m)卷積碼。
分組碼
一類重要的糾錯(cuò)碼,它把信源待發(fā)的信息序列按固定的κ位一組劃分成消息組,再將每一消息組獨(dú)立變換成長為n(n>κ)的二進(jìn)制數(shù)字組,稱為碼字。如果消息組的數(shù)目為M(顯然M≤2κ),由此所獲得的M個(gè)碼字的全體便稱為碼長為n、信息數(shù)目為M的分組碼,記為【n,M】。把消息組變換成碼字的過程稱為編碼,其逆過程稱為譯碼。?
線性分組碼與非線性分組碼?分組碼就其構(gòu)成方式可分為線性分組碼與非線性分組碼。?
線性分組碼是指【n,M】分組碼中的M個(gè)碼字之間具有一定的線性約束關(guān)系,即這些碼字總體構(gòu)成了n維線性空間的一個(gè)κ維子空間。稱此κ維子空間為(n,κ)線性分組碼,n為碼長,κ為信息位。此處M=2κ。?
非線性分組碼【n,M】是指M個(gè)碼字之間不存在線性約束關(guān)系的分組碼。d為M個(gè)碼字之間的最小距離。非線性分組碼常記為【n,M,d】。非線性分組碼的優(yōu)點(diǎn)是:對于給定的最小距離d,可以獲得最大可能的碼字?jǐn)?shù)目。非線性分組碼的編碼和譯碼因碼類不同而異。雖然預(yù)料非線性分組碼會(huì)比線性分組碼具有更好的特性,但在理論上和實(shí)用上尚缺乏深入研究(見非線性碼)。?
線性分組碼的編碼和譯碼?用Vn表示?GF(2)域的n維線性空間,Vκ是Vn的κ維子空間,表示一個(gè)(n,κ)線性分組碼。Ei=(vi1,vi2…,vin)是代表Vκ的一組基底(i=1,2,…,κ)。以這組基底構(gòu)成的矩陣
稱為該(n,κ)線性碼的生成矩陣。對于給定的消息組m=(m1,m2,…,mκ),按生成矩陣G,m被編為
mG=m1E1+m2E2+…+mκEκ
這就是線性分組碼的編碼規(guī)則。若
之秩為n-κ并且滿足GHT=0,僅當(dāng)=(v1,v2,…,vn)∈n滿足HT?=0時(shí),才為κ中的碼字。稱H為(n,κ)線性分組碼κ的均等校驗(yàn)矩陣,稱HT為矢量的伴隨式。假設(shè)?v是發(fā)送的碼矢量,在接收端獲得一個(gè)失真的矢量r=v+E,式中E=(e1,e2,…,en)稱為錯(cuò)誤型。由此
rHT=(v+e)HT=eHT
線性碼的譯碼原則便以此為基礎(chǔ)。?
漢明碼?這是最早提出的一類線性分組碼,已廣泛應(yīng)用于計(jì)算機(jī)和通信設(shè)備。它是由R.W.漢明于1950年提出的。若碼的均等校驗(yàn)矩陣H由2r-1個(gè)、按任一次序排列且彼此相異的二進(jìn)制?r維列矢量構(gòu)成。這樣得到的線性分組碼稱為漢明碼,其分組長為n=2r-1,信息位為κ=n-r?=2r-1-r,即為(2r-1,2r-1-r)碼。例如,以矩陣
為均等校驗(yàn)矩陣的線性分組碼便為(7,4)漢明碼。漢明碼的譯碼十分簡單。例如, 假定=(1001100)為發(fā)送的碼字,其第3位有錯(cuò),即接收矢量為r?=(1011100)。于是
恰為矩陣H的第 3 列,因而判定原來發(fā)送的碼字為=(1001100)。這種譯碼方式是一般性的。如果接收矢量r在第i位有錯(cuò),則其伴隨式HrT剛好為矩陣H的第i列。漢明碼是可以糾正單個(gè)錯(cuò)誤的線性分組碼。?
循環(huán)碼?具有某種循環(huán)特性的線性分組碼,如果(n,κ)線性分組碼Vκ具有如下的性質(zhì):對于每一個(gè)=(ɑ0,ɑ1,…,)∈Vn,只要∈Vκ,其循環(huán)移位()亦屬于Vκ,則稱Vκ為循環(huán)碼。循環(huán)碼的優(yōu)點(diǎn)在于其編碼和譯碼手續(xù)比一般線性碼簡單,因而易于在設(shè)備上實(shí)現(xiàn)。使Vn中的每一個(gè)矢量=(ɑ0,ɑ1,…,),對應(yīng)于域GF(2)上的多項(xiàng)式ɑ(x)=ɑ0+ɑ1x?+…+xn-1。于是Vn中的全體n維矢量便與上述多項(xiàng)式之間建立了一一對應(yīng)的關(guān)系。基于這種對應(yīng),使Vn中除了線性運(yùn)算而外,還建立了矢量之間的乘法運(yùn)算。A=(ɑ0,ɑ1,…,)與B=(b0,b1,…,)的乘積ab可視為ɑ(x)b(x)【mod(xn-1)】所對應(yīng)的矢量。因此,一個(gè)(n,κ)循環(huán)碼的生成矩陣及均等校驗(yàn)矩陣可分別由生成多項(xiàng)式及均等校驗(yàn)多項(xiàng)式h(x)所代替,從而簡化了編碼及譯碼運(yùn)算。?
BCH碼?它是一類重要的循環(huán)碼,能糾正多個(gè)錯(cuò)誤。假設(shè)m是滿足2m呏1(mod?n)的最小正整數(shù),β是域GF(2m)的n次單位原根,作循環(huán)碼的生成多項(xiàng)式g(x),以d0-1個(gè)接續(xù)的元素為根,其中m0,d0均為正整數(shù),且d0≥2。于是
其中mj(x)代表的最小多項(xiàng)式。由這個(gè)g(x)所生成的,分組長為?n的循環(huán)碼稱為BCH碼。它由R.C.Bose,D.K.Ray-Chaudhuri及A.Hocquenghem三人研究而得名。BCH碼的主要數(shù)量指標(biāo)是:碼長n,首元指數(shù)m0,設(shè)計(jì)距離d0,信息位數(shù)(表示多項(xiàng)式?g(x)的次數(shù))。BCH碼的重要特性在于:設(shè)計(jì)距離為d0的BCH碼,其最小距離至少為d0,從而可至少糾正個(gè)獨(dú)立錯(cuò)誤。BCH碼譯碼的第一步是計(jì)算伴隨式。假設(shè)?為發(fā)送碼矢量,為接收矢量,而E=(E0,E1,…,En-1)為錯(cuò)誤矢量,或記為稱為錯(cuò)誤多項(xiàng)式。于是伴隨矢量之諸S=(S1,S2,…,S2t)分量Sκ由
決定(κ=1,2,…2t;為簡便計(jì),設(shè)m0=1,d0=2t+1)。假設(shè)有e個(gè)錯(cuò)誤出現(xiàn)(1≤e≤t),則對應(yīng)于e個(gè)錯(cuò)誤的Ei厵0。如果E?的第j個(gè)(從左至右)非零分量是Ei,則稱Xj=βi為這個(gè)錯(cuò)誤Ei的錯(cuò)位,而稱Yj=Ei為這個(gè)錯(cuò)誤的錯(cuò)值。稱?為錯(cuò)位多項(xiàng)式。BCH碼譯碼的關(guān)鍵是由諸sκ(κ=1,2,…,2t)求出(z)。這可用著名的伯利坎普-梅西迭代算法來完成。這種算法相當(dāng)于線性移位寄存器的綜合問題。最后一步是求出(z)的全部根,可用錢天聞搜索算法完成,從而可以定出接收矢量r的全部錯(cuò)位。?
里德-索洛蒙碼??這是一種特殊的非二進(jìn)制BCH碼。對于任意選取的正整數(shù)s,可構(gòu)造一個(gè)相應(yīng)的碼長為n=qs-1的q進(jìn)制BCH碼,其中碼元符號(hào)取自有限域GF(q),其中q為某一素?cái)?shù)的冪。當(dāng)s=1,q>2時(shí)所建立的碼長為n=q-1的q進(jìn)制BCH碼便稱為里德-索洛蒙碼,簡稱為RS碼。當(dāng)q=2m(m>1),碼元符號(hào)取自域GF(2m)的二進(jìn)制RS碼可用來糾正成區(qū)間出現(xiàn)的突發(fā)錯(cuò)誤。這種碼在短波信道中特別有用。?
戈帕碼?這是一種重要的線性分組碼,它不僅包括常見的諸如本原BCH碼等大量的循環(huán)碼類,還包括相當(dāng)多的非循環(huán)線性分組碼類,并且后一種碼具有良好的漸近特性。戈帕碼的理論實(shí)質(zhì)在于將每一個(gè)碼矢量與一個(gè)有理分式相對應(yīng)。q是某一個(gè)素?cái)?shù)冪,g(z)是域GF(qm)上的任意多項(xiàng)式,L表示域GF(qm)中所有不為g(z)之根的元素所成之集合,|L|代表L中元素的數(shù)目。于是存在一個(gè)以GF(q)為符號(hào)域,以GF(qm)為位置域的線性分組碼。碼長為|L|,它的各碼元用L中的元素來標(biāo)志。這種碼可定義為滿足條件
的一切GF(q)上的全體|L|維矢量
的集合,式中?這種碼稱為戈帕碼,稱g(z)為戈帕多項(xiàng)式。?
例如,q=2,m=2,g(z)=z+α,α?是域GF(z2)上的本原元素
α2+α+1=0 ?α3=1
則
L={β1,β2,β3}={0,1,α2}
于是
可驗(yàn)證,(1,1,1)即為這一戈帕碼的碼字。戈帕碼也有類似于BCH碼的譯碼方法。?
自50年代分組碼的理論獲得發(fā)展以來,分組碼在數(shù)字通信系統(tǒng)和數(shù)據(jù)存儲(chǔ)系統(tǒng)中已被廣泛應(yīng)用。由于大規(guī)模和超大規(guī)模集成電路的迅速發(fā)展,人們開始從易于實(shí)現(xiàn)的循環(huán)碼理論研究中解脫出來,更重視研究性能良好的非循環(huán)線性分組碼和非線性分組碼。人們在分組碼研究中又引進(jìn)了頻譜方法,這一研究方向受到了較多的注意。
結(jié)語
關(guān)于分組碼和卷積碼的區(qū)別就介紹到這了,希望通過本文能讓你對分組碼和卷積碼有更深的了解。
評論
查看更多