專利名稱:一種基于奇偶校驗(yàn)矩陣的ldpc碼的譯碼方法及譯碼器的制作方法
技術(shù)領(lǐng)域:
本發(fā)明屬于通信領(lǐng)域,具體涉及一種譯碼方法和譯碼器。
技術(shù)背景LDPC碼,全稱LowDensity Parity Check Code,即低密度奇偶校驗(yàn)碼。在 目前已有的編碼方法中,LDPC碼的編碼方法已經(jīng)顯示出了接近香農(nóng)限 (Shannon' s limit)的編碼性能;在譯碼方面,與同樣是長(zhǎng)碼的Turbo碼相比, LDPC碼的誤碼平層(error floor)出現(xiàn)在很低的誤碼率區(qū)域,且錯(cuò)誤碼字無法檢測(cè) 的概率為一個(gè)極低的非常接近O的值;LDPC碼的奇偶校驗(yàn)矩陣H為稀疏矩陣,此 即"低密度"的命名由來,而這樣的特性使其能夠通過簡(jiǎn)單易于實(shí)現(xiàn)的譯碼方法進(jìn)行 譯碼,具有極高的實(shí)用價(jià)值。由于以上幾點(diǎn)原因,使得LDPC在近年來成為研究與 應(yīng)用的熱點(diǎn),例如第二代衛(wèi)星數(shù)字電視視頻廣播標(biāo)準(zhǔn)(DVB-S2)以及我國(guó)的數(shù)字 電視地面?zhèn)鬏敇?biāo)準(zhǔn)都使用LDPC碼作為核心的信道編碼。但就其譯碼方法的應(yīng)用而言,主要存在著耗費(fèi)資源的問題。例如對(duì)比文獻(xiàn)l: CN200510081842.5公開的LDPC碼譯碼器和方法提供 了一種可以在同一時(shí)間段內(nèi),對(duì)奇偶校驗(yàn)矩陣的行和列進(jìn)行兩種不同更新的譯碼方 案,但其對(duì)于奇偶校驗(yàn)矩陣的各行采取全并行的譯碼器結(jié)果,因此,其將耗費(fèi)巨大的 資源,對(duì)于一些碼長(zhǎng)較長(zhǎng)、矩陣規(guī)模較大的LDPC碼(例如,中國(guó)數(shù)字電視地面?zhèn)?輸標(biāo)準(zhǔn)中所使用的LDPC碼)而言顯然是不適合的。又例如對(duì)比文獻(xiàn)2: T.Zhang and K.K Parhi, "A 54 MBPS(3, 6)-regular FPGA LDPC decoder" , IEEE Proc. OfICC, May 2003。該文獻(xiàn)中提出一種在目 前在本領(lǐng)域內(nèi)通用的部分并行的譯碼器及譯碼方法,但其更適用于規(guī)則碼,而且對(duì)監(jiān) 督矩陣的行重和列重有特殊的要求,因此該譯碼方案對(duì)于非規(guī)則碼在譯碼效率方面尚 不能使人滿意,且對(duì)于碼長(zhǎng)較長(zhǎng)、矩陣規(guī)模較大的LDPC碼,仍存在耗費(fèi)資源較大 的瓶頸。發(fā)明 內(nèi)容本發(fā)明的目的在于,提供一種低密度奇偶校驗(yàn)碼的譯碼方法,本發(fā)明的另一個(gè)目 的在于提供一種LDPC碼譯碼器裝置;用以解決節(jié)約硬件資源或提高譯碼速率的問題。本發(fā)明中的低密度奇偶校驗(yàn)碼的譯碼方法,其所應(yīng)用的奇偶校驗(yàn)矩陣被劃分為 px《個(gè)大小為axfl的子塊,每個(gè)子塊都用循環(huán)行列式或O矩陣填充,此方法具有下列步驟將奇偶校驗(yàn)矩陣進(jìn)行矩陣分裂,得到多個(gè)新矩陣;基于矩陣分裂后的多個(gè)新 矩陣進(jìn)行譯碼。該基于多個(gè)新矩陣的概率譯碼優(yōu)選為迭代譯碼,具有以下步驟步驟1:分別地、 順序地對(duì)各個(gè)新矩陣的用于更新校驗(yàn)信息的中間信息進(jìn)行更新,該校驗(yàn)信息為與各個(gè) 新矩陣的各檢驗(yàn)節(jié)點(diǎn)相關(guān)的變量節(jié)點(diǎn)上的信息,其中,各行中的變量節(jié)點(diǎn)為各個(gè)新矩 陣中的各行中數(shù)值為"1"的位置;步驟2:根據(jù)各個(gè)新矩陣更新后的全部中間信息, 順序?qū)Ω鱾€(gè)新矩陣的校驗(yàn)信息進(jìn)行更新;步驟3:根據(jù)各個(gè)新矩陣更新后的校驗(yàn)信息, 順序?qū)Ω鱾€(gè)新矩陣中的變量信息進(jìn)行更新,該變量信息為與各個(gè)新矩陣的各變量節(jié)點(diǎn) 相關(guān)的校驗(yàn)節(jié)點(diǎn)上的信息,其中,各行中的校驗(yàn)節(jié)點(diǎn)為各個(gè)新矩陣中的各列中數(shù)值為 "1"的位置;步驟4:重復(fù)上述步驟1至步驟3,進(jìn)行迭代,直到譯碼成功或滿足 迭代停止條件。該基于多個(gè)新矩陣的概率譯碼還可以具有以下步驟步驟l:分別地、順序地對(duì) 各個(gè)新矩陣的用于更新校驗(yàn)信息的中間信息進(jìn)行更新,該校驗(yàn)信息為與各個(gè)新矩陣的 各檢驗(yàn)節(jié)點(diǎn)相關(guān)的變量節(jié)點(diǎn)上的信息;步驟2:根據(jù)該各個(gè)新矩陣更新后的全部中間 信息,順序?qū)Ω鱾€(gè)新矩陣的校驗(yàn)信息進(jìn)行更新;步驟3:根據(jù)每個(gè)新矩陣更新后的校 驗(yàn)信息,在步驟2順序?qū)ζ渌戮仃嚨男r?yàn)信息進(jìn)行更新的同時(shí),對(duì)已更新了校驗(yàn) 信息的新矩陣中的變量信息進(jìn)行更新;步驟4:重復(fù)步驟1至步驟3,進(jìn)行迭代,直 到譯碼成功或滿足迭代停止條件。本發(fā)明的另一個(gè)目的即提供一種LDPC碼譯碼器裝置,該裝置包括校驗(yàn)節(jié)點(diǎn) 更新單元(以下簡(jiǎn)稱CNU),其對(duì)各個(gè)新矩陣中各行的校驗(yàn)信息以及用于校驗(yàn)信息 計(jì)算的中間信息進(jìn)行計(jì)算;變量節(jié)點(diǎn)更新單元(以下簡(jiǎn)稱VNU),其對(duì)各個(gè)新矩陣 中各列的變量信息進(jìn)行計(jì)算;存儲(chǔ)器,其對(duì)各個(gè)新矩陣的所有校驗(yàn)節(jié)點(diǎn)和變量節(jié)點(diǎn), 存儲(chǔ)校驗(yàn)信息、變量信息、譯碼器輸入信息、用于譯碼的中間信息和譯碼結(jié)果進(jìn)行存 儲(chǔ);控制器,其對(duì)校驗(yàn)節(jié)點(diǎn)更新單元和變量節(jié)點(diǎn)更新單元的運(yùn)算進(jìn)行定序,并對(duì)它們與存儲(chǔ)器間的數(shù)據(jù)交換進(jìn)行控制。其中,校驗(yàn)節(jié)點(diǎn)更新單元的個(gè)數(shù)被配置為等于所述各個(gè)新矩陣的行塊個(gè)數(shù)q;變量節(jié)點(diǎn)更新單元的個(gè)數(shù)被配置為等于各個(gè)新矩陣的列塊 個(gè)數(shù)的最大值r;存儲(chǔ)器還存儲(chǔ)用于譯碼的中間信息;控制器被配置為,控制q個(gè)校 驗(yàn)節(jié)點(diǎn)更新單元,對(duì)應(yīng)各個(gè)新矩陣中q個(gè)子矩陣行中的a行,在a次校驗(yàn)信息和用于校驗(yàn)信息計(jì)算的中間信息的計(jì)算中進(jìn)行復(fù)用;控制r個(gè)變量節(jié)點(diǎn)更新單元,對(duì)應(yīng)所 述各個(gè)新矩陣中r個(gè)子矩陣行中的a列,在a次變量信息的計(jì)算中進(jìn)行復(fù)用。上述的q個(gè)校驗(yàn)節(jié)點(diǎn)更新單元包括第一查找表單元,其采用査找表方式,將各 個(gè)新矩陣的各行的變量節(jié)點(diǎn)的變量信息轉(zhuǎn)換為概率值,其個(gè)數(shù)由所屬各個(gè)新矩陣的各 行的變量節(jié)點(diǎn)的個(gè)數(shù)決定;加法器單元,其對(duì)第一查找表單元輸出的概率值求和;減 法器單元;其個(gè)數(shù)與第一査找表單元個(gè)數(shù)相同,均以加法器單元輸出的概率值的和為 被減數(shù),分別減去第一查找表單元輸出的概率值;第二査找表單元,其個(gè)數(shù)與第一査 找表單元及減法器單元的個(gè)數(shù)相同,其輸入與減法器單元的輸出相連,以與第一査找 表單元相同的方式,將其輸入轉(zhuǎn)換為概率值;第一符號(hào)運(yùn)算單元,其對(duì)各個(gè)新矩陣各 行的變量節(jié)點(diǎn)的變量信息的符號(hào)進(jìn)行符號(hào)運(yùn)算;第二符號(hào)運(yùn)算單元,其個(gè)數(shù)與減法器 單元的個(gè)數(shù)相同,其從第一符號(hào)運(yùn)算單元輸出的符號(hào)運(yùn)算的結(jié)果中,分別剔除掉各個(gè) 新矩陣各行的變量節(jié)點(diǎn)的變量信息的符號(hào)。上述的r個(gè)變量節(jié)點(diǎn)更新單元包括第一加法器單元,其對(duì)各個(gè)新矩陣的各列的 校驗(yàn)節(jié)點(diǎn)的校驗(yàn)信息求和;減法器單元,其以第一加法器單元輸出的和為被減數(shù),分 別減去各個(gè)新矩陣的各列的校驗(yàn)節(jié)點(diǎn)的各個(gè)校驗(yàn)信息;第二加法器單元,其將第一加 法器單元的和與譯碼器輸入信息進(jìn)行相加;判決單元,其對(duì)第二加法器單元的輸出進(jìn) 行判決,得到譯碼結(jié)果。作為一種改進(jìn),譯碼器中的校驗(yàn)節(jié)點(diǎn)更新單元還可以包括驗(yàn)算單元,其對(duì)當(dāng)前譯 碼結(jié)果是否正確進(jìn)行驗(yàn)算;所述控制器根據(jù)該驗(yàn)算單元的結(jié)果,控制譯碼器繼續(xù)進(jìn)行 譯碼計(jì)算或者停止譯碼,輸出所述譯碼結(jié)果。作為另一種改進(jìn),還可以在q個(gè)校驗(yàn)節(jié)點(diǎn)更新單元或所述r個(gè)變量節(jié)點(diǎn)更新單元 中插入流水線,利用該流水線,可以在同一時(shí)刻對(duì)q個(gè)校驗(yàn)節(jié)點(diǎn)更新單元或r個(gè)變量 節(jié)點(diǎn)更新單元實(shí)行流水線操作,各自進(jìn)行相應(yīng)的運(yùn)算。綜上所述,應(yīng)用本發(fā)明提供的譯碼方法和譯碼器進(jìn)行LDPC碼譯碼時(shí),與現(xiàn)有 技術(shù)所提供的譯碼方案相比,在按照奇偶方式分裂時(shí),在相同的譯碼速率下,硬件資 源規(guī)模減小1/3或在相同的硬件資源下,譯碼速率提高1/3。
圖1為本發(fā)明所涉及的對(duì)LDPC譯碼所用的奇偶校驗(yàn)矩陣進(jìn)行奇偶分裂的矩陣 分裂方法的示意圖。圖2的上半部分為本發(fā)明所涉及的LDPC譯碼所用的奇偶校驗(yàn)矩陣的一個(gè)示例, 圖2的下半部分為根據(jù)圖1的奇偶分裂方法對(duì)該矩陣進(jìn)行奇偶分裂后的示意圖。圖3為以圖2中的進(jìn)行奇偶分裂后的矩陣為基礎(chǔ)的LDPC譯碼器的一個(gè)示例。 圖4為校驗(yàn)節(jié)點(diǎn)更新單元的一個(gè)示例。 圖5為變量節(jié)點(diǎn)更新單元的一個(gè)示例。圖6為L(zhǎng)DPC迭代譯碼中的的第n迭代周期和第n+l迭代周期的具體迭代步驟 的示意圖。圖7為圖6的迭代步驟所屬的迭代運(yùn)算的時(shí)序簡(jiǎn)圖。圖8為L(zhǎng)DPC譯碼器譯碼步驟的流程圖。圖9為L(zhǎng)DPC譯碼器譯碼步驟的另一個(gè)流程圖。圖10的上半部分與圖2的上半部分相同,圖10的下半部分為對(duì)該矩陣進(jìn)行另 一種矩陣分裂方法后的示意圖。圖11為基于圖10的矩陣分裂方法的LDPC譯碼器迭代運(yùn)算的時(shí)序簡(jiǎn)圖。
具體實(shí)施方式
以下,參照附圖對(duì)本發(fā)明的具體實(shí)施方式
進(jìn)行解釋說明。首先描述用于本實(shí)施例的奇偶校驗(yàn)矩陣。奇偶檢驗(yàn)矩陣又稱H矩陣,如圖l所 示,由(戶+ l)x(g + l)個(gè)4 (0&、《,0《7《;7)矩陣組成,4作為H矩陣的子矩陣,是0矩陣或循環(huán)行列式構(gòu)成的"x"方陣,且該循環(huán)行列式的重量很小。在本實(shí)施例 中,4為由單位陣循環(huán)移位而得的"x"方陣或0矩陣。從圖2中可見,每一個(gè)子矩 陣4中的斜線表示為矩陣元素為"1"的元素位置的軌跡,而其它空白位置上的元素 為"0"。以圖2的H矩陣為例,可知,在構(gòu)成H矩陣的4X10個(gè)子矩陣4的每一 行和每一列中,只有一個(gè)元素值為"1"的位置。所以,在整個(gè)H矩陣的每一行和每一列中,元素值為"1"的位置數(shù)分別為m和",其中m即是H矩陣的一個(gè)子矩陣行 (4。 4…4J中非0矩陣的個(gè)數(shù),稱為行重;"即是H矩陣的一個(gè)子矩陣列(《《…《)T中非0矩陣的個(gè)數(shù),稱為列重。m和"滿足"〈m,以圖2為例,H矩陣的行重為6,列重分別為1、 2和4。并且,對(duì)于H矩陣中每一行的m值可以不相同,每一列的w值也可以不相同。對(duì)應(yīng)全部的每行所具有的w ,H矩陣包含M (M = ax(OT。 + Wj +…+ ^ +... +附》)個(gè)變量節(jié)點(diǎn);對(duì)應(yīng)全部的每列所具有的n, H矩陣包含iV (Wix("。+^+…+ +…+ "p))個(gè)校驗(yàn)節(jié)點(diǎn)。且,必然有M-iV。本領(lǐng)域內(nèi)公知,H矩陣的每一行可以被視為一個(gè)奇偶校驗(yàn)方程,對(duì)應(yīng)于H矩陣 的第/行的奇偶校驗(yàn)方程被稱為第z'奇偶校驗(yàn)方程,對(duì)于對(duì)應(yīng)于該H矩陣的ax(/ + l) 個(gè)LDPC碼字,當(dāng)且僅當(dāng)上述碼字滿足H矩陣的所有奇偶校驗(yàn)方程,也就是"x(《+ l)個(gè)奇偶校驗(yàn)方程,才能譯碼成功,得到正確的信息。要使譯碼算法對(duì)每組LDPC碼譯碼,需要迭代運(yùn)算,反復(fù)交替地進(jìn)行校驗(yàn)節(jié)點(diǎn) 更新運(yùn)算和變量節(jié)點(diǎn)更新運(yùn)算。校驗(yàn)節(jié)點(diǎn)更新運(yùn)算,由校驗(yàn)節(jié)點(diǎn)運(yùn)算單元(CNU)進(jìn)行,如下式完成更新,即 水平過程(行過程)<formula>formula see original document page 9</formula>(u)上式中,^是通過將對(duì)應(yīng)的變量信息丄(L)傳遞給H矩陣的第Z行的除了第/個(gè) 外的每一個(gè)校驗(yàn)節(jié)點(diǎn)而獲得的,而&是表示與第/個(gè)變量節(jié)點(diǎn)相關(guān)的第_/個(gè)校驗(yàn)節(jié)點(diǎn) 所對(duì)應(yīng)的一個(gè)LDPC碼字位置的校驗(yàn)信息。式中的&,和^ 是為了簡(jiǎn)便對(duì)^和%的統(tǒng)一寫法。iV(附)表示H矩陣中與一個(gè)檢驗(yàn)節(jié)點(diǎn)w相關(guān)的所有變量節(jié)點(diǎn)的集合。 此外,上式中的( )表示符號(hào)函數(shù),T(jc) = ln(tanh(|x/2|)) = ln((l -<formula>formula see original document page 9</formula>為概率計(jì)算函數(shù),后述,簡(jiǎn)稱為甲函數(shù)。而迭代運(yùn)算中的另一部分,變量節(jié)點(diǎn)更新運(yùn)算,由變量節(jié)點(diǎn)運(yùn)算單元(VNU)進(jìn)行,如下完成更新,即垂直過程(或稱"列過程")<formula>formula see original document page 9</formula>上式中,(-2。/一)為開始迭代前的信道輸入,表示第7位、為l或0的概率信 息,它是LDPC碼字經(jīng)信道輸出后估計(jì)得到的。由此可知,"A)在迭代中亦是概率 信息,表示在迭代中對(duì)應(yīng)的第_/位巧為1或0的概率大小。M(力表示H矩陣中與一個(gè)變量節(jié)點(diǎn)/相關(guān)的所有檢驗(yàn)節(jié)點(diǎn)的集合。其后,對(duì)丄(力)判決,判決其對(duì)應(yīng)的^為0或1。再利用H矩陣中每一行的校驗(yàn)方程進(jìn)行檢驗(yàn),若Z/xx-0,譯碼正確;否則繼續(xù)迭代直至最大迭代次數(shù)。其中x為 關(guān)于、(0Sj'《("x/ ))的列向量。實(shí)施例1:首先敘述本發(fā)明的一種奇偶校驗(yàn)矩陣的分裂方法圖1為對(duì)LDPC譯碼所用的奇偶校驗(yàn)矩陣(以下簡(jiǎn)稱"H矩陣")進(jìn)行奇偶分裂 的分裂方法。圖l中的奇偶分裂方法,將H矩陣分為兩個(gè)矩陣,即H。矩陣和Hi矩陣。具體的分割方法為,將H矩陣中列標(biāo)為0的子矩陣列(4。 4。…4。)T抽出作為H。矩陣的 第一個(gè)子矩陣列,將H矩陣中列標(biāo)為1的子矩陣列(4 ^…^)T抽出作為A矩陣 的第一個(gè)子矩陣列;按照相同方法,順序地將H矩陣中的子矩陣列抽出交替地放入 H。矩陣及Hi矩陣,上述子矩陣列依照H矩陣中的原有順序,分別在新矩陣H。及 H沖排列。由此,對(duì)完成分裂后的H。矩陣及J^矩陣而言,它們各自的行數(shù)保持不 變與原H矩陣相同,而列數(shù)各為原H矩陣的一半,具體地說,若H矩陣的列數(shù)為偶 數(shù),則H。矩陣和Hi矩陣的列數(shù)分別為它的1/2;若H矩陣的列數(shù)為奇數(shù),則H。 矩陣的列數(shù)為(P + 2)/2, Hi矩陣的列數(shù)為戶/2,其中H矩陣的列數(shù)為p + l。在圖1中,為了簡(jiǎn)便表示,對(duì)H。矩陣和Hi矩陣中的子矩陣列的列標(biāo)仍延用其 在H矩陣的列標(biāo),而對(duì)于H。矩陣和Hi矩陣中子矩陣列的最后一列的列標(biāo)"和6 ,若 H矩陣中/7為奇數(shù),"=戶-1, 6=/7;若戶為偶數(shù),"=戶,6 = —1。圖2中上半部分所示的矩陣為本實(shí)施例所用的H矩陣,如圖所示,該矩陣具有 四個(gè)子矩陣行和十個(gè)子矩陣列,每個(gè)子矩陣為"xa的方陣。圖2下半部分所示為將 上述H矩陣奇偶分裂為H。矩陣和Hi矩陣后的情況。然后敘述奇偶校驗(yàn)矩陣分裂后的一種譯碼方法。由于對(duì)原矩陣H進(jìn)行了分裂,并根據(jù)分裂后的H。矩陣和Hi矩陣重新構(gòu)造了相 應(yīng)的譯碼器結(jié)構(gòu),因此需要對(duì)前面所述的迭代步驟進(jìn)行修改,即在保證達(dá)到上述兩個(gè) 算式迭代效果的情況下,對(duì)應(yīng)矩陣分裂后的矩陣結(jié)構(gòu)和譯碼器結(jié)構(gòu),重新組織迭代中 的計(jì)算更新步驟。下面,對(duì)照算式,說明對(duì)原迭代算式進(jìn)行修改后的計(jì)算順序。 具體,將需要完成的水平過程(校驗(yàn)節(jié)點(diǎn)更新運(yùn)算)分為三步a. 對(duì)H。矩陣進(jìn)行校驗(yàn)節(jié)點(diǎn)更新運(yùn)算,計(jì)算出用于后述的H,矩陣的校驗(yàn)節(jié)點(diǎn)更 新運(yùn)算的相關(guān)信息4^。和S礎(chǔ)。。對(duì)H。矩陣所有m、",計(jì)算<formula>formula see original document page 10</formula> (1)<formula>formula see original document page 10</formula> (2)b. 對(duì)I^矩陣進(jìn)行校驗(yàn)節(jié)點(diǎn)更新運(yùn)算, 一方面計(jì)算出原H矩陣的奇數(shù)列塊中校 驗(yàn)節(jié)點(diǎn)的信息,另一方面計(jì)算出用于H。矩陣的校驗(yàn)節(jié)點(diǎn)更新運(yùn)算的相關(guān)信息^^,和 S Hi。對(duì)Hi矩陣所有附、",計(jì)算<formula>formula see original document page 10</formula>(3)<formula>formula see original document page 10</formula>(4)<formula>formula see original document page 11</formula>(7) c.對(duì)H。矩陣進(jìn)行校驗(yàn)節(jié)點(diǎn)更新運(yùn)算,計(jì)算出原H矩陣的奇數(shù)列塊中校驗(yàn)節(jié)點(diǎn) 的信息<formula>formula see original document page 11</formula>(10) 另一方面,豎直過程的處理(變量節(jié)點(diǎn)更新運(yùn)算)不變,對(duì)H。矩陣和H,矩陣的 處理方法相同,只是在不同時(shí)間段內(nèi),分別對(duì)H。矩陣和Hi矩陣進(jìn)行變量節(jié)點(diǎn)更新 運(yùn)算,對(duì)所有m、 n,計(jì)算<formula>formula see original document page 11</formula>最后描述的是根據(jù)基于奇偶校驗(yàn)矩陣分裂的譯碼方法設(shè)計(jì)的一種譯碼器及其譯 碼步驟。對(duì)檢驗(yàn)矩陣完成奇偶分裂后,根據(jù)分裂后的H。矩陣和矩陣構(gòu)造相應(yīng)的LDPC 譯碼器結(jié)構(gòu)。如圖3所示,本實(shí)施例中的譯碼器包括以下部分存儲(chǔ)器單元10、 20, 分別對(duì)應(yīng)H。矩陣和Hi矩陣,用于存儲(chǔ)LDPC譯碼迭代中的信息;校驗(yàn)節(jié)點(diǎn)運(yùn)算單 元(CNU)集合30,共包括q個(gè)校驗(yàn)節(jié)點(diǎn)運(yùn)算單元,本實(shí)施例中,如圖3所示,q 為4,分別為校驗(yàn)節(jié)點(diǎn)運(yùn)算單元31, 32,…,34, CNU集合完成校驗(yàn)節(jié)點(diǎn)更新運(yùn) 算,即對(duì)每一行中校驗(yàn)節(jié)點(diǎn)的校驗(yàn)信息進(jìn)行更新;變量節(jié)點(diǎn)運(yùn)算單元(VNU)集合 40,共包括r個(gè)變量節(jié)點(diǎn)運(yùn)算單元,在本實(shí)施例中如圖3所示,r為5,分別為變量 節(jié)點(diǎn)運(yùn)算單元41, 42,…,45, VNU集合完成變量節(jié)點(diǎn)更新運(yùn)算,即對(duì)每一列中 變量節(jié)點(diǎn)的變量信息進(jìn)行更新;控制器單元O,控制CNU與VNU的輸入、輸出, 對(duì)更新、迭代進(jìn)行定序,并在CNU與VNU的輸入、輸出時(shí)給出其相應(yīng)的存儲(chǔ)器單 元10與存儲(chǔ)器單元20的讀寫地址。如上所述,關(guān)于本實(shí)施例中CNU和VNU的個(gè) 數(shù)的確定《為H。矩陣、Hi矩陣和H矩陣中子矩陣行的數(shù)量,本實(shí)施例中有q-4, r為H。矩陣、Hi矩陣各自的子矩陣列的數(shù)量的最大值,本實(shí)施例中有r-5,因此, 在本實(shí)施例中CNU的個(gè)數(shù)為4, VNU的個(gè)數(shù)均為5。上述存儲(chǔ)器單元10中的各個(gè)存儲(chǔ)單元與H。矩陣中每一個(gè)矩陣元素為"1"的節(jié) 點(diǎn)對(duì)應(yīng),上述存儲(chǔ)器單元20中的各個(gè)存儲(chǔ)單元與H,矩陣中每一個(gè)矩陣元素為"1" 的節(jié)點(diǎn)對(duì)應(yīng)。當(dāng)與一個(gè)校驗(yàn)節(jié)點(diǎn)相關(guān)的校驗(yàn)節(jié)點(diǎn)更新運(yùn)算結(jié)束后,將運(yùn)算結(jié)果寫入相 應(yīng)的存儲(chǔ)器單元10,完成校驗(yàn)信息更新;當(dāng)與一個(gè)變量節(jié)點(diǎn)相關(guān)的變量節(jié)點(diǎn)更新運(yùn) 算結(jié)束后,將運(yùn)算結(jié)果寫入相應(yīng)的存儲(chǔ)器單元20,完成變量信息更新;下面描述本發(fā)明譯碼器的檢驗(yàn)節(jié)點(diǎn)運(yùn)算單元。如圖4所示的CNU單元結(jié)構(gòu)為本實(shí)施例所用的CNU單元結(jié)構(gòu),CNU單元31 到34均采用此結(jié)構(gòu)。CNU單元包括,x個(gè)査找表單元即圖4中的LUT301到30x, y個(gè)加法器單元311到31y, x個(gè)減法器單元321到32x, x個(gè)査找表單元331到 33x, z個(gè)異或單元341到34z以及x個(gè)異或單元351到35z。上述代表數(shù)值的字 母均為整數(shù),下同。上述CNU單元結(jié)構(gòu)依據(jù)式(1)至(10)設(shè)計(jì),上述x的值由上述H。矩陣和 H!矩陣中各行的行重的最大值決定,在本實(shí)施例中,由于如圖2所示,H。矩陣和 Hi矩陣中,行標(biāo)為2的子矩陣行中各行行重的最大值為4,其余各行行重皆為3, 所以將對(duì)應(yīng)行標(biāo)為2的子矩陣行的檢驗(yàn)節(jié)點(diǎn)運(yùn)算單元3中的x定為4,其余的檢驗(yàn) 節(jié)點(diǎn)運(yùn)算單元l、 2、 4中的x定為3,査找表單元301到30x用于式(1)、 (3)、(4)、 (8)中的甲函數(shù)運(yùn)算,并且,其輸出與加法器單元311到31 (y-l)的輸入 相連用于式(1)、 (3)、 (4)、 (8)中的求和,與減法器單元321到32x的輸入相 連用于式(6)和(8)中除去"=/的情況,而減法單元12 (1)到12 (x)的輸出 與查找表單元331到33x相連用于式(7)和(10)中的甲函數(shù)運(yùn)算;上述y為不 大于x的值,僅有加法器單元的個(gè)數(shù)為y,其用于式(1)、 (3)、 (4)、 (8)中的求 和與加法運(yùn)算,因此,上述y應(yīng)取不大于x的某值,可以分為幾級(jí)完成全部求和,當(dāng) 然該求和也可以用一個(gè)較復(fù)雜的多輸入加法器一次完成;上述z為異或單元341至 34z的個(gè)數(shù),其用于式(2)、 (5)、 (6)、 (9)的符號(hào)運(yùn)算,這些異或單元341到 34z可以釆取與上述加法器單元311到31y相同的排列結(jié)構(gòu),這是應(yīng)有z-y,當(dāng)然, z也可以取任意不大于x的值,異或單元351到35x用于式(6)和(9)中除去"=_/的情況。下面描述本發(fā)明譯碼器的變量節(jié)點(diǎn)運(yùn)算單元。如圖5所示的VNU單元結(jié)構(gòu)為本實(shí)施例所用的VNU單元結(jié)構(gòu),VNU單元41 到4r均采用此結(jié)構(gòu)。VNU單元具有w個(gè)加法器單元401至40w,"個(gè)減法器單 元411至41"和一個(gè)判決單元420。上述VNU結(jié)構(gòu)依據(jù)式(11)和(12)設(shè)計(jì),上述"的值由上述H。矩陣和Ht 矩陣中各列的列重的最大值決定,在本實(shí)施例中,由于如圖2所示,H。矩陣和 矩陣中,各子矩陣列中的列重最大值依次是1、 2、 2、 4、 4,所以將對(duì)應(yīng)的VNU單 元"到打中的"依次定為1、 2、 2、 4、 4;加法器單元20的個(gè)數(shù)w為不大于"的 值,其用于式(11)中的求和加法,因此,上述w應(yīng)取不大于"的某值,可以分為 幾級(jí)完成全部求和,當(dāng)然該求和也可以用一個(gè)較復(fù)雜的多輸入加法器一次完成;上述 "為減法器單元的個(gè)數(shù),其用于式(12)中的減法;判決單元420的輸入與加法器 40w的輸出相連,實(shí)現(xiàn)對(duì)丄(力)的判決。下面描述譯碼器的譯碼步驟。結(jié)合圖3所示的譯碼器結(jié)構(gòu)示意圖、圖4所示的CNU單元結(jié)構(gòu)圖及圖5所示 的VNU單元結(jié)構(gòu)圖,對(duì)迭代運(yùn)算順序和具體計(jì)算方法進(jìn)行說明。 初始化H。部分的步驟當(dāng)接收到來自信道的LDPC碼字后,首先,由控制器單元0控制執(zhí)行初始化步 驟。在H。部分的初始化步驟中,控制器單元0在存儲(chǔ)器單元10的每一個(gè)存儲(chǔ)器單 元中存儲(chǔ)式(11)中的-2。/CT2,其中,上述-2。/ —為每一個(gè)校驗(yàn)節(jié)點(diǎn)所屬列_/對(duì) 應(yīng)的從通信信道中接收的一組LDPC碼字中每個(gè)碼字、對(duì)應(yīng)的概率信息。根據(jù)式 (11)及式(12),令其參加相應(yīng)的運(yùn)算步驟。其值將作為"^)的初始值參加后述的校驗(yàn)節(jié)點(diǎn)更新運(yùn)算。并且,作為譯碼計(jì)算的第一個(gè)步驟,在H。部分的初始化步驟 中,控制器單元0還將對(duì)CNU單元31至3《和VNU單元41至單元4r復(fù)位。 第一迭代步驟這一部分的第一項(xiàng)任務(wù)是初始化Hi部分。與上述H。部分的初始化步驟類似, 由控制器單元0控制執(zhí)行初始化,控制器單元0在存儲(chǔ)器單元20的每一個(gè)存儲(chǔ)器單 元中存儲(chǔ)式(11)中的-2r/o"2。其值將作為Z(^》的初始值參加后述的CNU運(yùn)算。另一方面,由于在上述初始化H。部分的步驟中,已經(jīng)完成了對(duì)應(yīng)H。矩陣的所 有校驗(yàn)節(jié)點(diǎn) 的)的初始化,因此可以在本步驟中,在進(jìn)行初始化Ht部分的步驟的同時(shí),可以進(jìn)行與H。矩陣對(duì)應(yīng)的CNU運(yùn)算。如圖3所示的譯碼器中具有《個(gè)CNU單元,它們分別對(duì)應(yīng)H。矩陣和H!矩陣中 的《個(gè)子矩陣行,而上述每個(gè)子矩陣行中具有"行,因此對(duì)于上述每一個(gè)CNU單元 而言,需要分別對(duì)上述每一行進(jìn)行校驗(yàn)節(jié)點(diǎn)更新運(yùn)算,才能結(jié)束本步驟,而對(duì)于這《 個(gè)CNU而言,它們之間是并行運(yùn)算的。但是,由于插入了流水線,設(shè)流水線級(jí)數(shù)為 N,那么每一行的校驗(yàn)節(jié)點(diǎn)信息從輸入CNU單元到輸出CNU單元就需要N/的運(yùn)算時(shí)間,顯然這是一個(gè)群延遲,用T表示。所以,CNU完成本步驟的運(yùn)算時(shí)間應(yīng)為 (fl-l)W + T,如圖6所示。在本實(shí)施例中,T=4,。以第一個(gè)CNU單元31為例,在本步驟的第一個(gè)運(yùn)算周期中即T\內(nèi),其對(duì)用于 H。矩陣的行標(biāo)為0的子矩陣行的第一行內(nèi)的所有變量節(jié)點(diǎn)上的檢驗(yàn)信息求解的中間 信息4。和S。h。進(jìn)行運(yùn)算并更新。具體地,譯碼器進(jìn)行下述動(dòng)作Sl,如圖3所示的控制器單元0在L運(yùn)算周期 開始后,即控制將H。矩陣的行標(biāo)為0的子矩陣行中第一行的變量節(jié)點(diǎn)對(duì)應(yīng)的存儲(chǔ)器 單元10中的信息-20/0"2 ("1、 2…、x)讀出,將其作為式(1)和(2)中的丄(%)并行輸入至CNU單元31,然后,如圖4所示,進(jìn)行下述運(yùn)算過程Scl:將全部"^) 至丄(g。》的第一位作為符號(hào)位單獨(dú)計(jì)算,其余位被送入查找表單元301至30x,分 別求出式(1)中的^函數(shù),所述全部"^)至"&,)的位數(shù)一致,均依照希望的量 化程度設(shè)定;其后,由加法器311至31y完成式(1)中的求和運(yùn)算,由于在本第 一迭代步驟中,4^尚無數(shù)值,所以控制器O將其輸入O,其不影響求和結(jié)果,因此 該加法器31y的輸出即為式(1)所求的4&;另一方面,上述全部"^)至丄(g。,)的 第一位,由異或單元341至34z完成式(2)中的符號(hào)運(yùn)算,與上所述同理,S叫的 輸入被置0,不影響異或結(jié)果,因此該異或單元34z的輸出即為式(2)所求的S。h。。 由于該CNU單元的結(jié)構(gòu)將在后述迭代步驟中被重用,因此其結(jié)構(gòu)為式(l)、 (2)、 式(3)至式(7)、式(8)至式(10)的通用結(jié)構(gòu),從而,對(duì)于本第一迭代步驟中, 其減法器321至32x、査找表單元331至33x、異或單元351至35x是不必要的。 因此,對(duì)于經(jīng)減法器321至32x和查找表單元331至33x輸出的& ,無論將其存入存儲(chǔ)器10或20,或者不存入存儲(chǔ)器10或20,其均不介入后續(xù)運(yùn)算中。從而, 在第一運(yùn)算周期l結(jié)束時(shí),由控制器單元O控制,將CNU單元31輸出的數(shù)據(jù)存入 H。矩陣行標(biāo)為0的子矩陣行中第一行的變量節(jié)點(diǎn)對(duì)應(yīng)的存儲(chǔ)器單元10中的存儲(chǔ)單 元中,譯碼器完成動(dòng)作S1。與上述第一運(yùn)算周期1\相同,譯碼器還要在第二運(yùn)算周期T2至第a運(yùn)算周期 Ta內(nèi),分別重復(fù)以上S1的動(dòng)作,其中,CNU31要在第二運(yùn)算周期T2至第a運(yùn)算周 期Ta內(nèi),分別重復(fù)以上運(yùn)算過程Scl,由控制器O控制,輸入的信息應(yīng)為H。矩陣 中行標(biāo)為0的子矩陣行中余下的"-l行的各個(gè)變量節(jié)點(diǎn)的變量信息,輸出的信息應(yīng) 各自對(duì)應(yīng)H。矩陣行標(biāo)為0的子矩陣行中余下的a-l行的各個(gè)變量節(jié)點(diǎn)。根據(jù)本領(lǐng)域內(nèi)的公知技術(shù),在圖4所示的CNU單元結(jié)構(gòu)中可以插入流水線,從 而,上述^周期與T2周期的運(yùn)算在時(shí)間上可以有一部分重合,即當(dāng)L周期內(nèi)CNU中的査找表單元301向加法器單元311輸出數(shù)據(jù)開始求和運(yùn)算后,控制器O可以將 H。矩陣的行號(hào)為0的子矩陣行中第二行的變量節(jié)點(diǎn)對(duì)應(yīng)的存儲(chǔ)器10中的存儲(chǔ)單元 中的信息-2。/cr2 (;' = 1、 2…、x)讀出,將其作為式(1)和(2)中的Z(^)并行輸入至CNU單元31 ,并再次開始運(yùn)算過程Scl ,對(duì)用于H。矩陣的行標(biāo)為0的子矩 陣行的第二行內(nèi)的所有變量節(jié)點(diǎn)上的檢驗(yàn)信息求解的中間信息4^。(附=1、 2…、和S^。 (w=l、 2…、"-1)進(jìn)行運(yùn)算并更新。同理,T2周期與T3周期至T^ 周期與Ta周期均可在時(shí)間上重合,如圖6所示。由于CNU單元31與CNU單元32至CNU單元3《采用相同的結(jié)構(gòu),且在同一時(shí)刻并行運(yùn)算,因此它們之間的動(dòng)作特性是相同的,也可以說,在上述的^周期 至Ta周期內(nèi)進(jìn)行相同的運(yùn)算,只不過,CNU單元32至CNU單元3《的輸入信息應(yīng) 為H。矩陣中行標(biāo)為1至《的子矩陣行中"行的各個(gè)變量節(jié)點(diǎn)的變量信息,輸出的信 息應(yīng)各自對(duì)應(yīng)H。矩陣行標(biāo)為1至g的子矩陣行中的"行的各個(gè)變量節(jié)點(diǎn),對(duì)于它們 各自具體的運(yùn)算步驟等,將不再贅述。在后述說明中,也將釆取與上述類似的說明方 式,只說明一個(gè)具有代表性的運(yùn)算單元的動(dòng)作特性。至Ta周期動(dòng)作結(jié)束,完成了第一迭代步驟,對(duì)于用于后述檢驗(yàn)信息求解的中間 信息進(jìn)行了更新。第二迭代步驟以CNU單元31為例,在本步驟的第一個(gè)運(yùn)算周期中即1\內(nèi),其對(duì)t^矩陣的 行標(biāo)為0的子矩陣行的第一行內(nèi)的所有變量節(jié)點(diǎn)的校驗(yàn)信息i o,和中間信息4^、 S^進(jìn)行運(yùn)算并更新。具體地,譯碼器進(jìn)行下述動(dòng)作S2,如圖3所示的控制器單元0在1\運(yùn)算周期 開始后,即控制將Hi矩陣的行標(biāo)為0的子矩陣行中第一行的變量節(jié)點(diǎn)對(duì)應(yīng)的存儲(chǔ)器 單元20中的信息-2。/o"2 (/ = 1、 2…、x)和第一迭代步驟中求出的4w。、 & 。讀 出,將它們分別作為式(3)至式(6)中的變量"^》和式(4)及式(6)中的Ah。、 S^。并行輸入至CNU單元31,然后,如圖4所示,進(jìn)行下述運(yùn)算過程Sc2:與運(yùn) 算過程Scl類似地,將全部Z(^n)至丄(^J的第一位與S^。作為符號(hào)位單獨(dú)計(jì)算,其 余位被送入查找表單元301至30x,分別求出式(3)中的甲函數(shù),所述全部丄(^) 至"^J與4^。的位數(shù)均依flt希望的量化程度設(shè)定。其后,由加法器311至31 (y-1) 完成式(3)中的求和運(yùn)算,由加法器31y和減法器321至32x分別完成式(4) 中的加法和^y的運(yùn)算,加法器31 (y-l)的輸出即為式(3)所求《a,加法器 321至32x分別輸出式(4)所求的4^ () = 1、2、…、x);另一方面,上述全部"^)至"^c)的第一位與S。h。,由異或單元341至34 (z-l)完成式(6)中的符號(hào)運(yùn)算,由異或單元34z和異或單元351至35x分別完成式(6)中的符號(hào)運(yùn)算和"* _/的運(yùn) 算,異或單元34 (z-l)的輸出即為式(5)所求S, (m-O),異或單元351至 35x分別輸出式(6)所求的^ (附=0; y-l、2、…、x);并且,最后將、 (7' = 1、2、…、x)與其對(duì)應(yīng)的經(jīng)査找表單元331至33x輸出的各屮(0合并,作 為式(7)中的各i 叩(m = 0; 7 = 1么…、x)輸出,其中,、為與之相對(duì)應(yīng)的i^的第一位。在第一運(yùn)算周期L結(jié)束時(shí),由控制器單元0控制,將CNU單元31輸出的數(shù)據(jù) 存入Hi矩陣行標(biāo)為0的子矩陣行中第一行的變量節(jié)點(diǎn)對(duì)應(yīng)的存儲(chǔ)器單元20中的存 儲(chǔ)單元。同時(shí),CNU單元31產(chǎn)生的中間信息4^和S。巧也存入到對(duì)應(yīng)的存儲(chǔ)器單元20的存儲(chǔ)單元中,譯碼器完成動(dòng)作S2。與上述第一迭代步驟相同地,本迭代步驟中,譯碼器還要在第二運(yùn)算周期K至 第a運(yùn)算周期Ta內(nèi),分別重復(fù)以上動(dòng)作S2,其中,CNU單元31要在第二運(yùn)算周 期T2至第a運(yùn)算周期Ta內(nèi),分別重復(fù)上述運(yùn)算過程Sc2,但由控制器單元O控制, 輸入的信息應(yīng)為Hi矩陣中行標(biāo)為0的子矩陣行中余下的"-l行的各個(gè)變量節(jié)點(diǎn)的變 量信息與H。矩陣中行標(biāo)為0的子矩陣行中余下的"-l行中的用于校驗(yàn)信息求解的中 間信息Aw。(附=1、 2…、和S《(附=1、 2…、1),輸出的信息應(yīng)各自 對(duì)應(yīng)H工矩陣行標(biāo)為O的子矩陣行中余下的"-l行的各個(gè)變量節(jié)點(diǎn)。并且,T2周期與 Ts周期至周期與Ta周期均可在時(shí)間上重合,如圖6所示。另外,與上述第一迭代步驟相同地,本迭代步驟中,CNU單元31與CNU單元 32至CNU單元3《在上述的l周期至Ta周期內(nèi)進(jìn)行相同的運(yùn)算,其中,CNU單 元32至CNU單元3《的輸入信息應(yīng)為&矩陣中行標(biāo)為1至?的子矩陣行中a行的 各個(gè)變量節(jié)點(diǎn)的變量信息與H。矩陣中行標(biāo)為1至《的子矩陣行中"行的用于校驗(yàn)信 息求解的中間信息,輸出的信息應(yīng)各自對(duì)應(yīng)Hi矩陣行標(biāo)為1至《的子矩陣行中的"行 的各個(gè)變量節(jié)點(diǎn)。至Ta周期動(dòng)作結(jié)束,完成了第二迭代步驟,對(duì)于Hi矩陣中的所有變量節(jié)點(diǎn)上的 校驗(yàn)信息進(jìn)行了更新,并且更新了用于后述檢驗(yàn)信息求解的中間信息。 第三迭代步驟以CNU單元31為例,在本步驟的第一個(gè)運(yùn)算周期中即1\內(nèi),其對(duì)H。矩陣的 行標(biāo)為0子矩陣行的第一行內(nèi)的所有變量節(jié)點(diǎn)的校驗(yàn)信息i o,進(jìn)行運(yùn)算并更新。具體地,譯碼器進(jìn)行下述動(dòng)作S3,如圖3所示的控制器0在L運(yùn)算周期開始后,即控制將H。矩陣的行號(hào)為0的子矩陣行中第一行的變量節(jié)點(diǎn)對(duì)應(yīng)的存儲(chǔ)器單元 10中的存儲(chǔ)單元中的信息-2。/o"2 (/ = 1、 2…、x)和第二迭代步驟中求出的4^、S叫讀出,將它們分別作為式(8)和式(9)中的變量Z(^,)和4^,、 ^a并行輸入 至CNU單元31,然后,如圖4所示,進(jìn)行下述運(yùn)算過程Sc3:與運(yùn)算過程Scl、 Sc2類似地,將全部丄(^)至"^J的第一位與S。H,作為符號(hào)位單獨(dú)計(jì)算,其余位被送入査找表單元301至30x,分別求出式(8)中的甲函數(shù),所述全部丄(^)至丄(^J 與4A的位數(shù)均依照希望的量化程度設(shè)定。其后,由加法器311至31 (y-l)完成式(8)中的求和運(yùn)算,由加法器31y和減法器321至32x分別完成式(8)中的 加法和"*_/的運(yùn)箅,減法器321至32x分別輸出式(10)所求的《(m = 0; 7 = 1、2、…、x);另一方面,上述全部A^)至i:(《。J的第一位與S叫,由異或單元341至34z和異或單元351至35x完成式(9)中的符號(hào)運(yùn)算和n^/的運(yùn)算,異或 單元351至35x分別輸出式(9)所求的S叫(w = 0; y = l、2、…、x);并且,最 后將 與其對(duì)應(yīng)的經(jīng)査找表單元331至33x輸出的各甲(4^)合并,作為式(10) 中的各^ (m = 0; 7 = 1、2、…、x)輸出,上述各&分別為與之相對(duì)應(yīng)的各&的第一位。在第一運(yùn)算周期Ti結(jié)束時(shí),由控制器單元O控制,將CNU單元31輸出的數(shù)據(jù) 存入H。矩陣行標(biāo)為0的子矩陣中第一行的變量節(jié)點(diǎn)對(duì)應(yīng)的存儲(chǔ)器單元10中的存儲(chǔ) 單元,譯碼器完成動(dòng)作S3。與上述第一迭代步驟和第二迭代步驟相同地,本迭代步驟中,譯碼器還要在第二 運(yùn)算周期T2至第a運(yùn)算周期Ta內(nèi),分別重復(fù)以上動(dòng)作S3,其中CNU單元31要在 第二運(yùn)算期T2至第a運(yùn)算周期Ta內(nèi),分別重復(fù)上述運(yùn)算過程Sc3,但由控制器單 元0控制,輸入的信息應(yīng)為H。矩陣中行標(biāo)為0的子矩陣行中余下的"-l行的各個(gè)變 量節(jié)點(diǎn)的變量信息與矩陣中行標(biāo)為0的子矩陣行中余下的"-l行中的用于校驗(yàn)信 息求解的中間信息,輸出的信息應(yīng)各自對(duì)應(yīng)H。矩陣行標(biāo)為0的子矩陣行中余下的 "-l行的各個(gè)變量節(jié)點(diǎn)。并且,T2周期與T3周期至T^周期與Ta周期均可在時(shí)間 上重合,如圖6所示。另夕卜,與上述第一迭代步驟相同地,本迭代步驟中,CNU單元31與CNU單元 32至CNU單元3《在上述的^周期至Ta周期內(nèi)進(jìn)行相同的運(yùn)算,其中,CNU單 元32至CNU單元3《的輸入信息應(yīng)為H。矩陣中行標(biāo)為1至《的子矩陣行中"行的 各個(gè)變量節(jié)點(diǎn)的變量信息與Hi矩陣中行標(biāo)為1至《的子矩陣行中"行的用于校驗(yàn)信 息求解的中間信息,輸出的信息應(yīng)各自對(duì)應(yīng)H。矩陣行標(biāo)為1至9的子矩陣行中的"行的各個(gè)變量節(jié)點(diǎn)。至Ta周期動(dòng)作結(jié)束,對(duì)于H。矩陣中的各個(gè)校變量點(diǎn)上的校驗(yàn)信息進(jìn)行了更新。至此,也完成了 H矩陣各個(gè)變量節(jié)點(diǎn)上的所有檢驗(yàn)信息的第一次更新。另一方面,由于當(dāng)?shù)诙襟E中的Ta周期動(dòng)作結(jié)束時(shí),已經(jīng)對(duì)與Hi矩陣中各個(gè)變量節(jié)點(diǎn)對(duì)應(yīng)的存儲(chǔ)器單元20的存儲(chǔ)單元中的所有及w進(jìn)行了更新,即式(11) 和式(12)的運(yùn)算條件已經(jīng)滿足,因此,在本迭代步驟中,對(duì)H。矩陣進(jìn)行校驗(yàn)節(jié)點(diǎn) 更新運(yùn)算的同時(shí),可以并行地對(duì)矩陣進(jìn)行變量節(jié)點(diǎn)更新運(yùn)算。以VNU單元41為例,具體地,譯碼器進(jìn)行下述動(dòng)作S4,如圖3所示的控制器 單元0在1\周期開始后,控制將f^矩陣的列標(biāo)為1的子矩陣列中第一列的校驗(yàn)節(jié) 點(diǎn)對(duì)應(yīng)的存儲(chǔ)器單元20中的存儲(chǔ)單元中的信息-2^/^和第二迭代步驟中求出的(m=l、 2…、")讀出,將它們分別作為式(11)和式(12)中的變量,如圖5所示,并行輸入至VNU單元41,然后,進(jìn)行下述運(yùn)算過程Svl:由加法器401 至40 (w-l)完成式(11)中&的累加運(yùn)算,由加法器40w完成式(11)中&累 加之和與-2^/0"2的加法運(yùn)算,算出Z(力),經(jīng)判決單元420即輸出譯碼結(jié)果;c",由 減法器411至41w完成式(12)的運(yùn)算,輸出"~)。為了便于時(shí)序的配合,在本實(shí)施例中,變量節(jié)點(diǎn)運(yùn)算單元的運(yùn)算周期與檢驗(yàn)節(jié)點(diǎn)運(yùn)算單元的運(yùn)算周期相同。在上述第一運(yùn)算周期1\結(jié)束時(shí),由控制器單元0控制,將VNU單元41輸出的 數(shù)據(jù)存入Hi矩陣列標(biāo)為1的子矩陣列中第一列的校驗(yàn)節(jié)點(diǎn)對(duì)應(yīng)的存儲(chǔ)器單元20中 的存儲(chǔ)單元中,譯碼器完成動(dòng)作S4。與上述其它迭代步驟相同地,本迭代步驟中,譯碼器還要在第二運(yùn)算周期丁2至 第a運(yùn)算周期Ta內(nèi),分別重復(fù)以上動(dòng)作S4,其中,VNU單元41還要在第二運(yùn)算 周期T2至第a運(yùn)算周期Ta內(nèi),分別重復(fù)以上動(dòng)作Svl,但由控制器單元O控制,輸 入的信息應(yīng)為Hi矩陣中列標(biāo)為1的子矩陣列中余下的fl-l列的各個(gè)校驗(yàn)節(jié)點(diǎn)的校驗(yàn) 信息,輸出的信息應(yīng)各自對(duì)應(yīng)Hi矩陣列標(biāo)為1的子矩陣列中余下的"-l列的各個(gè)校 驗(yàn)節(jié)點(diǎn)。并且,T2周期與T3周期至T^周期與Ta周期均可在時(shí)間上重合,如圖6所 示。另外,與上述其它迭代步驟相同地,本迭代步驟中,VNU單元41與VNU單元 42至VNU單元4r在上述的Ti周期至Ta周期內(nèi)進(jìn)行相同的運(yùn)算,其中,VNU單元 42至VNU單元4r的輸入信息應(yīng)為Hi矩陣中列標(biāo)為3到6 (6為奇數(shù))的子矩陣 列中"列的各個(gè)校驗(yàn)節(jié)點(diǎn)的校驗(yàn)信息,輸出的信息應(yīng)各自對(duì)應(yīng)Hi矩陣列標(biāo)為3至6的 子矩陣中的fl列的各個(gè)校驗(yàn)節(jié)點(diǎn)。在此處,當(dāng)需運(yùn)算列的列重小于",即輸入的&的有效個(gè)數(shù)小于VNU的輸入 端口個(gè)數(shù),則將此外的無效輸入端口的輸入設(shè)為O,亦不影響運(yùn)算輸出結(jié)果,對(duì)于此 種情況,對(duì)后述的VNU運(yùn)算均適用。至Ta周期動(dòng)作結(jié)束,完成了第三迭代步驟,對(duì)于f^矩陣中的各個(gè)校驗(yàn)節(jié)點(diǎn)上的 變量信息進(jìn)行了更新。第四迭代步驟由于當(dāng)?shù)谌襟E中的校驗(yàn)節(jié)點(diǎn)更新運(yùn)算的Ta周期動(dòng)作結(jié)束時(shí),已經(jīng)對(duì)與H。 矩陣中各個(gè)變量節(jié)點(diǎn)對(duì)應(yīng)的存儲(chǔ)器單元10的存儲(chǔ)單元中的所有i^進(jìn)行了更新,即 式(11)和式(12)的計(jì)算條件已經(jīng)滿足,并且,VNU單元的流水線機(jī)構(gòu)使其有能 力開始新的運(yùn)算。因此,在本迭代步驟中,進(jìn)行對(duì)H。矩陣的變量節(jié)點(diǎn)更新運(yùn)算。以VNU單元41為例,具體地,譯碼器進(jìn)行下述動(dòng)作S5,如圖3所示的控制器 單元0在1\周期開始后,控制將H。矩陣的列號(hào)為0的子矩陣列中第一列的變量節(jié) 點(diǎn)對(duì)應(yīng)的存儲(chǔ)器單元10中的存儲(chǔ)單元中的信息-2^/^和第三迭代步驟中求出的 (m = l、 2…、")讀出,將它們分別作為式(11)和式(12)中的變量,如圖 5所示,并行輸入至VNU單元41,然后,進(jìn)行運(yùn)算過程Sv2,其動(dòng)作特性與運(yùn)算 過程Svl相同。在上述第一運(yùn)算周期l結(jié)束時(shí),由控制器單元O控制,將VNU單元41輸出的 數(shù)據(jù)存入Hi矩陣列標(biāo)為0的子矩陣列中第一列的變量節(jié)點(diǎn)對(duì)應(yīng)的存儲(chǔ)器單元10中 的存儲(chǔ)單元中。與上述其它迭代步驟相同地,本迭代步驟中,譯碼器還要在第二運(yùn)算周期Ts至 第a運(yùn)算周期Ta內(nèi),分別重復(fù)以上動(dòng)作S5,其中VNU單元41還要在第二運(yùn)算周 期T2至第a運(yùn)算周期Ta內(nèi),順序重復(fù)以上動(dòng)作Sv2,但由控制器單元0控制,輸入 的信息應(yīng)為H。矩陣列標(biāo)為0的子矩陣列中余下的"-l列的各個(gè)校驗(yàn)節(jié)點(diǎn)的校驗(yàn)信 息,輸出的信息應(yīng)各自對(duì)應(yīng)Hi矩陣列標(biāo)為1的子矩陣列中余下的"-l列的各個(gè)校驗(yàn) 節(jié)點(diǎn)。并且,T2周期與Ts周期至T^周期與Ta周期均可在時(shí)間上重合,如圖6所示。另外,與上述其它迭代步驟相同地,本迭代步驟中,VNU單元41與VNU單元 42至單元4r在上述的1\周期至Ta周期內(nèi)進(jìn)行相同的運(yùn)算,其中,VNU單元42至 單元4r的輸入信息應(yīng)為H。矩陣中列標(biāo)為2到"("為偶數(shù))的子矩陣列中"列的各 個(gè)校驗(yàn)節(jié)點(diǎn)的校驗(yàn)信息,輸出的信息應(yīng)各自對(duì)應(yīng)H。矩陣列標(biāo)為2到"的子矩陣列的" 列的各個(gè)校驗(yàn)節(jié)點(diǎn)。至Ta周期動(dòng)作結(jié)束,完成了第四迭代步驟,對(duì)于H。矩陣中的各個(gè)校驗(yàn)節(jié)點(diǎn)上的變量信息進(jìn)行了更新。從第一迭代步驟開始至此,完成了第一個(gè)迭代周期。 其它迭代步驟及迭代周期另一方面,由于當(dāng)?shù)谌襟E中的變量節(jié)點(diǎn)更新的Ta周期動(dòng)作結(jié)束時(shí),已經(jīng) 對(duì)與Hi矩陣中各個(gè)校驗(yàn)節(jié)點(diǎn)對(duì)應(yīng)的存儲(chǔ)器單元20的存儲(chǔ)單元中的所有丄(^》進(jìn)行了更新,即式(1)和式(2)的運(yùn)箅條件已經(jīng)滿足,因此,可以開始對(duì)Hi矩陣進(jìn)行 CNU運(yùn)算,具體地,對(duì)J^矩陣進(jìn)行水平過程的a步運(yùn)算,在此也即開始了第二迭 代周期。并且,由上可知,第一迭代周期與第二迭代周期在時(shí)間上也是有重合的。第二迭代周期中的各迭代步驟仍參照第一迭代周期中的各迭代步驟,但譯碼器的 具體操作對(duì)象將對(duì)應(yīng)已完成的變量節(jié)點(diǎn)更新運(yùn)算或校驗(yàn)節(jié)點(diǎn)更新運(yùn)算的1^矩陣或 H。矩陣,具體地,在第二迭代周期中第一迭代步驟,譯碼器的動(dòng)作依照第一運(yùn)算 周期中的動(dòng)作Sl ,各CNU單元的運(yùn)算過程Scl不變,只是對(duì)于各CNU單元的輸 入輸出信息,由控制器單元O控制,輸入信息應(yīng)為Hi矩陣中各子矩陣行的fl行的各 變量節(jié)點(diǎn)的變量信息,輸出的信息應(yīng)各自對(duì)應(yīng)Hi矩陣中各子矩陣行的"行的各個(gè)變 量節(jié)點(diǎn);第二迭代步驟,譯碼器的動(dòng)作依照第一運(yùn)算周期中的動(dòng)作S2,各CNU單 元的運(yùn)算過程Sc2不變,只是對(duì)于各CNU單元的輸入輸出信息,由控制器O控制, 輸入信息應(yīng)為H。矩陣中各子矩陣行的fl行的各變量節(jié)點(diǎn)的變量信息與^矩陣中各子 矩陣行中"行的用于校驗(yàn)信息求解的中間信息,輸出的信息應(yīng)各自對(duì)應(yīng)H。矩陣中各 子矩陣行的"行的各個(gè)變量節(jié)點(diǎn);第三迭代步驟,譯碼器的動(dòng)作依照第一運(yùn)算周期中 的動(dòng)作S3,各CNU單元的運(yùn)算過程Sc3不變,只是對(duì)于各CNU單元的輸入輸出 信息,由控制器單元O控制,輸入信息應(yīng)為Ht矩陣中各子矩陣行的fl行的各變量節(jié) 點(diǎn)的變量信息與H。矩陣中各子矩陣行中fl行的用于校驗(yàn)信息求解的中間信息,輸出 的信息應(yīng)各自對(duì)應(yīng)H,矩陣中各子矩陣行的fl行的各個(gè)變量節(jié)點(diǎn);而對(duì)于并行進(jìn)行的 變量節(jié)點(diǎn)更新運(yùn)算,譯碼器的動(dòng)作依照第一運(yùn)算周期中的動(dòng)作S4,各VNU單元的 運(yùn)算過程Svl不變,只是對(duì)于各VNU單元的輸入輸出信息,由控制器單元O控制, 輸入信息應(yīng)為H。矩陣中列標(biāo)為0到a (fl為偶數(shù))的子矩陣列中"列的各個(gè)校驗(yàn)節(jié) 點(diǎn)的校驗(yàn)信息,輸出的信息應(yīng)各自對(duì)應(yīng)H。矩陣列標(biāo)為0到a的子矩陣列的"列的各 個(gè)校驗(yàn)節(jié)點(diǎn);第四迭代步驟,譯碼器的動(dòng)作依照第一運(yùn)算周期中的動(dòng)作S5,各VNU 單元的運(yùn)算過程Sv2不變,只是對(duì)于各VNU單元的輸入輸出信息,由控制器0控 制,輸入信息應(yīng)為Hi矩陣中列標(biāo)為1到6 (6為奇數(shù))的子矩陣列中"列的各個(gè)校 驗(yàn)節(jié)點(diǎn)的校驗(yàn)信息,輸出的信息應(yīng)各自對(duì)應(yīng)Hi矩陣列標(biāo)為1到6的子矩陣列的"列的各個(gè)校驗(yàn)節(jié)點(diǎn)。其它的迭代周期均如上述的第一及第二迭代周期所述,交替對(duì)H。矩陣和Hi矩 陣中的校驗(yàn)節(jié)點(diǎn)和變量節(jié)點(diǎn)的變量信息和校驗(yàn)信息進(jìn)行運(yùn)算更新,其中譯碼器的更新 對(duì)象,參照?qǐng)D6的第n迭代周期及第n+l迭代周期的迭代步驟示意圖及圖7的迭代 順序示意圖。以上的迭代運(yùn)算,由控制器單元O控制,在第m迭代周期的第四迭代步驟中的 Ta周期動(dòng)作結(jié)束時(shí)停止,其中m為預(yù)先設(shè)置的最大迭代次數(shù)。并且在該第m迭代周期的第三、第四迭代周期中,控制單元O將各個(gè)VNU單 元"至4r中的判決單元420對(duì)應(yīng)加法器單元40w算出的"力)而輸出的判決結(jié)果^讀出,按照原H矩陣的列順序排列并輸出,完成一組LDPC碼字的譯碼。上述譯碼器譯碼步驟的流程圖如圖8所示。 實(shí)施例2:在實(shí)施例1所述的譯碼器的CNU單元結(jié)構(gòu)的基礎(chǔ)上,加入了計(jì)算Wx;c-O的單 元。具體地,在保持實(shí)施例2的CNU單元結(jié)構(gòu)不變的情況下,加入了 s個(gè)異或單元, 如原CNU的實(shí)施例2中的z個(gè)異或單元的排列結(jié)構(gòu)而排列,目的在于對(duì)輸入CNU 的x+l個(gè)一位信息進(jìn)行異或,并輸出一位的異或結(jié)果。根據(jù)實(shí)施例2對(duì)實(shí)施例1的CNU單元結(jié)構(gòu)的修改,需對(duì)譯碼器的控制器單元0 的控制進(jìn)行一定調(diào)整,即在保持譯碼器譯碼步驟的實(shí)施例?的時(shí)序不變的情況下,在 后一個(gè)迭代周期的CNU運(yùn)算的同時(shí),對(duì)前一個(gè)迭代周期求出的&,進(jìn)行//>^ = 0計(jì)算,若該等式成立,則由控制器單元0發(fā)出指令停止當(dāng)前迭代,輸出前一個(gè)迭代周 期的x",作為譯碼結(jié)果。具體地,在前一個(gè)迭代周期中,由控制器單元O控制,將VNU在第三、第四迭 代步驟中輸出的、分別存入存儲(chǔ)器單元10、 20中與x"所在列對(duì)應(yīng)的存儲(chǔ)單元中; 在后一個(gè)迭代周期的第一個(gè)迭代周期中,在進(jìn)行H。矩陣或Hi矩陣校驗(yàn)節(jié)點(diǎn)更新運(yùn) 算的同時(shí),利用上述的本實(shí)施例3的CNU結(jié)構(gòu)中增加的異或單元,對(duì)存儲(chǔ)于存儲(chǔ)器 單元10或存儲(chǔ)器單元20中的需進(jìn)行校驗(yàn)節(jié)點(diǎn)更新運(yùn)算的H。矩陣或Hi矩陣的一行 的變量節(jié)點(diǎn)對(duì)應(yīng)的x"進(jìn)行異或計(jì)算,并在運(yùn)算周期T結(jié)束時(shí),由控制器單元O對(duì)異或計(jì)算的結(jié)果進(jìn)行寄存;在第二迭代周期中,對(duì)與上述的進(jìn)行校驗(yàn)節(jié)點(diǎn)更新處理的 H。矩陣或Ht矩陣的一行對(duì)應(yīng)的&矩陣或H。矩陣的該行,進(jìn)行CNU運(yùn)算的同時(shí), 對(duì)存儲(chǔ)于存儲(chǔ)器單元20或單元10中的該行的變量節(jié)點(diǎn)對(duì)應(yīng)的jc ,和由控制器單元 0寄存的異或計(jì)算的結(jié)果,進(jìn)行異或計(jì)算,完成原H矩陣中該行的所有變量節(jié)點(diǎn)對(duì)應(yīng)的&的異或計(jì)算。如上所述,通過上述異或計(jì)算,從后一迭代周期的第二迭代步驟 中的l周期到Ta周期,即完成了//" = 0的計(jì)算,若所有行的異或結(jié)果均為0,則說明等式成立,符合迭代停止條件。從而,由控制器單元0控制CNU單元與VNU 單元的所有迭代運(yùn)算停止,并按原H矩陣的列順序取出存儲(chǔ)器單元20和單元10的 x ,作為譯碼結(jié)果輸出。上述譯碼器譯碼步驟的流程圖如圖9所示。實(shí)施例3:此實(shí)施例描述了矩陣分裂的另一種方式以及相應(yīng)的譯碼步驟。圖10為對(duì)LDPC譯碼所用的奇偶校驗(yàn)矩陣,即H矩陣分裂為三個(gè)新矩陣的分 裂方法。具體的分割方法為,將H矩陣中列標(biāo)為0的子矩陣列(4。4…4。)t抽出 作為H。矩陣的第一個(gè)子矩陣列,將H矩陣中列標(biāo)為1的子矩陣列(J^ 4, A,)t抽 出作為Hi矩陣的第一個(gè)子矩陣列,將H矩陣中列標(biāo)為2的子矩陣列(42 4,…《2)T 抽出作為H2矩陣的第一個(gè)子矩陣列;按照相同方法,順序地將H矩陣中的子矩陣列 抽出交替地放入H。矩陣、Hi矩陣及H2矩陣,上述子矩陣列依照H矩陣中的原有順 序,分別在新矩陣H。、 Hi和H2中排列。由此,對(duì)完成分裂后的H。矩陣、^矩陣 和H2矩陣而言,它們各自的行數(shù)保持不變與原H矩陣相同,而列數(shù)各為原H矩陣 的1/3左右,其各自的具體列數(shù)如圖IO所示,其中H。的列數(shù)是4,其中A的列數(shù) 是3,其中H2的列數(shù)是3。根據(jù)本實(shí)施例3中的矩陣分裂方法,對(duì)譯碼器中的CNU的個(gè)數(shù)為4, VNU的 個(gè)數(shù)為4,分別對(duì)應(yīng)H。矩陣、H,矩陣和H2矩陣的子矩陣行的行數(shù)和H。矩陣、& 矩陣和H2矩陣的子矩陣列的列數(shù)最大值。此外,CNU單元的結(jié)構(gòu)中,具體運(yùn)算單元 的個(gè)數(shù),可參照實(shí)施例1中的相應(yīng)部分設(shè)置;VNU單元的結(jié)構(gòu)中,具體運(yùn)算單元的 個(gè)數(shù),可參照實(shí)施例1中的相應(yīng)部分設(shè)置進(jìn)行設(shè)置。此外,上述的譯碼器的譯碼步驟,以矩陣的分裂方法為依據(jù),可參照實(shí)施例1 中譯碼器的譯碼步驟實(shí)施, 一個(gè)迭代周期共有六個(gè)迭代步驟,迭代步驟的更新對(duì)象如 圖11所示。譯碼器及其譯碼步驟的設(shè)計(jì)方案是本領(lǐng)域內(nèi)普通技術(shù)人員依據(jù)上述說明 很容易想到的,不再贅述。
權(quán)利要求
1一種基于奇偶檢驗(yàn)矩陣的LDPC碼的譯碼方法,其所應(yīng)用的奇偶校驗(yàn)矩陣被劃分為p×q個(gè)大小為a×a的子塊,每個(gè)子塊都用循環(huán)行列式或0矩陣填充,其特征在于首先,將所述奇偶校驗(yàn)矩陣進(jìn)行分裂,得到多個(gè)新矩陣;其次,對(duì)所述多個(gè)新矩陣進(jìn)行譯碼,即基于分裂后的單個(gè)新矩陣配置校驗(yàn)節(jié)點(diǎn)更新單元CNU和變量節(jié)點(diǎn)更新單元VNU,并安排校驗(yàn)節(jié)點(diǎn)更新運(yùn)算和變量節(jié)點(diǎn)更新運(yùn)算,使其分別對(duì)各個(gè)新矩陣進(jìn)行中間信息的運(yùn)算后,更新原來整個(gè)的奇偶校驗(yàn)矩陣的校驗(yàn)節(jié)點(diǎn)信息和變量節(jié)點(diǎn)信息,并重復(fù)以上運(yùn)算步驟進(jìn)行迭代,直至譯碼成功或達(dá)最大迭代次數(shù)時(shí)結(jié)束。
2. 根據(jù)權(quán)利要求1所述的一種基于奇偶檢驗(yàn)矩陣的LDPC碼的譯碼方法,其特 征在于所述基于矩陣分裂后的多個(gè)新矩陣進(jìn)行的譯碼,為迭代譯碼,分為以下步驟 步驟1:分別地、順序地對(duì)各個(gè)新矩陣的用于更新校驗(yàn)信息的中間信息進(jìn)行更新, 所述校驗(yàn)信息為與各個(gè)新矩陣的各檢驗(yàn)節(jié)點(diǎn)相關(guān)的變量節(jié)點(diǎn)上的信息,所述各行中的變量節(jié)點(diǎn)為各個(gè)新矩陣中的各行中數(shù)值為"1"的位置;步驟2:根據(jù)所述的各個(gè)新矩陣更新后的全部中間信息,順序?qū)Ω鱾€(gè)新矩陣的校驗(yàn)信息進(jìn)行更新;步驟3:根據(jù)各個(gè)新矩陣更新后的校驗(yàn)信息,順序?qū)Ω鱾€(gè)新矩陣中的變量信息進(jìn) 行更新,所述變量信息為與各個(gè)新矩陣的各變量節(jié)點(diǎn)相關(guān)的校驗(yàn)節(jié)點(diǎn)上的信息,所述 各行中的校驗(yàn)節(jié)點(diǎn)為各個(gè)新矩陣中的各列中數(shù)值為"1"的位置;步驟4:重復(fù)所述步驟1至步驟3,進(jìn)行迭代,直到譯碼成功或滿足迭代停止條件。
3. 根據(jù)權(quán)利要求1所述的一種基于奇偶檢驗(yàn)矩陣的LDPC碼的譯碼方法,其特 征在于所述基于矩陣分裂后的多個(gè)新矩陣進(jìn)行的譯碼,為迭代譯碼,具有以下步驟 步驟1 分別地、順序地對(duì)各個(gè)新矩陣的用于更新校驗(yàn)信息的中間信息進(jìn)行更新,所述校驗(yàn)信息為與各個(gè)親斤矩陣的各檢驗(yàn)節(jié)點(diǎn)相關(guān)的變量節(jié)點(diǎn)上的信息,所述各行中的變量節(jié)點(diǎn)為各個(gè)新矩陣中的各行中數(shù)值為"1"的位置;步驟2:根據(jù)所述的各個(gè)新矩陣更新后的全部中間信息,順序?qū)Ω鱾€(gè)新矩陣的校 驗(yàn)信息進(jìn)行更新;步驟3:根據(jù)每個(gè)新矩陣更新后的校驗(yàn)信息,在步驟2順序?qū)ζ渌戮仃嚨男r?yàn) 信息進(jìn)行更新的同時(shí),對(duì)已更新了校驗(yàn)信息的新矩陣中的變量信息進(jìn)行更新,所述變 量信息為與各個(gè)新矩陣的各變量節(jié)點(diǎn)相關(guān)的校驗(yàn)節(jié)點(diǎn)上的信息,所述各行中的校驗(yàn)節(jié) 點(diǎn)為各個(gè)新矩陣中的各列中數(shù)值為"1"的位置;步驟4:重復(fù)所述步驟1至步驟3,進(jìn)行迭代,直到譯碼成功或滿足迭代停止條件。
4. 根據(jù)權(quán)利要求1或2、 3所述的一種基于奇偶檢驗(yàn)矩陣的LDPC碼的譯碼方 法,其特征在于,所述的矩陣分裂為將奇偶校驗(yàn)矩陣的奇數(shù)列塊和偶數(shù)列塊分塊,并 分別組成兩個(gè)新矩陣的奇偶分裂方法,所述列塊為具有相同列位置的子塊的集合。
5. 根據(jù)權(quán)利要求1或2、 3所述的一種基于奇偶檢驗(yàn)矩陣的LDPC碼的譯碼方法,其特征在于,所述的矩陣分裂為將校驗(yàn)矩陣的列塊分別按0、 1、 2順序循環(huán)編 號(hào),并將編號(hào)為0、 1、 2的列塊分別組成三個(gè)新矩陣的分裂方法,所述列塊為具有 相同列位置的子塊的集合。
6. —種應(yīng)用權(quán)利要求1所述基于奇偶檢驗(yàn)矩陣的LDPC碼的譯碼方法的譯碼器, 主要包括校驗(yàn)節(jié)點(diǎn)更新單元CNU,其對(duì)所述各個(gè)新矩陣中各行的校驗(yàn)信息以及用 于所述校驗(yàn)信息計(jì)算的中間信息進(jìn)行計(jì)箅;變量節(jié)點(diǎn)更新單元VNU,其對(duì)所述各個(gè)新矩陣中各列的變量信息進(jìn)行計(jì)算;存儲(chǔ)器,其對(duì)應(yīng)所述各個(gè)新矩陣的所有校驗(yàn)節(jié)點(diǎn) 和變量節(jié)點(diǎn),存儲(chǔ)校驗(yàn)信息、變量信息、譯碼器輸入信息和譯碼結(jié)果;控制器,其對(duì)所述校驗(yàn)節(jié)點(diǎn)更新單元和變量節(jié)點(diǎn)更新單元的運(yùn)算進(jìn)行定序,并對(duì)它們與存儲(chǔ)器間的數(shù)據(jù)交換進(jìn)行控制;其特征在于所述校驗(yàn)節(jié)點(diǎn)更新單元的個(gè)數(shù)被配置為等于所述各個(gè)新矩陣的行塊個(gè)數(shù)q;所述變量節(jié)點(diǎn)更新單元的個(gè)數(shù)被配置為等于各個(gè)新矩陣的列塊個(gè)數(shù)的最大值r; 所述存儲(chǔ)器還存儲(chǔ)用于譯碼的中間信息;所述控制器被配置為,控制q個(gè)校驗(yàn)節(jié)點(diǎn)更新單元,對(duì)應(yīng)所述各個(gè)新矩陣中q 個(gè)子矩陣行中的a行,在a次校驗(yàn)信息和用于校驗(yàn)信息計(jì)算的中間信息的計(jì)算中進(jìn) 行復(fù)用;控制r個(gè)變量節(jié)點(diǎn)更新單元,對(duì)應(yīng)所述各個(gè)新矩陣中r個(gè)子矩陣行中的a列, 在a次變量信息的計(jì)算中進(jìn)行復(fù)用。
7. 根據(jù)權(quán)利要求6所述的一種基于奇偶檢驗(yàn)矩陣的LDPC碼的譯碼器,其特征在于,所述q個(gè)校驗(yàn)節(jié)點(diǎn)更新單元包括第一查找表單元,其采用査找表方式,將所述各個(gè)新矩陣的各行的變量節(jié)點(diǎn)的變 量信息轉(zhuǎn)換為概率值,其個(gè)數(shù)由所屬各個(gè)新矩陣的各行的變量節(jié)點(diǎn)的個(gè)數(shù)決定-,加法器單元,其對(duì)所述第一査找表單元輸出的概率值求和;減法器單元;其個(gè)數(shù)與所述第一査找表單元個(gè)數(shù)相同,均以所述加法器單元輸出 的所述概率值的和為被減數(shù),分別減去所述第一查找表單元輸出的所述概率值;第二査找表單元,其個(gè)數(shù)與所述第一查找表單元及所述減法器單元的個(gè)數(shù)相同, 其輸入與所述減法器單元的輸出相連,以與第一查找表相同的方式,將其輸入轉(zhuǎn)換為 概率值;第一符號(hào)運(yùn)算單元,其對(duì)所述各個(gè)新矩陣各行的變量節(jié)點(diǎn)的變量信息的符號(hào)為進(jìn) 行符號(hào)運(yùn)算;第二符號(hào)運(yùn)算單元,其個(gè)數(shù)與所述減法器單元的個(gè)數(shù)相同,其從所述第一符號(hào)運(yùn) 箅單元輸出的符號(hào)運(yùn)算的結(jié)果中,分別剔除掉所述各個(gè)新矩陣各行的變量節(jié)點(diǎn)的變量信息的符號(hào)。
8. 根據(jù)權(quán)利要求6或7所述的一種基于奇偶檢驗(yàn)矩陣的LDPC碼的譯碼器, 其特征在于,所述譯碼器中的校驗(yàn)節(jié)點(diǎn)更新單元還具有驗(yàn)算單元,其對(duì)當(dāng)前譯碼結(jié) 果是否正確進(jìn)行驗(yàn)算;所述控制器,艮據(jù)所述驗(yàn)算單元的結(jié)果,控制譯碼器繼續(xù)進(jìn)行譯 碼計(jì)算或者停止譯碼,輸出所述譯碼結(jié)果。
9. 根據(jù)權(quán)利要求6所述的一種基于奇偶檢驗(yàn)矩陣的LDPC碼的譯碼器,其特征 在于,所述r個(gè)變量節(jié)點(diǎn)更新單元包括第一加法器單元,其對(duì)所述各個(gè)新矩陣的各列的校驗(yàn)節(jié)點(diǎn)的校驗(yàn)信息求和; 減法器單元,其以所述第一加法器單元輸出的和為被減數(shù),分別減去所述各個(gè)新 矩陣的各列的校驗(yàn)節(jié)點(diǎn)的所述各個(gè)校驗(yàn)信息;第二加法器單元,其將所述第一加法器單元的和與所述譯碼器輸入信息進(jìn)行加法;判決單元,其對(duì)所述第二加法器單元的輸出進(jìn)行判決,得到譯碼結(jié)果。
10. 根據(jù)權(quán)利要求6或7、 9所述的一種基于奇偶檢驗(yàn)矩陣的LDPC碼的譯碼 器,其特征在于,所述q個(gè)校驗(yàn)節(jié)點(diǎn)更新單元或所述r個(gè)變量節(jié)點(diǎn)更新單元中被配置 插入了流水線,利用所述流水線,可以在同一時(shí)刻對(duì)所述q個(gè)校驗(yàn)節(jié)點(diǎn)更新單元或所 述r個(gè)變量節(jié)點(diǎn)更新單元進(jìn)行流水線操作,各自進(jìn)行相應(yīng)的運(yùn)算。
全文摘要
本發(fā)明提供了一種基于對(duì)奇偶校驗(yàn)矩陣進(jìn)行矩陣分裂的LDPC譯碼方法和譯碼器。首先,將矩陣進(jìn)行分裂;基于分裂后的單個(gè)新矩陣配置校驗(yàn)節(jié)點(diǎn)更新單元(CNU)和變量節(jié)點(diǎn)更新單元(VNU),并安排校驗(yàn)節(jié)點(diǎn)更新運(yùn)算和變量節(jié)點(diǎn)更新運(yùn)算,使其分別對(duì)各個(gè)新矩陣進(jìn)行中間信息的運(yùn)算后,更新原來整個(gè)的奇偶校驗(yàn)矩陣的校驗(yàn)節(jié)點(diǎn)信息和變量節(jié)點(diǎn)信息,并重復(fù)以上運(yùn)算步驟進(jìn)行迭代,直至譯碼成功或達(dá)最大迭代次數(shù)時(shí)結(jié)束。應(yīng)用本發(fā)明提供的譯碼方法和譯碼器進(jìn)行LDPC碼譯碼時(shí),與進(jìn)行矩陣分裂前的譯碼方案相比,在按照奇偶方式分裂時(shí),在相同的譯碼速率下,硬件資源規(guī)模減小接近1/3;在相同的硬件資源下,譯碼速率提高接近1/3。
文檔編號(hào)H04L1/00GK101232288SQ20081000094
公開日2008年7月30日 申請(qǐng)日期2008年1月9日 優(yōu)先權(quán)日2007年1月10日
發(fā)明者展 張, 張曉林, 蘇琳琳, 嶺 趙 申請(qǐng)人:北京航空航天大學(xué)