RS(204,188)碼連續編碼的設計
在數字電視中RS碼通常是以幀的形式來(lái)傳輸的,一幀又有八個(gè)數據包,因此連續編碼就有特別的必要。編碼時(shí)先輸入51個(gè)是零的數據,得到編碼后將前面51個(gè)數據丟棄。要得到RS(204,188)的編碼先要得到域元素,可以借助MATLAB軟件來(lái)獲得。程序如下:m=8;%每個(gè)符號的比特數;n=2∧m- 1;%編碼后碼字長(cháng)度;本文引用地址:http://dyxdggzs.com/article/166871.htm
k=n-16;%信息長(cháng)度;gfelement=gftuple([-1:n-1]',m)%產(chǎn)生加羅華域元素;
還可以來(lái)求生成多項式g(x).g(x)=(x+1)(x+a)…(x+a15)
程序如下:
N=255;k=239;b=0;gx=rsgenpoly(n,k,[],b)%[]表示缺省的本元多項式。
可以得到g(x):
還可以輸入一組數得到它的編碼程序如下:
m=8;n=255;k=239;b=0;
genpoly=rsgenpoly(n,k,[],b);%產(chǎn)生生成多項式
code=rsenc(msg,n,k,genpoly)%信息碼,前面51個(gè)為零,共239 bytes得到的校驗碼是:
48,168,46,159,119,162,72,132,139,235,172,28,76,175,171,238.
硬件設計時(shí)常用LFSR(線(xiàn)性反饋寄存器)來(lái)實(shí)現,可以圖1表示。
運算電路中主要運算是常系數的加羅瓦域乘法,假如有一個(gè)八位的二進(jìn)制數:
域中的數相乘結果仍在域中,那就設結果為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;
同理可以得到編碼需要的定系數伽羅瓦域乘法的結果。
評論