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