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