曾 浩
摘要:隨著數(shù)字通信的發(fā)展與電子計(jì)算機(jī)的廣泛應(yīng)用,差錯(cuò)控制編碼日益受到人們的重視并取得迅速發(fā)展,它廣泛應(yīng)用于數(shù)字通信中,對保證信息傳輸?shù)目煽窟\(yùn)行起著重要作用。文章通過對不同差錯(cuò)控制編碼方案的研究,利用Matlab語言對不同編碼方案進(jìn)行仿真,并根據(jù)仿真結(jié)果提出了最優(yōu)差錯(cuò)控制編碼方案。
關(guān)鍵詞:差錯(cuò)控制;數(shù)字通信;編碼方案;BCH碼;卷積碼;級聯(lián)碼
中圖分類號:TN919文獻(xiàn)標(biāo)識碼:A文章編號:1009-2374(2009)12-0005-02
一、差錯(cuò)控制編碼基本原理
在數(shù)字通信中,傳輸信道存在一定的噪聲和衰落,必然會(huì)對其上傳輸?shù)男畔a(chǎn)生誤碼,且產(chǎn)生的錯(cuò)誤有隨機(jī)錯(cuò)誤和突發(fā)錯(cuò)誤兩種,前者是由隨機(jī)噪聲引起,各碼元發(fā)生錯(cuò)誤為相互獨(dú)立的;而突發(fā)錯(cuò)誤則是由突發(fā)噪聲引起,錯(cuò)誤碼元成片出現(xiàn)。為了檢測和糾正這些錯(cuò)誤信息需要采用差錯(cuò)控制編碼。
差錯(cuò)控制編碼的基本原理是:在發(fā)送端將被傳輸?shù)男畔⑿蛄猩细郊右恍┍O(jiān)督碼元,這些多余的碼元與信息碼元之間以某種確定的規(guī)則相互關(guān)聯(lián);接收端按照既定的規(guī)則檢驗(yàn)信息碼元與監(jiān)督碼元之間的關(guān)系,一旦傳輸過程中發(fā)生錯(cuò)誤,信息碼元與監(jiān)督碼元之間的關(guān)系將受到破壞,從而發(fā)現(xiàn)錯(cuò)誤乃至糾正錯(cuò)誤。
根據(jù)差錯(cuò)控制編碼各碼組信息元和監(jiān)督元的函數(shù)關(guān)系,差錯(cuò)控制編碼可分為分組碼和卷積碼。
(一)分組碼
分組碼的構(gòu)成方式是把信息序列分成每k個(gè)碼元一段,并由這k個(gè)碼元按一定規(guī)則產(chǎn)生r個(gè)監(jiān)督元,組成長度為n=k+r的碼字,用(n,k)表示。常用的分組碼種類較多,主要包括奇偶監(jiān)督碼、BCH碼、交錯(cuò)碼、RS碼等。
(二)卷積碼
卷積碼不是把信息序列分組后再進(jìn)行單獨(dú)地編碼,而是由連續(xù)輸入的信息序列得到連續(xù)輸出的已編碼序列。卷積碼通常用兩個(gè)參數(shù)來描述:碼率和約束長度。碼率k/n是在1個(gè)編碼周期內(nèi)進(jìn)入卷積編碼器的位數(shù)k與卷積編碼器輸出的碼元數(shù)n的比值,約束長度1表示了編碼器的長度,通常把卷積碼記作(n,k,1)。
卷積碼的k和n通常很小,特別適宜于以串行形式傳輸信息,延時(shí)小。與分組碼不同,卷積碼中編碼后的n個(gè)碼元不但與當(dāng)前段的k個(gè)信息有關(guān),而且與前面k-1段的信息有關(guān)。
二、最優(yōu)差錯(cuò)控制編碼
針對目前數(shù)字通信信道中由于噪聲干擾而存在的隨機(jī)錯(cuò)誤和突發(fā)錯(cuò)誤兩種錯(cuò)誤。本文主要對以下三種編碼方案進(jìn)行研究及利用MATLAB語言進(jìn)行仿真分析,在碼率趨近于1/2時(shí),依據(jù)誤碼率不大于10-6條件下,選擇最優(yōu)差錯(cuò)控制編碼方案。
(一)BCH碼+交織碼方案
BCH碼是1959年發(fā)展起來的一種糾隨機(jī)錯(cuò)誤的線性分組編碼,該碼因具有糾錯(cuò)能力較強(qiáng)、編碼簡單、譯碼較易實(shí)現(xiàn)等優(yōu)點(diǎn)而被廣泛采用??紤]到BCH碼只能糾正隨機(jī)錯(cuò)誤,對突發(fā)錯(cuò)誤無能為力,而交錯(cuò)碼則是利用糾隨機(jī)錯(cuò)碼或糾短突發(fā)錯(cuò)碼,以交錯(cuò)的方法來構(gòu)造碼,以達(dá)到糾正突發(fā)錯(cuò)誤或糾正長突發(fā)錯(cuò)誤。因此將BCH碼和交織碼級聯(lián)使用,具有同時(shí)糾正上述兩種錯(cuò)誤的能力。
(二)級聯(lián)碼(RS碼+卷積碼)方案
信道編碼定理指出,隨著碼長n的增加,譯碼錯(cuò)誤概率按指數(shù)趨近于零。因此,為了得到較低的誤碼率就必須使用長碼。但是,隨著碼長的增加,譯碼器的復(fù)雜性和計(jì)算量也相應(yīng)增加。為了解決性能與設(shè)備復(fù)雜性的矛盾,本方案采用以短碼構(gòu)成長碼的方法,也就是級聯(lián)碼解決上述矛盾。
級聯(lián)碼主要用于干擾比較嚴(yán)重的組合信道中。內(nèi)碼僅用來糾正少量錯(cuò)誤,而大部分能力用來檢錯(cuò),指出錯(cuò)誤位置,糾錯(cuò)任務(wù)由外碼譯碼器來完成。這樣二級譯碼的結(jié)果,使得內(nèi)外譯碼器比較簡單,同時(shí)計(jì)算量大大低于相同參數(shù)的單級譯碼器。
目前在數(shù)字通信中經(jīng)常利用分組碼和卷積碼構(gòu)成級聯(lián)碼,特別是外碼采用RS碼,內(nèi)碼采用卷積碼和維特比譯碼的級聯(lián)碼。RS碼是一種多進(jìn)制BCH碼,其編碼、譯碼過程同BCH碼一樣。維特比譯碼作為卷積碼的譯碼方式在卷積編碼約束長度不太長的情況下,計(jì)算速度超快,目前可達(dá)到上百M(fèi)bit/s,且設(shè)備簡單,因此本文的第二種編碼方案為RS+卷積碼。同時(shí)在級聯(lián)碼中,由于要求內(nèi)碼誤碼率在左右,這對碼率為1/2的卷積碼較易實(shí)現(xiàn),且譯碼器設(shè)備簡單,因此卷積碼的碼率選為1/2,外碼RS碼選(255,223)。
(三)RS碼+卷積碼+交織碼方案
在級聯(lián)碼中外碼主要用于糾錯(cuò),因此,外碼RS碼的糾錯(cuò)能力決定了級聯(lián)碼的糾錯(cuò)能力??紤]到RS碼(255,223)能糾正16個(gè)隨機(jī)錯(cuò)誤以及長度不大于44的突發(fā)錯(cuò)誤,當(dāng)信道噪聲干擾使得接收到的錯(cuò)誤信號超過上述RS碼的糾錯(cuò)能力,整個(gè)級聯(lián)碼的糾錯(cuò)能力將降低。因此為了提高級聯(lián)碼的糾錯(cuò)能力,可以在級聯(lián)碼中增加交織碼,利用交織碼可以將突發(fā)錯(cuò)誤離散為隨機(jī)錯(cuò)誤的編碼能力,提高級聯(lián)碼糾錯(cuò)能力。
在方案一和方案三使用的交織碼,其具體編碼方法是將它所取得的編碼符號用列寫成N行與M列的一個(gè)矩陣,在傳輸之前,按行從矩陣中讀出這些符號。譯碼時(shí)則按相反的操作,即按行寫入,再按列輸出。采用如此交錯(cuò)方法,即可以將長度為1≤M的突發(fā)錯(cuò)誤至少被N個(gè)符號所隔離開形成單個(gè)錯(cuò)誤。
三、仿真結(jié)果
通過采用Matlab語言對上述三種編碼方案進(jìn)行仿真,仿真結(jié)果如下:
(一)BCH+交織碼
仿真參數(shù):輸入的總信息位為12000bit;輸入錯(cuò)誤概率為0.0524。
仿真結(jié)果見表1:
四、結(jié)論
從三種不同編碼方案仿真結(jié)果可知:BCH+交織碼的編碼方案在碼率為1/2時(shí),其誤碼率明顯高于誤碼率10-6的要求;而級聯(lián)碼的編碼方案雖然在卷積碼約束長度大于6的情況下,誤碼率均等于0,但是約束長度越長,譯碼設(shè)備的復(fù)雜性越大,其結(jié)果也不太理想;通過在級聯(lián)碼中增加交織碼,在卷積碼不同的約束長度下,其誤碼率均等于0且譯碼設(shè)備簡單,因此可作為最優(yōu)編碼方案。
參考文獻(xiàn)
[1]王新梅,糾錯(cuò)碼原理與方法[M]西安電子工業(yè)出版社,1991
[2]鄧華,MATLAB通信與仿真及應(yīng)用實(shí)例詳解[M]人民郵電出版社,2004,
作者簡介:曾浩(1982-),女,貴州貴陽人,貴陽市061基地江南機(jī)電設(shè)計(jì)研究所助理工程師,研究方向:制導(dǎo)站總體設(shè)計(jì)。