專利名稱:一種里德-所羅門編碼譯碼器及其譯碼的方法
技術(shù)領(lǐng)域:
本發(fā)明涉及通訊領(lǐng)域,尤其涉及一種RS (Reed-Solomon Coder,里德一
所羅門編碼)譯碼器及譯碼方法。
背景技術(shù):
RS碼是一類具有很強(qiáng)糾錯(cuò)能力的BCH(Broad Cast Channel,廣播信道)碼, 也是一類典型的代數(shù)幾何碼,它首先由Reed (里德)和Solomon (索羅蒙) 于1960年構(gòu)造出來(lái)。在一般的應(yīng)用中,RS碼可以作為單碼單獨(dú)使用,而在信 道條件極為惡劣的應(yīng)用中,如移動(dòng)通信、衛(wèi)星通信等具有多徑衰落特性的信道 中,也可以作為外碼提供糾錯(cuò)能力更強(qiáng)的串行級(jí)聯(lián)碼,這樣在不增加很高的編 譯碼復(fù)雜度的情況下,可以得到高的編碼增益和與長(zhǎng)碼相同的糾錯(cuò)能力,最常 見的一種結(jié)構(gòu)就是將RS碼作為外碼,巻積碼作內(nèi)碼的級(jí)聯(lián)碼。
如圖1所示,示出了現(xiàn)有技術(shù)中根據(jù)BM迭代算法實(shí)現(xiàn)里德一所羅門編碼 的譯碼工作流程,該流程包括
步驟S101中,求伴隨多項(xiàng)式系數(shù)。在RS譯碼系統(tǒng)在接收到碼字之后, 由接收到的碼組計(jì)算2t (對(duì)于RS (n, k)譯碼,t= (n-k) /2)個(gè)伴隨多項(xiàng)式 系數(shù)。
步驟S102中,由BM算法迭代得出錯(cuò)誤位置以及錯(cuò)誤值多項(xiàng)式系數(shù)。利 用求得的2t個(gè)系數(shù)通過(guò)BM迭代算法分別求得錯(cuò)誤位置多項(xiàng)式以及錯(cuò)誤值多 項(xiàng)式的系數(shù),兩個(gè)多項(xiàng)式的最高次冪都為t。
步驟S103中,由錯(cuò)誤位置多項(xiàng)式搜索錯(cuò)誤位置。對(duì)碼字的錯(cuò)誤位置進(jìn)行 搜索,即將代表碼字位置的所有值代入錯(cuò)誤位置多項(xiàng)式,如果錯(cuò)誤位置多項(xiàng)式 結(jié)果為0則表示該位置為誤碼位置。
步驟S104中,由錯(cuò)誤值多項(xiàng)式計(jì)算錯(cuò)誤位置對(duì)應(yīng)的錯(cuò)誤值。在找到了誤 碼位置之后計(jì)算錯(cuò)誤位置對(duì)應(yīng)的錯(cuò)誤值。
步驟S105中,最后對(duì)錯(cuò)誤碼字進(jìn)行糾錯(cuò)。上述RS譯碼過(guò)程的關(guān)鍵在于步驟S102中求解錯(cuò)誤位置多項(xiàng)式以及錯(cuò)誤值多項(xiàng)式系數(shù),對(duì)于這部分1966 年伯利坎普(Berlekamp)提出了可以由伴隨式計(jì)算錯(cuò)誤位置多項(xiàng)式的迭代譯 碼算法,這極大地加快了求解錯(cuò)誤位置多項(xiàng)式的速度,該方法簡(jiǎn)單且易于實(shí)現(xiàn), 從而從工程上解決了RS譯碼的問(wèn)題,1969年梅西(Massey)指出了該算法與 序列的最短線性移位寄存器綜合之間的關(guān)系,并進(jìn)行了簡(jiǎn)化,因此,此譯碼算 法就稱為BM (Berlekamp Massey,伯利坎普-梅西)迭代譯碼算法。
由于上述的BM迭代算法中存在有限域的求逆運(yùn)算,且求逆運(yùn)算消耗大量 的硬件資源運(yùn)算速度慢,若將其應(yīng)用在BM迭代運(yùn)算中會(huì)引起較大的關(guān)鍵路徑 延遲,故后來(lái)發(fā)展了無(wú)求逆運(yùn)算的IBM算法,該算法相當(dāng)于在原有的所有多 項(xiàng)式系數(shù)迭代的結(jié)果上同時(shí)乘上相同的系數(shù),這一結(jié)果在不影響后續(xù)的由錯(cuò)誤 位置多項(xiàng)式搜索錯(cuò)誤位置以及計(jì)算錯(cuò)誤位置對(duì)應(yīng)的錯(cuò)誤值和誤碼糾錯(cuò)的基礎(chǔ) 上改善了譯碼系統(tǒng)的性能。IBM (Inverse-free Berlekamp Massey,無(wú)求逆運(yùn)算 的伯利坎普-梅西)算法就是利用錯(cuò)誤位置多項(xiàng)式、錯(cuò)誤值多項(xiàng)式以及伴隨多 項(xiàng)式滿足的恒等式進(jìn)行迭代的過(guò)程,在計(jì)算得到伴隨多項(xiàng)式系數(shù)之后,設(shè)定初 始的錯(cuò)誤位置以及錯(cuò)誤值多項(xiàng)式系數(shù)開始迭代,之后在每一次迭代的過(guò)程中都 要先計(jì)算錯(cuò)誤位置以及錯(cuò)誤值多項(xiàng)式的增加量,再根據(jù)該增加量是否為0產(chǎn)生 相應(yīng)的控制信號(hào),控制錯(cuò)誤位置以及錯(cuò)誤值多項(xiàng)式系數(shù)的更新,在每次迭代的 過(guò)程中都使得錯(cuò)誤位置以及錯(cuò)誤值多項(xiàng)式的系數(shù)滿足恒等式,且保證每一次迭 代后多項(xiàng)式的最高次數(shù)不減,這樣經(jīng)過(guò)一定的迭代次數(shù)之后,就可以得到最高 次冪滿足要求且符合恒等式的錯(cuò)誤位置以及錯(cuò)誤值多項(xiàng)式的系數(shù)。
由于傳統(tǒng)的RS譯碼器是根據(jù)圖1所示的流程進(jìn)行譯碼的,其整個(gè)RS譯 碼系統(tǒng)的關(guān)鍵在于BM迭代求錯(cuò)誤位置,以及錯(cuò)誤值這一環(huán)節(jié)。所以對(duì)該環(huán)節(jié) 的實(shí)現(xiàn)方案,成為影響整個(gè)RS譯碼性能的關(guān)鍵。由于經(jīng)典的BM迭代算法中 需要復(fù)雜的有限域求逆運(yùn)算,而且有限域的求逆運(yùn)算消耗硬件資源且運(yùn)算速度 慢,對(duì)系統(tǒng)的關(guān)鍵路徑時(shí)延有很大的影響。不能滿足較高的系統(tǒng)運(yùn)行頻率的需 要。
綜上可知,現(xiàn)有的里德一所羅門編碼譯碼技術(shù),在實(shí)標(biāo)使用上,顯然存在 不便與缺陷,所以有必要加以改進(jìn)。
發(fā)明內(nèi)容
針對(duì)上述的缺陷,本發(fā)明的目的在于提供一種里德一所羅門編碼譯碼器, 以實(shí)現(xiàn)在較高運(yùn)行頻率的系統(tǒng)下進(jìn)行里德一所羅門編碼譯碼。
為了實(shí)現(xiàn)上述目的,本發(fā)明提供一種里德一所羅門編碼譯碼器,包括 伴隨多項(xiàng)式系數(shù)計(jì)算模塊,用于接收需要譯碼的碼字,并計(jì)算伴隨多項(xiàng)式 系數(shù);
緩存模塊,用于緩存接收到的需要譯碼的碼字; 錯(cuò)誤位置及誤碼值計(jì)算模塊,用于確定錯(cuò)誤位置以及計(jì)算誤碼值; 糾錯(cuò)模塊,用于根據(jù)所述錯(cuò)誤位置以及誤碼值,糾錯(cuò)所述緩存模塊中對(duì)應(yīng) 的碼字。
根據(jù)本發(fā)明提供的里德一所羅門編碼譯碼器,所述錯(cuò)誤位置及誤碼值計(jì)算 模塊包括
IBM算法求錯(cuò)誤位置多項(xiàng)式系數(shù)模塊,用于接收所述伴隨多項(xiàng)式系數(shù)計(jì) 算模塊的伴隨多項(xiàng)式系數(shù)的輸入,計(jì)算錯(cuò)誤位置多項(xiàng)式系數(shù);
IBM算法求錯(cuò)誤值多項(xiàng)式系數(shù)模塊,用于接收所述伴隨多項(xiàng)式系數(shù)計(jì)算 模塊的伴隨多項(xiàng)式系數(shù)的輸入,計(jì)算錯(cuò)誤值多項(xiàng)式系數(shù);
搜索錯(cuò)誤位置以及計(jì)算誤碼值模塊,用于錯(cuò)誤位置的搜索,以及相應(yīng)誤碼 值的計(jì)算。
根據(jù)本發(fā)明提供的里德一所羅門編碼譯碼器,所述IBM算法求錯(cuò)誤位置 多項(xiàng)式系數(shù)模塊,或者IBM算法求錯(cuò)誤值多項(xiàng)式系數(shù)模塊包括
多組寄存器,用于存儲(chǔ)IBM迭代算法過(guò)程中的各類數(shù)值;
第一組延遲電路,通過(guò)所述多組寄存器的第一寄存器與第二組延遲電路連 接,包括依次順序連接的一個(gè)乘法器和一個(gè)多輸入加法器;
第二組延遲電路,通過(guò)所述多組寄存器的第一寄存器與第一組延遲電路連 接,包括依次順序連接的一個(gè)乘法器和一個(gè)多輸入加法器,和/或另一乘法器;
控制電路,與所述多組寄存器的第一寄存器連接,用于根據(jù)所述第一寄存 器輸出的值產(chǎn)生控制信號(hào),以控制所述多組寄存器數(shù)值的更新。
根據(jù)本發(fā)明提供的里德一所羅門編碼譯碼器,所述多組寄存器包括
t+l個(gè)移位寄存器,與第一組延遲電路的一個(gè)乘法器連接,用于移位串行 輸入伴隨式多項(xiàng)式系數(shù);t個(gè)輔助寄存器,與第二組延遲電路的至少一個(gè)乘法器連接,用于存儲(chǔ)IBM
迭代算法過(guò)程中求錯(cuò)誤位置多項(xiàng)式系數(shù)的中間結(jié)果;或者用于存儲(chǔ)IBM迭代 算法過(guò)程中求錯(cuò)誤值多項(xiàng)式系數(shù)的中間結(jié)果;
t+l個(gè)系數(shù)寄存器,其兩端分別與第一組延遲電路和第二組延遲電路的一 個(gè)乘法器連接,用于寄存錯(cuò)誤位置多項(xiàng)式系數(shù),或者錯(cuò)誤值多項(xiàng)式系數(shù);
第一寄存器,其一端與第一組延遲電路的一個(gè)多輸入加法器連接,另一端 分別與第二組延遲電路的至少一個(gè)乘法器、第二寄存器、外圍控制電路連接; 用于緩存每一次里德一所羅門編碼譯碼器進(jìn)行IBM迭代的一個(gè)時(shí)鐘周期后, IBM迭代計(jì)算得到的多項(xiàng)式增量;以及
第二寄存器,其一端與第二延遲電路的至少一個(gè)乘法器連接,另一端與第 一寄存器連接,用于保持或更新所述里德一所羅門編碼譯碼器的多項(xiàng)式增量;
其中,t= (n-k) /2; n代表碼長(zhǎng),k代表信息位個(gè)數(shù)。
根據(jù)本發(fā)明提供的里德一所羅門編碼譯碼器,當(dāng)所述多項(xiàng)式增量為0或不 滿足輔助寄存器更新條件時(shí),所述控制電路產(chǎn)生信號(hào)僅使t個(gè)輔助寄存器完成 串行右移操作;否則,所述控制電路產(chǎn)生信號(hào)使t+l個(gè)系數(shù)寄存器與t個(gè)輔助 寄存器更新。
為了實(shí)現(xiàn)上述另一發(fā)明目的,本發(fā)明提供了一種利用本發(fā)明提供的里德一 所羅門編碼譯碼器實(shí)現(xiàn)譯碼的方法,包括
伴隨多項(xiàng)式系數(shù)計(jì)算模塊接收需要譯碼的碼字,并計(jì)算伴隨多項(xiàng)式系數(shù); 緩存模塊接收到的需要譯碼的碼字并對(duì)其進(jìn)行緩存; 錯(cuò)誤位置及誤碼值計(jì)算模塊確定錯(cuò)誤位置以及計(jì)算誤碼值; 糾錯(cuò)模塊根據(jù)所述錯(cuò)誤位置以及誤碼值,糾錯(cuò)所述緩存模塊中對(duì)應(yīng)的碼字。
根據(jù)利用本發(fā)明提供的里德一所羅門編碼譯碼器實(shí)現(xiàn)譯碼的方法,所述錯(cuò) 誤位置及誤碼值計(jì)算模塊確定錯(cuò)誤位置以及計(jì)算誤碼值的步驟包括
IBM算法求錯(cuò)誤位置多項(xiàng)式系數(shù)模塊接收所述伴隨多項(xiàng)式系數(shù)計(jì)算模塊 的伴隨多項(xiàng)式系數(shù)的輸入,計(jì)算錯(cuò)誤位置多項(xiàng)式系數(shù);
IBM算法求錯(cuò)誤值多項(xiàng)式系數(shù)模塊接收所述伴隨多項(xiàng)式系數(shù)計(jì)算模塊的 伴隨多項(xiàng)式系數(shù)的輸入,計(jì)算錯(cuò)誤值多項(xiàng)式系數(shù);
搜索錯(cuò)誤位置以及計(jì)算誤碼值模塊進(jìn)行錯(cuò)誤位置的搜索,以及相應(yīng)誤碼值的計(jì)算。
根據(jù)利用本發(fā)明提供的里德一所羅門編碼譯碼器實(shí)現(xiàn)譯碼的方法,所述 IBM算法求錯(cuò)誤位置多項(xiàng)式系數(shù)模塊接收所述伴隨多項(xiàng)式系數(shù)計(jì)算模塊的伴
隨多項(xiàng)式系數(shù)的輸入,計(jì)算錯(cuò)誤位置多項(xiàng)式系數(shù)的步驟;或者,IBM算法求 錯(cuò)誤值多項(xiàng)式系數(shù)模塊接收所述伴隨多項(xiàng)式系數(shù)計(jì)算模塊的伴隨多項(xiàng)式系數(shù) 的輸入,計(jì)算錯(cuò)誤值多項(xiàng)式系數(shù)的步驟;包括
(1) 對(duì)里德一所羅門編碼譯碼器電路進(jìn)行初始化;
(2) 在每一次里德一所羅門編碼譯碼器進(jìn)行IBM迭代的第一個(gè)時(shí)鐘周 期,所述t+l個(gè)移位寄存器將移位串行輸入伴隨多項(xiàng)式系數(shù);
(3) t+l個(gè)移位寄存器中的伴隨多項(xiàng)式系數(shù)通過(guò)第一組延遲電路的一個(gè) 乘法器與t+l個(gè)系數(shù)寄存器中的數(shù)值相乘,以及通過(guò)第一組延遲電路的一個(gè)多 輸入的加法器相加,獲得多項(xiàng)式增量,并存入所述第一寄存器中;
(4) 當(dāng)每一次里德一所羅門編碼譯碼器進(jìn)行迭代的第二個(gè)時(shí)鐘周期來(lái)臨 時(shí),根據(jù)所述第一寄存器中的多項(xiàng)式增量,控制電路產(chǎn)生相應(yīng)的控制信號(hào),對(duì) t個(gè)輔助寄存器、t+l個(gè)移位寄存器、以及t+l個(gè)系數(shù)寄存器進(jìn)行更新。
根據(jù)利用本發(fā)明提供的里德一所羅門編碼譯碼器實(shí)現(xiàn)譯碼的方法,所述步 驟(1)包括
(11)初始化t+l個(gè)移位寄存器中的伴隨多項(xiàng)式系數(shù)、t+l個(gè)系數(shù)寄存器
中的數(shù)值、以及t個(gè)輔助寄存器中的數(shù)值;并且將所述第二寄存器中的初始值 初始化為1;
所述步驟(4)包括 (41)當(dāng)每一次里德一所羅門編碼譯碼器進(jìn)行迭代的第二個(gè)時(shí)鐘周期來(lái)臨 時(shí),根據(jù)所述第一寄存器中的多項(xiàng)式增量,控制電路產(chǎn)生相應(yīng)的控制信號(hào)
當(dāng)多項(xiàng)式增量不等于0時(shí),且滿足t個(gè)輔助寄存器更新的條件時(shí),控制電 路產(chǎn)生控制信號(hào),由此時(shí)的t+l個(gè)系數(shù)寄存器中的值對(duì)t個(gè)輔助寄存器進(jìn)行更 新,而t+l個(gè)系數(shù)寄存器中的值也通過(guò)第二組延遲電路中的一個(gè)加法器進(jìn)行輸 出更新;
當(dāng)多項(xiàng)式增量等于0時(shí),對(duì)t個(gè)輔助寄存器中的值進(jìn)行串行右移操作,且 最低位填0,同時(shí)t+l個(gè)系數(shù)寄存器中的值通過(guò)第二組延遲電路的一個(gè)加法器 進(jìn)行輸出進(jìn)行更新。
10根據(jù)利用本發(fā)明提供的里德一所羅門編碼譯碼器實(shí)現(xiàn)譯碼的方法,所述利
用里德一所羅門編碼譯碼器實(shí)現(xiàn)譯碼的過(guò)程中,IBM迭代重復(fù)完成2t次IBM 迭代,獲得錯(cuò)誤位置多項(xiàng)式系數(shù)值,或者錯(cuò)誤值多項(xiàng)式系數(shù)值;其中t= (n-k) /2; n代表碼長(zhǎng),k代表信息位個(gè)數(shù)。
本發(fā)明根據(jù)IBM迭代算法,提供實(shí)現(xiàn)IBM迭代算法的電路。該電路可以 用來(lái)進(jìn)行RS譯碼過(guò)程中的錯(cuò)誤位置多項(xiàng)式系數(shù),以及錯(cuò)誤值多項(xiàng)式系數(shù)的計(jì) 算,由于采用IBM迭代算法,其無(wú)有限域的求逆運(yùn)算,所以對(duì)硬件資源的消 耗較低,并且運(yùn)算速度快,對(duì)系統(tǒng)的關(guān)鍵路徑時(shí)延無(wú)影響。能夠?qū)崿F(xiàn)在較高運(yùn) 行頻率系統(tǒng)下進(jìn)行里德一所羅門編碼譯碼。
圖1是現(xiàn)有技術(shù)中根據(jù)BM迭代算法實(shí)現(xiàn)里德一所羅門編碼的譯碼工作流 程圖2是本發(fā)明根據(jù)IBM迭代算法提供的里德一所羅門編碼的譯碼器的結(jié) 構(gòu)示意圖3是本發(fā)明一個(gè)實(shí)施例中根據(jù)IBM迭代算法提供的里德一所羅門編碼 的譯碼器的結(jié)構(gòu)示意圖4A 圖4B是本發(fā)明一個(gè)實(shí)施例中的IBM算法求錯(cuò)誤位置多項(xiàng)式系數(shù) 模塊和IBM算法求錯(cuò)誤值多項(xiàng)式系數(shù)模塊結(jié)構(gòu)示意圖
圖5是本發(fā)明一個(gè)實(shí)施例中的IBM算法求錯(cuò)誤位置多項(xiàng)式系數(shù)模塊和 IBM算法求錯(cuò)誤值多項(xiàng)式系數(shù)模塊的結(jié)構(gòu)示意圖,
圖6是利用本發(fā)明所提供的里德一所羅門編碼譯碼器實(shí)現(xiàn)譯碼的方法流 程圖。
具體實(shí)施例方式
為了使本發(fā)明的目的、技術(shù)方案及優(yōu)點(diǎn)更加清楚明白,以下結(jié)合附圖及實(shí) 施例,對(duì)本發(fā)明進(jìn)行進(jìn)一步詳細(xì)說(shuō)明。應(yīng)當(dāng)理解,此處所描述的具體實(shí)施例僅 僅用以解釋本發(fā)明,并不用于限定本發(fā)明。
本發(fā)明的基本思想是根據(jù)IBM迭代算法,提供實(shí)現(xiàn)IBM迭代算法的電 路,以實(shí)現(xiàn)在較高頻率系統(tǒng)中的RS譯碼。圖2是本發(fā)明根據(jù)IBM迭代算法提供的里德一所羅門編碼的譯碼器的結(jié)
構(gòu)示意圖;該里德一所羅門編碼的譯碼器2包括了
伴隨多項(xiàng)式系數(shù)計(jì)算模塊21,用于接收需要譯碼的碼字,并計(jì)算伴隨多 項(xiàng)式系數(shù);
緩存模塊22,用于緩存接收到的需要譯碼的碼字;
錯(cuò)誤位置及誤碼值計(jì)算模塊23,用于確定錯(cuò)誤位置以及計(jì)算誤碼值;
糾錯(cuò)模塊24,用于根據(jù)所述錯(cuò)誤位置以及誤碼值,糾錯(cuò)所述緩存模塊中 對(duì)應(yīng)的碼字。在本發(fā)明中,將里德一所羅門編碼的譯碼器2設(shè)置為上述四個(gè)模 塊組成,以利用IBM迭代算法實(shí)現(xiàn)RS譯碼。
圖3是本發(fā)明一個(gè)實(shí)施例中根據(jù)IBM迭代算法提供的里德一所羅門編碼 的譯碼器的結(jié)構(gòu)示意圖;在該實(shí)施例中,所述里德一所羅門編碼譯碼器2中所 述錯(cuò)誤位置及誤碼值計(jì)算模塊23包括
IBM算法求錯(cuò)誤位置多項(xiàng)式系數(shù)模塊231,用于接收所述伴隨多項(xiàng)式系數(shù) 計(jì)算模塊21的伴隨多項(xiàng)式系數(shù)的輸入,計(jì)算錯(cuò)誤位置多項(xiàng)式系數(shù);
IBM算法求錯(cuò)誤值多項(xiàng)式系數(shù)模塊232,用于接收所述伴隨多項(xiàng)式系數(shù)計(jì) 算模塊21的伴隨多項(xiàng)式系數(shù)的輸入,計(jì)算錯(cuò)誤值多項(xiàng)式系數(shù);
搜索錯(cuò)誤位置以及計(jì)算誤碼值模塊233,用于錯(cuò)誤位置的搜索,以及相應(yīng) 誤碼值的計(jì)算。在本發(fā)明一個(gè)實(shí)施例中,其IBM算法求錯(cuò)誤位置多項(xiàng)式系數(shù) 模塊231和IBM算法求錯(cuò)誤值多項(xiàng)式系數(shù)模塊232,可以設(shè)計(jì)為一個(gè)模塊, 用同等的電路實(shí)現(xiàn)其功能,以計(jì)算出所輸入碼字的錯(cuò)誤值多項(xiàng)式系數(shù)和錯(cuò)誤值 多項(xiàng)式系數(shù)。
圖4A 圖4B是本發(fā)明一個(gè)實(shí)施例中IBM算法求錯(cuò)誤位置多項(xiàng)式系數(shù)模 塊和IBM算法求錯(cuò)誤值多項(xiàng)式系數(shù)模塊結(jié)構(gòu)示意圖,IBM算法求錯(cuò)誤位置多 項(xiàng)式系數(shù)模塊231和IBM算法求錯(cuò)誤值多項(xiàng)式系數(shù)模塊232包括
多組寄存器2311,用于存儲(chǔ)IBM迭代算法過(guò)程中的各類數(shù)值;在整個(gè)譯 碼過(guò)程中,需要產(chǎn)生多類數(shù)值。包括伴隨多項(xiàng)式系數(shù)、錯(cuò)誤值多項(xiàng)式系數(shù)、錯(cuò) 誤位置多項(xiàng)式系數(shù)等。本發(fā)明中的多組寄存器2311用于對(duì)這樣數(shù)值進(jìn)行存儲(chǔ)。
第一組延遲電路2312,通過(guò)所述多組寄存器2311的第一寄存器23114與 第二組延遲電路2313連接,包括依次順序連接的一個(gè)乘法器23121和一個(gè)多 輸入加法器23122;第二組延遲電路2313,通過(guò)所述多組寄存器2311的第一寄存器23114與 第一組延遲電路2312連接,包括依次順序連接的一個(gè)乘法器23131和一個(gè)多 輸入加法器23132,和/或另一乘法器23133;
控制電路2114,與所述多組寄存器2311的第一寄存器23114連接,用于 根據(jù)所述第一寄存器23114輸出的值產(chǎn)生控制信號(hào),以控制所述多組寄存器 2311數(shù)值的更新。
圖5是本發(fā)明一個(gè)實(shí)施例中的IBM算法求錯(cuò)誤位置多項(xiàng)式系數(shù)模塊和 IBM算法求錯(cuò)誤值多項(xiàng)式系數(shù)模塊的結(jié)構(gòu)示意圖,其中所述多組寄存器2311 包括
t+l個(gè)移位寄存器23111,與第一組延遲電路2312的一個(gè)乘法器23121連 接,用于移位串行輸入伴隨式多項(xiàng)式系數(shù);
t個(gè)輔助寄存器23112,與第二組延遲電路2313的至少一個(gè)乘法器23133 連接,用于存儲(chǔ)IBM迭代算法過(guò)程中求錯(cuò)誤位置多項(xiàng)式系數(shù)的中間結(jié)果;或 者用于存儲(chǔ)IBM迭代算法過(guò)程中求錯(cuò)誤值多項(xiàng)式系數(shù)的中間結(jié)果;
t+l個(gè)系數(shù)寄存器23113,其兩端分別與第一組延遲電路2312和第二組延 遲電路2313的一個(gè)乘法器(23121, 23131)連接,用于寄存錯(cuò)誤位置多項(xiàng)式 系數(shù),或者錯(cuò)誤值多項(xiàng)式系數(shù);由于該電路可以實(shí)用求錯(cuò)誤位置多項(xiàng)式系數(shù)和 錯(cuò)誤值多項(xiàng)式系數(shù);因此,該t+l個(gè)系數(shù)寄存器23113可以存儲(chǔ)上述兩種系數(shù)。
第一寄存器23114,其一端與第一組延遲電路2312的一個(gè)多輸入加法器 23122連接,另一端分別與第二組延遲電路2313的至少一個(gè)乘法器23131、第 二寄存器23115、控制電路2314連接;用于緩存每一次里德一所羅門編碼譯 碼器2進(jìn)行IBM迭代的一個(gè)時(shí)鐘周期后,IBM迭代計(jì)算得到的多項(xiàng)式增量; 以及
第二寄存器23115,其一端與第二延遲電路2313的至少一個(gè)乘法器23131 連接,另一端與第一寄存器23114連接,用于保持或更新所述里德一所羅門編 碼譯碼器2的多項(xiàng)式增量;其中,t= (n-k) /2; n代表碼長(zhǎng),k代表信息位個(gè) 數(shù)。
在本發(fā)明的一個(gè)實(shí)施例中,當(dāng)所述多項(xiàng)式增量為0或不滿足輔助寄存器 23112更新條件時(shí),所述控制電路2314產(chǎn)生信號(hào)僅使t個(gè)輔助寄存器23112 完成串行右移操作;否則,所述控制電路2314產(chǎn)生信號(hào)使t+l個(gè)系數(shù)寄存器
1323113與t個(gè)輔助寄存器23112更新。
如圖5所示,在本發(fā)明的一個(gè)實(shí)施例中,由于錯(cuò)誤位置多項(xiàng)式cr(;c)的最大
階數(shù)為t (對(duì)于RS (n, k)譯碼,t= (n-k) /2),因此需要t+l個(gè)系數(shù)寄存器 23113 ( cr。、 q、…q)存儲(chǔ)多項(xiàng)式a(x)從常數(shù)項(xiàng)到最高次冪的系數(shù)。同時(shí),為 了完成IBM算法還需要t個(gè)輔助寄存器23112 (Bo到Bt.,)存儲(chǔ)迭代過(guò)程中 錯(cuò)誤位置多項(xiàng)式c7(;c)系數(shù)的中間結(jié)果。另外,還需要t+l個(gè)移位寄存器23111
(Ro到Rt)來(lái)串行輸入伴隨多項(xiàng)式的系數(shù)^到&。在每一次IBM迭代運(yùn)算 的第一個(gè)時(shí)鐘周期,依次將從&到&中的一個(gè)系數(shù)移入移位寄存器組23111 的Ro到Rt,此時(shí)Ro到Rt中的值與系數(shù)寄存器23112的cr。、 中數(shù)值通過(guò) 乘法器23121相乘,結(jié)果經(jīng)過(guò)一個(gè)多輸入的加法器23122,計(jì)算得到了多項(xiàng)式 增量a,該增量存入第一寄存器23114。
之后在每次迭代的第二個(gè)時(shí)鐘到來(lái)時(shí),將多項(xiàng)式增量巧從第一寄存器 23114中輸出,此時(shí)控制電路2314根據(jù)a的值進(jìn)行判斷產(chǎn)生控制信號(hào),當(dāng)a 不等于0,且滿足更新t個(gè)輔助寄存器23112 (B。到Bt.》的條件時(shí),控制電 路2314產(chǎn)生控制信號(hào),由此時(shí)的a。、 c7,、…^中的值對(duì)t個(gè)輔助寄存器23112
(Bo到Bt.》進(jìn)行更新。而同時(shí)cr。、 a,、…"t中的值也通過(guò)相應(yīng)的加法器23132 的輸出進(jìn)行更新;否則,對(duì)t個(gè)輔助寄存器23112 (B(3到Bw)進(jìn)行串行右移 操作,且最低位填0,同時(shí)cr。、 q、…at中的值保持不變。
在本發(fā)明的另外一個(gè)實(shí)施例中,以錯(cuò)誤位置多項(xiàng)式系數(shù)cr,完成一次更新為 例進(jìn)行分析, 系數(shù)寄存器經(jīng)由乘法器23121與移位寄存器23111中的數(shù)值相 乘,計(jì)算結(jié)果經(jīng)由多輸入加法器23122獲得多項(xiàng)式增量a ,再經(jīng)過(guò)乘法器23131 或23133相乘,相乘的結(jié)果通過(guò)兩輸入加法器23132送回cr,寄存器進(jìn)行系數(shù)的 更新。
可見,在該路徑上包含兩個(gè)乘法器(23121、 23131或23133) —個(gè)多輸入 的加法器23122和一個(gè)兩輸入的加法器23115,其路徑的延遲比較長(zhǎng)。但由于 本發(fā)明在此關(guān)鍵路徑上插入了第一寄存器23114,將路徑的延遲分成了兩個(gè)部 分, 一部分延遲包含一個(gè)多輸入加法器23122,以及一個(gè)乘法器23121;另一 部分延遲包含一個(gè)乘法器23131或23133,以及一個(gè)兩輸入的加法器23132。 由于多輸入的加法器23122的延遲大于兩輸入的加法器23132,故使得整個(gè) IBM實(shí)現(xiàn)電路的關(guān)鍵路徑變成了一個(gè)多輸入加法器23122和一個(gè)乘法器23121延遲的組合。這樣,使得該電路可以在較高的系統(tǒng)頻率下,實(shí)現(xiàn)對(duì)RS編碼碼 字的譯碼。
在本發(fā)明中,根據(jù)相關(guān)協(xié)議規(guī)定要求,系統(tǒng)支持RS (240, 224) 、 RS (240, 192)、RS(240, 176)三種譯碼模式,且要求RS譯碼器至少可以運(yùn)行到100MHz 的系統(tǒng)頻率。如果按照傳統(tǒng)的RS譯碼中的BM算法進(jìn)行設(shè)計(jì),系統(tǒng)運(yùn)行的最 高頻率達(dá)不到要求,而本發(fā)明采用IBM算法,可以在較高的系統(tǒng)運(yùn)行頻率下 實(shí)現(xiàn)RS譯碼。
圖6是利用本發(fā)明所提供的里德一所羅門編碼譯碼器實(shí)現(xiàn)譯碼的方法流 程圖,其中,步驟S601和步驟S602沒有先后次序之分,該流程包括如下步驟
在步驟S601中,伴隨多項(xiàng)式系數(shù)計(jì)算模塊21接收需要譯碼的碼字,并計(jì) 算伴隨多項(xiàng)式系數(shù)。在本發(fā)明的一個(gè)實(shí)施例中,如系統(tǒng)進(jìn)行RS (240, 224) 譯碼時(shí),首先由伴隨多項(xiàng)式系數(shù)計(jì)算模塊21利用輸入碼字進(jìn)行伴隨多項(xiàng)式系 數(shù)的計(jì)算。而當(dāng)計(jì)算得到16 (此時(shí)t= (240-224) /2=8)個(gè)伴隨多項(xiàng)式的系數(shù) S,到^之后,便將這16個(gè)伴隨多項(xiàng)式系數(shù)從&到&移位輸入到IBM算法求 錯(cuò)誤位置多項(xiàng)式系數(shù)模塊231,以及IBM算法求錯(cuò)誤值多項(xiàng)式系數(shù)模塊232 中。
在步驟S602中,緩存模塊22接收到的需要譯碼的碼字并對(duì)其進(jìn)行緩存; 緩存模塊22將輸入碼字依次保存到緩存模塊22中。
在步驟S603中,錯(cuò)誤位置及誤碼值計(jì)算模塊23確定錯(cuò)誤位置以及計(jì)算誤 碼值。
在步驟S604中,糾錯(cuò)模塊24根據(jù)所述錯(cuò)誤位置以及誤碼值,糾錯(cuò)所述緩 存模塊22中對(duì)應(yīng)的碼字。
在本發(fā)明的一個(gè)實(shí)施例中,所述步驟S603包括以下步驟IBM算法求錯(cuò) 誤位置多項(xiàng)式系數(shù)模塊231接收所述伴隨多項(xiàng)式系數(shù)計(jì)算模塊21的伴隨多項(xiàng) 式系數(shù)的輸入,計(jì)算錯(cuò)誤位置多項(xiàng)式系數(shù);IBM算法求錯(cuò)誤值多項(xiàng)式系數(shù)模 塊232接收所述伴隨多項(xiàng)式系數(shù)計(jì)算模塊21的伴隨多項(xiàng)式系數(shù)的輸入,計(jì)算 錯(cuò)誤值多項(xiàng)式系數(shù);搜索錯(cuò)誤位置以及計(jì)算誤碼值模塊24進(jìn)行錯(cuò)誤位置的搜 索,以及相應(yīng)誤碼值的計(jì)算。
在本發(fā)明的另一實(shí)施例中,所述IBM算法求錯(cuò)誤位置多項(xiàng)式系數(shù)模塊231 接收所述伴隨多項(xiàng)式系數(shù)計(jì)算模塊21的伴隨多項(xiàng)式系數(shù)的輸入,計(jì)算錯(cuò)誤位置多項(xiàng)式系數(shù)的步驟;或者,IBM算法求錯(cuò)誤值多項(xiàng)式系數(shù)模塊232接收所 述伴隨多項(xiàng)式系數(shù)計(jì)算模塊21的伴隨多項(xiàng)式系數(shù)的輸入,計(jì)算錯(cuò)誤值多項(xiàng)式 系數(shù)的步驟;包括
(I) 對(duì)里德一所羅門編碼譯碼器2電路進(jìn)行初始化;譯碼裝置在進(jìn)行譯
碼之前,需要上電初試化。
(2)在每一次里德一所羅門編碼譯碼器2進(jìn)行IBM迭代的第一個(gè)時(shí)鐘周 期,所述t+l個(gè)移位寄存器23111將移位串行輸入伴隨多項(xiàng)式系數(shù);RS譯碼
每次迭代需要兩個(gè)周期的系統(tǒng)時(shí)鐘,即每?jī)蓚€(gè)系統(tǒng)時(shí)鐘將一個(gè)伴隨多項(xiàng)式系數(shù) 《到&從左到右依次移位到t+l個(gè)移位寄存器23111(i 。,《,…i ,)中,在第一個(gè) 系統(tǒng)時(shí)鐘內(nèi)Ro到Rt中的值與t+l個(gè)系數(shù)寄存器23113 (ct。、 a,、…cr,)中的值通 過(guò)乘法器23121相乘,結(jié)果經(jīng)過(guò)一個(gè)多輸入的加法器23122計(jì)算,便可以得到 了多項(xiàng)式增量A,該多項(xiàng)式增量存入第一寄存器23114。
(3) t+l個(gè)移位寄存器23111中的伴隨多項(xiàng)式系數(shù)通過(guò)第一組延遲電路 2312的一個(gè)乘法器23121與t+l個(gè)系數(shù)寄存器23113中的數(shù)值相乘,以及通過(guò) 第一組延遲電路2312的一個(gè)多輸入的加法器23122相加,獲得多項(xiàng)式增量A, 并存入所述第一寄存器23114中;
(4) 當(dāng)每一次里德一所羅門編碼譯碼器2進(jìn)行迭代的第二個(gè)時(shí)鐘周期來(lái) 臨時(shí),根據(jù)所述第一寄存器23114中的多項(xiàng)式增量,控制電路2314產(chǎn)生相應(yīng) 的控制信號(hào),對(duì)t個(gè)輔助寄存器23112、 t+l個(gè)移位寄存器23111、以及t+l個(gè) 系數(shù)寄存器23113進(jìn)行更新。
在本發(fā)明的另一實(shí)施例中,所述步驟(1)包括
(II) 初始化t+l個(gè)移位寄存器2311中的伴隨多項(xiàng)式系數(shù)、t+l個(gè)系數(shù)寄 存器中的數(shù)值、以及t個(gè)輔助寄存器23121中的數(shù)值;并且將所述第二寄存器 23115中的初始值初始化為1。
在本發(fā)明的一個(gè)實(shí)施例中,如圖5所示,首先電路進(jìn)行初始化,t+l個(gè)移 位寄存器23111 (Ro到Rt)中的內(nèi)容初始化為(K…iO-(&,0,…,0),同時(shí)t+l 個(gè)系數(shù)寄存器23113 (ct。、 q、…q)和t個(gè)輔助寄存器(Bo到Bt-。中的內(nèi)容初 始化為(a。,q,…o",Xl,0,…,0)和(i 。,A,…i ,卜(&,0,…,0),第二寄存器23115 (" 中的內(nèi)容初始化為1。
所述步驟(4)包括(41)當(dāng)每一次里德一所羅門編碼譯碼器2進(jìn)行迭代的第二個(gè)時(shí)鐘周期來(lái)
臨時(shí),根據(jù)所述第一寄存器23114中的多項(xiàng)式增量,控制電路2314產(chǎn)生相應(yīng)
的控制信號(hào)
當(dāng)多項(xiàng)式增量不等于0時(shí),且滿足t個(gè)輔助寄存器23112更新的條件時(shí),控制電路2314產(chǎn)生控制信號(hào),由此時(shí)的t+l個(gè)系數(shù)寄存器23113中的值對(duì)t個(gè)輔助寄存器23112進(jìn)行更新,而t+l個(gè)系數(shù)寄存器23113中的值也通過(guò)第二組延遲電路2313中的一個(gè)加法器23132進(jìn)行輸出更新;
當(dāng)多項(xiàng)式增量等于0時(shí),對(duì)t個(gè)輔助寄存器23112中的值進(jìn)行串行右移操
作,且最低位填0,同時(shí)t+l個(gè)系數(shù)寄存器23113中的值通過(guò)第二組延遲電路
2313的一個(gè)加法器23132進(jìn)行輸出進(jìn)行更新。
在每次迭代的第二個(gè)時(shí)鐘到來(lái)時(shí),將多項(xiàng)式增量A從第一寄存器23114
中輸出,此時(shí)控制電路2314根據(jù)^的值進(jìn)行判斷產(chǎn)生控制信號(hào),當(dāng)A不等于0,且滿足更新t個(gè)輔助寄存器23112 (Bo到Bt.,)的條件時(shí),控制電路23114產(chǎn)生控制信號(hào),由此時(shí)的o"。、 q、…cTt中的值對(duì)t個(gè)輔助寄存器23112(B()到Bt.。進(jìn)行更新。而同時(shí)cr。、中的值也通過(guò)相應(yīng)的加法器23132的輸出進(jìn)行更新,否則,對(duì)t個(gè)輔助寄存器23112(Bo到Bt.j)進(jìn)行右移操作,且最低位填0,同時(shí)cr。、 cTp…a,中的值通過(guò)相應(yīng)的加法器23121的輸出進(jìn)行更新。在上述的兩
個(gè)時(shí)鐘周期內(nèi),該電路完成了一次迭代操作。
在上述多個(gè)實(shí)施例中,所述利用里德一所羅門編碼譯碼器2實(shí)現(xiàn)譯碼的過(guò)程中,IBM迭代重復(fù)完成2t次IBM迭代,獲得錯(cuò)誤位置多項(xiàng)式系數(shù)值,或者錯(cuò)誤值多項(xiàng)式系數(shù)值;其中1= (n-k) /2; n代表碼長(zhǎng),k代表信息位個(gè)數(shù)。
這個(gè)過(guò)程在控制電路的控制下重復(fù)進(jìn)行,直到迭代重復(fù)完成16次(算法規(guī)定迭代2t次,此時(shí)t= (240-224) /2=8),此時(shí)IBM迭代算法終止,t+l個(gè)系數(shù)寄存器23113 (cr。、 o"p…、a)中的數(shù)值即為所求的錯(cuò)誤位置多項(xiàng)式系數(shù)
值,或者錯(cuò)誤值多項(xiàng)式系數(shù)值。
在IBM迭代結(jié)束之后便可以由IBM算法求錯(cuò)誤位置多項(xiàng)式系數(shù)模塊231和IBM算法求錯(cuò)誤值多項(xiàng)式系數(shù)模塊232將得到的錯(cuò)誤位置多項(xiàng)式系數(shù),以及錯(cuò)誤值多項(xiàng)式系數(shù)輸出給搜索錯(cuò)誤位置以及計(jì)算誤碼值模塊233,進(jìn)行錯(cuò)誤位置的搜索以及錯(cuò)誤位置相應(yīng)誤碼值的計(jì)算,當(dāng)每檢測(cè)完一個(gè)位置是否有錯(cuò)以及計(jì)算完相應(yīng)的錯(cuò)誤值之后,就由糾錯(cuò)模塊24對(duì)存儲(chǔ)在緩存模塊22中的相應(yīng)的輸入碼字進(jìn)行糾錯(cuò),并輸出相應(yīng)的譯碼后的碼字,當(dāng)對(duì)所有碼字糾錯(cuò)完畢之
后,便完成整個(gè)RS譯碼操作。
上述的方案完全可以用于RS譯碼系統(tǒng)設(shè)計(jì)中,且可以以FPGA (FieldProgrammable Gate Array,現(xiàn)場(chǎng)可編程門陣列)硬件實(shí)現(xiàn),做到了譯碼的實(shí)時(shí)處理。上述提供了詳細(xì)的實(shí)施例描述,以使得本領(lǐng)域的任何技術(shù)人員可以使用或利用本發(fā)明。本發(fā)明不僅適用于這里所示的實(shí)施例,而且適用于不同模式以及對(duì)系統(tǒng)運(yùn)行頻率要求較高的RS譯碼系統(tǒng)的設(shè)計(jì)。
綜上所述,本發(fā)明根據(jù)IBM迭代算法,提供實(shí)現(xiàn)IBM迭代算法的電路。該電路可以用來(lái)進(jìn)行RS譯碼過(guò)程中的錯(cuò)誤位置多項(xiàng)式系數(shù),以及錯(cuò)誤值多項(xiàng)式系數(shù)的計(jì)算,由于采用IBM迭代算法,其無(wú)有限域的求逆運(yùn)算,所以對(duì)硬件資源的消耗較低,并且運(yùn)算速度快,對(duì)系統(tǒng)的關(guān)鍵路徑時(shí)延無(wú)影響。能夠?qū)崿F(xiàn)在較高運(yùn)行頻率系統(tǒng)下進(jìn)行里德一所羅門編碼譯碼。
當(dāng)然,本發(fā)明還可有其它多種實(shí)施例,在不背離本發(fā)明精神及其實(shí)質(zhì)的情況下,熟悉本領(lǐng)域的技術(shù)人員當(dāng)可根據(jù)本發(fā)明作出各種相應(yīng)的改變和變形,但這些相應(yīng)的改變和變形都應(yīng)屬于本發(fā)明所附的權(quán)利要求的保護(hù)范圍。
權(quán)利要求
1、一種里德—所羅門編碼譯碼器,其特征在于,包括伴隨多項(xiàng)式系數(shù)計(jì)算模塊,用于接收需要譯碼的碼字,并計(jì)算伴隨多項(xiàng)式系數(shù);緩存模塊,用于緩存接收到的需要譯碼的碼字;錯(cuò)誤位置及誤碼值計(jì)算模塊,用于確定錯(cuò)誤位置以及計(jì)算誤碼值;糾錯(cuò)模塊,用于根據(jù)所述錯(cuò)誤位置以及誤碼值,糾錯(cuò)所述緩存模塊中對(duì)應(yīng)的碼字。
2、 根據(jù)權(quán)利要求1所述的里德一所羅門編碼譯碼器,其特征在于,所述 錯(cuò)誤位置及誤碼值計(jì)算模塊包括.-IBM算法求錯(cuò)誤位置多項(xiàng)式系數(shù)模塊,用于接收所述伴隨多項(xiàng)式系數(shù)計(jì) 算模塊的伴隨多項(xiàng)式系數(shù)的輸入,計(jì)算錯(cuò)誤位置多項(xiàng)式系數(shù);IBM算法求錯(cuò)誤值多項(xiàng)式系數(shù)模塊,用于接收所述伴隨多項(xiàng)式系數(shù)計(jì)算 模塊的伴隨多項(xiàng)式系數(shù)的輸入,計(jì)算錯(cuò)誤值多項(xiàng)式系數(shù);搜索錯(cuò)誤位置以及計(jì)算誤碼值模塊,用于錯(cuò)誤位置的搜索,以及相應(yīng)誤碼 值的計(jì)算。
3、 根據(jù)權(quán)利要求2所述的里德一所羅門編碼譯碼器,其特征在于,所述 IBM算法求錯(cuò)誤位置多項(xiàng)式系數(shù)模塊,或者IBM算法求錯(cuò)誤值多項(xiàng)式系數(shù)模 塊包括多組寄存器,用于存儲(chǔ)IBM迭代算法過(guò)程中的各類數(shù)值;第一組延遲電路,通過(guò)所述多組寄存器的第一寄存器與第二組延遲電路連 接,包括依次順序連接的一個(gè)乘法器和一個(gè)多輸入加法器;第二組延遲電路,通過(guò)所述多組寄存器的第一寄存器與第一組延遲電路連 接,包括依次順序連接的一個(gè)乘法器和一個(gè)多輸入加法器,和/或另一乘法器;控制電路,與所述多組寄存器的第一寄存器連接,用于根據(jù)所述第一寄存 器輸出的值產(chǎn)生控制信號(hào),以控制所述多組寄存器數(shù)值的更新。
4、 根據(jù)權(quán)利要求3所述的里德一所羅門編碼譯碼器,其特征在于,所述 多組寄存器包括t+l個(gè)移位寄存器,與第一組延遲電路的一個(gè)乘法器連接,用于移位串行輸入伴隨式多項(xiàng)式系數(shù);t個(gè)輔助寄存器,與第二組延遲電路的至少一個(gè)乘法器連接,用于存儲(chǔ)IBM 迭代算法過(guò)程中求錯(cuò)誤位置多項(xiàng)式系數(shù)的中間結(jié)果;或者用于存儲(chǔ)IBM迭代 算法過(guò)程中求錯(cuò)誤值多項(xiàng)式系數(shù)的中間結(jié)果;t+l個(gè)系數(shù)寄存器,其兩端分別與第一組延遲電路和第二組延遲電路的一 個(gè)乘法器連接,用于寄存錯(cuò)誤位置多項(xiàng)式系數(shù),或者錯(cuò)誤值多項(xiàng)式系數(shù);第一寄存器,其一端與第一組延遲電路的一個(gè)多輸入加法器連接,另一端 分別與第二組延遲電路的至少一個(gè)乘法器、第二寄存器、外圍控制電路連接; 用于緩存每一次里德一所羅門編碼譯碼器進(jìn)行IBM迭代的一個(gè)時(shí)鐘周期后, IBM迭代計(jì)算得到的多項(xiàng)式增量;以及第二寄存器,其一端與第二延遲電路的至少一個(gè)乘法器連接,另一端與第 一寄存器連接,用于保持或更新所述里德一所羅門編碼譯碼器的多項(xiàng)式增量;其中,t= (n-k) /2; n代表碼長(zhǎng),k代表信息位個(gè)數(shù)。
5、 根據(jù)權(quán)利要求4所述的里德一所羅門編碼譯碼器,其特征在于,當(dāng)所 述多項(xiàng)式增量為0或不滿足輔助寄存器更新條件時(shí),所述控制電路產(chǎn)生信號(hào)僅 使t個(gè)輔助寄存器完成串行右移操作;否則,所述控制電路產(chǎn)生信號(hào)使t+l個(gè) 系數(shù)寄存器與t個(gè)輔助寄存器更新。
6、 一種利用權(quán)利要求1 5任意一項(xiàng)權(quán)利要求所述的里德一所羅門編碼譯 碼器實(shí)現(xiàn)譯碼的方法,其特征在于,包括伴隨多項(xiàng)式系數(shù)計(jì)算模塊接收需要譯碼的碼字,并計(jì)算伴隨多項(xiàng)式系數(shù); 緩存模塊接收到的需要譯碼的碼字并對(duì)其進(jìn)行緩存; 錯(cuò)誤位置及誤碼值計(jì)算模塊確定錯(cuò)誤位置以及計(jì)算誤碼值; 糾錯(cuò)模塊根據(jù)所述錯(cuò)誤位置以及誤碼值,糾錯(cuò)所述緩存模塊中對(duì)應(yīng)的碼字。
7、 根據(jù)權(quán)利要求6所述的里德一所羅門編碼譯碼器實(shí)現(xiàn)譯碼的方法,其 特征在于,所述錯(cuò)誤位置及誤碼值計(jì)算模塊確定錯(cuò)誤位置以及計(jì)算誤碼值的步驟包括IBM算法求錯(cuò)誤位置多項(xiàng)式系數(shù)模塊接收所述伴隨多項(xiàng)式系數(shù)計(jì)算模塊 的伴隨多項(xiàng)式系數(shù)的輸入,計(jì)算錯(cuò)誤位置多項(xiàng)式系數(shù);IBM算法求錯(cuò)誤值多項(xiàng)式系數(shù)模塊接收所述伴隨多項(xiàng)式系數(shù)計(jì)算模塊的伴隨多項(xiàng)式系數(shù)的輸入,計(jì)算錯(cuò)誤值多項(xiàng)式系數(shù);搜索錯(cuò)誤位置以及計(jì)算誤碼值模塊進(jìn)行錯(cuò)誤位置的搜索,以及相應(yīng)誤碼值 的計(jì)算。
8、 根據(jù)權(quán)利要求7所述的里德一所羅門編碼譯碼器實(shí)現(xiàn)譯碼的方法,其 特征在于,所述IBM算法求錯(cuò)誤位置多項(xiàng)式系數(shù)模塊接收所述伴隨多項(xiàng)式系 數(shù)計(jì)算模塊的伴隨多項(xiàng)式系數(shù)的輸入,計(jì)算錯(cuò)誤位置多項(xiàng)式系數(shù)的步驟;或者, IBM算法求錯(cuò)誤值多項(xiàng)式系數(shù)模塊接收所述伴隨多項(xiàng)式系數(shù)計(jì)算模塊的伴隨 多項(xiàng)式系數(shù)的輸入,計(jì)算錯(cuò)誤值多項(xiàng)式系數(shù)的步驟;包括(1 )對(duì)里德一所羅門編碼譯碼器電路進(jìn)行初始化;(2) 在每一次里德一所羅門編碼譯碼器進(jìn)行IBM迭代的第一個(gè)時(shí)鐘周 期,所述t+l個(gè)移位寄存器將移位串行輸入伴隨多項(xiàng)式系數(shù);(3) t+l個(gè)移位寄存器中的伴隨多項(xiàng)式系數(shù)通過(guò)第一組延遲電路的一個(gè) 乘法器與t+l個(gè)系數(shù)寄存器中的數(shù)值相乘,以及通過(guò)第一組延遲電路的一個(gè)多 輸入的加法器相加,獲得多項(xiàng)式增量,并存入所述第一寄存器中;(4) 當(dāng)每一次里德一所羅門編碼譯碼器進(jìn)行迭代的第二個(gè)時(shí)鐘周期來(lái)臨 時(shí),根據(jù)所述第一寄存器中的多項(xiàng)式增量,控制電路產(chǎn)生相應(yīng)的控制信號(hào),對(duì) t個(gè)輔助寄存器、t+l個(gè)移位寄存器、以及t+l個(gè)系數(shù)寄存器進(jìn)行更新。
9、 根據(jù)權(quán)利要求8所述的里德一所羅門編碼譯碼器實(shí)現(xiàn)譯碼的方法,其 特征在于,所述步驟(1)包括(11)初始化t+l個(gè)移位寄存器中的伴隨多項(xiàng)式系數(shù)、t+l個(gè)系數(shù)寄存器 中的數(shù)值、以及t個(gè)輔助寄存器中的數(shù)值;并且將所述第二寄存器中的初始值 初始化為1;所述步驟(4)包括(41)當(dāng)每一次里德一所羅門編碼譯碼器進(jìn)行迭代的第二個(gè)時(shí)鐘周期來(lái)臨時(shí),根據(jù)所述第一寄存器中的多項(xiàng)式增量,控制電路產(chǎn)生相應(yīng)的控制信號(hào)當(dāng)多項(xiàng)式增量不等于0時(shí),且滿足t個(gè)輔助寄存器更新的條件時(shí),控制電 路產(chǎn)生控制信號(hào),由此時(shí)的t+l個(gè)系數(shù)寄存器中的值對(duì)t個(gè)輔助寄存器進(jìn)行更 新,而t+l個(gè)系數(shù)寄存器中的值也通過(guò)第二組延遲電路中的一個(gè)加法器進(jìn)行輸 出更新;當(dāng)多項(xiàng)式增量等于0時(shí),對(duì)t個(gè)輔助寄存器中的值進(jìn)行串行右移操作,且最低位填0,同時(shí)t+l個(gè)系數(shù)寄存器中的值通過(guò)第二組延遲電路的一個(gè)加法器 進(jìn)行輸出進(jìn)行更新。
10、根據(jù)權(quán)利要求9所述的里德一所羅門編碼譯碼器實(shí)現(xiàn)譯碼的方法,其 特征在于,所述利用里德一所羅門編碼譯碼器實(shí)現(xiàn)譯碼的過(guò)程中,IBM迭代 重復(fù)完成2t次IBM迭代,獲得錯(cuò)誤位置多項(xiàng)式系數(shù)值,或者錯(cuò)誤值多項(xiàng)式系 數(shù)值;其中t (n-k) /2; n代表碼長(zhǎng),k代表信息位個(gè)數(shù)。
全文摘要
本發(fā)明公開了一種里德-所羅門編碼譯碼器及其譯碼的方法,該里德-所羅門編碼譯碼器包括伴隨多項(xiàng)式系數(shù)計(jì)算模塊,用于接收需要譯碼的碼字,并計(jì)算伴隨多項(xiàng)式系數(shù);緩存模塊,用于緩存接收到的需要譯碼的碼字;錯(cuò)誤位置及誤碼值計(jì)算模塊,用于確定錯(cuò)誤位置以及計(jì)算誤碼值;糾錯(cuò)模塊,用于根據(jù)所述錯(cuò)誤位置以及誤碼值,糾錯(cuò)所述緩存模塊中對(duì)應(yīng)的碼字。本發(fā)明根據(jù)IBM迭代算法,提供實(shí)現(xiàn)IBM迭代算法的電路。該電路用來(lái)進(jìn)行RS譯碼過(guò)程中的錯(cuò)誤位置多項(xiàng)式系數(shù)、錯(cuò)誤值多項(xiàng)式系數(shù)的計(jì)算,由于采用IBM迭代算法,其無(wú)有限域的求逆運(yùn)算,對(duì)硬件資源的消耗較低,運(yùn)算速度快。能夠在較高運(yùn)行頻率系統(tǒng)下進(jìn)行里德-所羅門編碼譯碼。
文檔編號(hào)H03M13/15GK101478314SQ20081005560
公開日2009年7月8日 申請(qǐng)日期2008年1月3日 優(yōu)先權(quán)日2008年1月3日
發(fā)明者帥 王 申請(qǐng)人:中興通訊股份有限公司