基于FPGA的RS編碼器的設(shè)計(jì)與實(shí)現(xiàn)
RS編碼是一種線性的塊編碼,其表示形式為RS(N,K)。當(dāng)編碼器接收到一個(gè)數(shù)據(jù)信息序列,該數(shù)據(jù)信息序列被分割成若干長度為K的信息塊,并通過運(yùn)算將每個(gè)數(shù)據(jù)信息塊編碼成長度為N的編碼數(shù)據(jù)塊。在RS碼中的碼元符號(hào)不是二進(jìn)制而是多進(jìn)制符號(hào),其中2m進(jìn)制使用更為廣泛。能糾正t個(gè)錯(cuò)的RS碼具有,如表1參數(shù)所示。上述參數(shù),t表明最多可以糾正t個(gè)隨機(jī)錯(cuò)誤符號(hào)。本文引用地址:http://www.ex-cimer.com/article/192144.htm
由于RS碼是對(duì)多進(jìn)制符號(hào)糾錯(cuò),RS碼可用于糾正突發(fā)錯(cuò)誤,比如能糾兩個(gè)八進(jìn)制符號(hào)錯(cuò)誤的RS(7,3)碼,每個(gè)符號(hào)可用3 bit二進(jìn)制符號(hào)表示。八進(jìn)制的RS(7,3)碼相當(dāng)于二進(jìn)制的(21,9)碼,因此糾兩個(gè)符號(hào)就相當(dāng)于糾連續(xù)6 bit二進(jìn)制符號(hào)的突發(fā)錯(cuò)誤,然而二進(jìn)制的(2l,9)碼卻沒有糾6 bit突發(fā)錯(cuò)誤的能力,它能糾任何2個(gè)隨機(jī)錯(cuò)誤以及長度≤4的突發(fā)錯(cuò)誤。
通用的RS編碼的運(yùn)算步驟:
(1)確定RS編碼器的生成多項(xiàng)式g(x),這里選用了最為常用的生成多項(xiàng)式,如式(1)所示。
式中a定義為m階初等多項(xiàng)式p(x)的根它可生成全部GF域的元素。(有關(guān)GF域的內(nèi)容可參閱相關(guān)書籍)。
以RS(15,9)為例,RS(15,9)的生成多項(xiàng)式,如式(2)
(2)通過對(duì)取模運(yùn)算產(chǎn)生校驗(yàn)信息多項(xiàng)式p(x)如式(3)
式中m(x)表示RS編碼碼字中的數(shù)據(jù)信息,它是K一1階的線性多項(xiàng)式。
(3)通過加法運(yùn)算生成最終的編碼后的多項(xiàng)式c(x)如式(4)
RS碼的編碼主要是圍繞碼的生成多項(xiàng)式g(x)進(jìn)行的,一旦生成多項(xiàng)式確定了,則碼就完全確定了。
2 RS編碼的設(shè)計(jì)實(shí)現(xiàn)
在一些特定應(yīng)用域中,RS碼的設(shè)計(jì)與實(shí)現(xiàn)是比較困難的。RS碼是在有限域上進(jìn)行的代數(shù)運(yùn)算,不同于常用的二進(jìn)制系統(tǒng),實(shí)現(xiàn)相對(duì)復(fù)雜一些,其復(fù)雜度主要決定于有限域的大小、碼字的長度、采用的編碼算法等,編碼器的實(shí)現(xiàn)方式主要有以下幾種:
(1)微處理器實(shí)現(xiàn)的RS編碼。
通用的微處理器采用查表(Table―lookup)方法可以實(shí)現(xiàn)RS編碼,首先需要產(chǎn)生有限域運(yùn)算中的系數(shù),存于內(nèi)存中,就可以通過查表的方法實(shí)現(xiàn)編碼了。
(2)利用DSP實(shí)現(xiàn)的RS編碼。
DSP早已成為傳統(tǒng)微處理器的一種替代品,現(xiàn)在的DSP芯片已能對(duì)一些特定的應(yīng)用提供并行的處理結(jié)構(gòu),可以在DSP芯片中完成RS編碼,不過DSP不是專為實(shí)現(xiàn)糾錯(cuò)中需要的特定功能設(shè)計(jì)的,同樣也可以采用查表的方法在DSP中實(shí)現(xiàn)快速有限域運(yùn)算。
(3)ASIC實(shí)現(xiàn)的RS編碼。
ASIC是專用集成電路,由LSI―Logic Corpera―tion設(shè)計(jì)的ASIC芯片,有3 kB的RAM和4 kB的ROM,是實(shí)現(xiàn)高速編碼器的最佳選擇。
(4)FPGA實(shí)現(xiàn)的RS編碼。
FPGA能夠快速和經(jīng)濟(jì)地將電路描述轉(zhuǎn)化為硬件實(shí)現(xiàn),而且對(duì)設(shè)計(jì)的修訂也比較方便。而通常的ASIC需要的設(shè)計(jì)時(shí)間較長,制作費(fèi)用也較高,也不便于調(diào)整。所以本設(shè)計(jì)是基于FPGA的RS編碼設(shè)計(jì)。
如圖1所示為本設(shè)計(jì)所采用的編碼器的結(jié)構(gòu)。
其工作原理如下:
(1)寄存器R0~R2t-1全部清零。開關(guān)接通A點(diǎn),然后信息位分為兩路送電路中,一路直接送入C(x),一路送入除法電路并進(jìn)行移位。每一個(gè)時(shí)鐘移一個(gè)字節(jié);
(2)在k個(gè)時(shí)鐘結(jié)束的時(shí)候,信息位全部輸入,完成除法功能。此時(shí)移位寄存器里保留了余式r(x)的系數(shù),這就是RS碼的校驗(yàn)位;
(3)在k+1個(gè)時(shí)鐘到來的時(shí)候,開關(guān)接通B點(diǎn)。寄存器中的數(shù)據(jù)依次移出,送入信道。在經(jīng)過2t個(gè)時(shí)鐘后數(shù)據(jù)全部移出,得到2t個(gè)校驗(yàn)位。這2t個(gè)校驗(yàn)位跟在原先的尼個(gè)信息位的后面,組成(n,k)碼輸出。這樣就完成了RS碼的編碼;
(4)寄存器R0~R2t-1全部清零,重復(fù)步驟(1)、(2)、(3),完成對(duì)下一組RS碼的編碼。
評(píng)論