RS(204,188)碼連續(xù)編碼的設(shè)計(jì)
0 引言
數(shù)字電視廣播需要將高質(zhì)量和高可靠的圖像、聲音、文字和數(shù)據(jù)等信息快速、高效地傳輸?shù)浇邮辗剑珎鬏斨邪l(fā)生雜散電磁波干擾或者存在多徑反射和阻抗不匹配時(shí),接收端就很容易產(chǎn)生誤碼,造成恢復(fù)數(shù)據(jù)出現(xiàn)差錯(cuò),甚至完全恢復(fù)不了原來(lái)的數(shù)據(jù),使得數(shù)字電視廣播的高可靠性大大降低。
為了提高傳輸系統(tǒng)的可靠性,需要在數(shù)字調(diào)制之前對(duì)數(shù)字基帶信號(hào)進(jìn)行前向糾錯(cuò)編碼,也就是信道編碼,信道編碼的目的就是數(shù)字電視系統(tǒng)的抗干擾能力,使碼在傳輸中即使有各種干擾,接收端仍然能夠正確接收。
1 RS碼編碼原理
RS(n,k)碼,也寫成RS(n,k,2t),是非二進(jìn)制碼。它是由k個(gè)m-bits的輸入數(shù)據(jù)流,加上由k個(gè)m-bits的輸入數(shù)據(jù)流生成的2t個(gè)m-bits的校驗(yàn)數(shù)據(jù)流而產(chǎn)生的n個(gè)m-bits數(shù)據(jù)流。具有以下的特性:
①0<k<n<2m+2。通常n=2m-1。②2t=n-k。t表示糾錯(cuò)的最大能力。③最小碼距d0=2t+1。
RS(n,k)碼是一種多進(jìn)制線性分組碼。構(gòu)成RS(n,k)碼常用以下的系統(tǒng)編碼方式:
其中a是本原元。r=n-k,t是糾錯(cuò)的最大個(gè)數(shù),modg(x)表示除以g(x)的余數(shù)。
2 設(shè)計(jì)實(shí)現(xiàn)
RS(204,188)碼實(shí)際上是RS(255,239)碼的截?cái)啻a,常用于數(shù)字電視的信道糾錯(cuò)。
在數(shù)字電視中RS碼通常是以幀的形式來(lái)傳輸?shù)?,一幀又有八個(gè)數(shù)據(jù)包,因此連續(xù)編碼就有特別的必要。編碼時(shí)先輸入51個(gè)是零的數(shù)據(jù),得到編碼后將前面51個(gè)數(shù)據(jù)丟棄。要得到RS(204,188)的編碼先要得到域元素,可以借助MATLAB軟件來(lái)獲得。程序如下:m=8;%每個(gè)符號(hào)的比特?cái)?shù);n=2∧m- 1;%編碼后碼字長(zhǎng)度;
k=n-16;%信息長(zhǎng)度;gfelement=gftuple([-1:n-1]',m)%產(chǎn)生加羅華域元素;
還可以來(lái)求生成多項(xiàng)式g(x).g(x)=(x+1)(x+a)…(x+a15)
程序如下:
N=255;k=239;b=0;gx=rsgenpoly(n,k,[],b)%[]表示缺省的本元多項(xiàng)式。
可以得到g(x):
還可以輸入一組數(shù)得到它的編碼程序如下:
m=8;n=255;k=239;b=0;
genpoly=rsgenpoly(n,k,[],b);%產(chǎn)生生成多項(xiàng)式
code=rsenc(msg,n,k,genpoly)%信息碼,前面51個(gè)為零,共239 bytes得到的校驗(yàn)碼是:
48,168,46,159,119,162,72,132,139,235,172,28,76,175,171,238.
硬件設(shè)計(jì)時(shí)常用LFSR(線性反饋寄存器)來(lái)實(shí)現(xiàn),可以圖1表示。
運(yùn)算電路中主要運(yùn)算是常系數(shù)的加羅瓦域乘法,假如有一個(gè)八位的二進(jìn)制數(shù):
域中的數(shù)相乘結(jié)果仍在域中,那就設(shè)結(jié)果為r(a)。則有
r(a)=b7a7+b6a6+b5a5+b4a4+b3a3+b2a2+b1a+b0。
與上式相比較就有:
b7=a6;b6=a5;b5=a4;b4=(a7+a3);
b3=(a7+a2);b2=(a7+a1);b1=a0;b0=a7;
同理可以得到編碼需要的定系數(shù)伽羅瓦域乘法的結(jié)果。
測(cè)試時(shí)加入前面隨機(jī)的信息碼,得到仿真結(jié)果見(jiàn)圖3。
由圖3可以看出,仿真產(chǎn)生的監(jiān)督碼是:
圖3編碼仿真輸出
48,168,46,159,119,162,72,132,139,235,172,28,76,175,171,238.
與MATLAB軟件產(chǎn)生的編碼比較可知結(jié)果是正確的。綜合以后的電路示意圖見(jiàn)圖4所示。
用Virtex4的4vlx15sf363-11進(jìn)行綜合,占用352個(gè)SLICE,工作頻率可以達(dá)到233.568 MHz。
3 結(jié)論
先采用MATLAB軟件獲得了域元素、生成了多項(xiàng)式和編碼,極大地減輕了計(jì)算量。通過(guò)改善編碼結(jié)構(gòu)。正確獲得了編碼,也實(shí)現(xiàn)了編碼的連續(xù)性,在工程中有很大的實(shí)用意義。