国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      一種ldpc碼的譯碼器裝置及譯碼方法

      文檔序號:7510853閱讀:267來源:國知局
      專利名稱:一種ldpc碼的譯碼器裝置及譯碼方法
      技術(shù)領(lǐng)域
      本發(fā)明屬于通信領(lǐng)域,具體涉及一種譯碼器裝置和譯碼方法。
      背景技術(shù)
      LDPC碼,全稱Low Density Parity Check Code,即低密度奇偶校驗(yàn)碼。在目前已有的信道編碼中,LDPC碼在某些情況下已經(jīng)顯示出了接近香農(nóng)限(Shannon’s limit)的抗差錯性能,與同樣是長碼的Turbo碼相比,LDPC碼的誤碼平層(error floor)出現(xiàn)在很低的誤碼率區(qū)域,且錯誤碼字無法檢測的概率為一個極低的非常接近0的值;LDPC碼的奇偶校驗(yàn)矩陣H的絕大多數(shù)元素為“0”,此即“低密度”的命名由來,而這樣的特性使其能夠通過簡單易于實(shí)現(xiàn)的譯碼方法進(jìn)行譯碼,具有極高的實(shí)用價值。由于以上幾點(diǎn)原因,使得LDPC在近年來成為研究與應(yīng)用的熱點(diǎn),例如第二代衛(wèi)星數(shù)字電視視頻廣播標(biāo)準(zhǔn)(DVB-S2)以及我國的數(shù)字電視地面?zhèn)鬏敇?biāo)準(zhǔn)都使用LDPC碼作為核心的信道編碼。在國內(nèi)外,有相當(dāng)多的文獻(xiàn)講述了LDPC碼的譯碼方法與結(jié)構(gòu)。
      例如對比文獻(xiàn)Zhongfeng Wang,Yanni Chen,Keshab K.Parhi,Areaefficient decoding of quasi-cyclic lowdensity parity check codes,IEEE conf.ICASSP,2004.該文獻(xiàn)提出了一種變量節(jié)點(diǎn)運(yùn)算單元與校驗(yàn)節(jié)點(diǎn)運(yùn)算單元統(tǒng)一處理的方法,但是,此方法僅僅適用于規(guī)則碼。
      另一方面,已經(jīng)有研究表明,非規(guī)則碼的抗差錯性能要略好于規(guī)則碼,而且,非規(guī)則碼具有“波浪效應(yīng)”,能使列重大的節(jié)點(diǎn)盡快收斂,從而提高譯碼速率。所以,使用非規(guī)則LDPC碼是通信系統(tǒng)的一種需求,例如,我國的數(shù)字電視地面?zhèn)鬏敇?biāo)準(zhǔn)就采用了0.4,0.6,0.8三種碼率的非規(guī)則LDPC碼字作為信道編碼。但是,非規(guī)則碼的譯碼較規(guī)則碼更復(fù)雜,所以如何優(yōu)化設(shè)計(jì)非規(guī)則LDPC碼的譯碼結(jié)構(gòu),具有很大的研究價值。

      發(fā)明內(nèi)容
      本發(fā)明的目的在于,提供一種LDPC碼的譯碼器裝置以及譯碼方法,用以解決譯碼的硬件資源耗用過多的問題。
      本發(fā)明中的譯碼器裝置與譯碼方法,能夠?qū)Ψ且?guī)則的LDPC碼進(jìn)行譯碼,也可以對規(guī)則的LDPC碼進(jìn)行譯碼,這些LDPC碼所對應(yīng)的奇偶校驗(yàn)矩陣被劃分為若干個大小為a×a的子塊,每個子塊都用循環(huán)行列式或0矩陣填充。
      本發(fā)明提供的一種LDPC碼譯碼器裝置包括節(jié)點(diǎn)更新核心單元(以下簡稱NU),其對對應(yīng)的校驗(yàn)矩陣中各行的校驗(yàn)信息以及對矩陣中各列的變量信息進(jìn)行計(jì)算;節(jié)點(diǎn)更新輔助單元(以下簡稱NAU),其對節(jié)點(diǎn)更新核心單元NU輸出的中間信息以及初始化信息進(jìn)行求和;初始化存儲器,其對譯碼器初始輸入信息進(jìn)行存儲;迭代存儲器,其對校驗(yàn)信息、變量信息、和譯碼結(jié)果進(jìn)行存儲;控制器,根據(jù)迭代的進(jìn)程,當(dāng)需要進(jìn)行校驗(yàn)節(jié)點(diǎn)更新運(yùn)算時,將節(jié)點(diǎn)更新核心單元NU和節(jié)點(diǎn)更新輔助單元NAU配置為校驗(yàn)節(jié)點(diǎn)更新單元;當(dāng)需要進(jìn)行變量節(jié)點(diǎn)更新運(yùn)算時,將節(jié)點(diǎn)更新核心單元NU和節(jié)點(diǎn)更新輔助單元NAU配置為變量節(jié)點(diǎn)更新單元,并對它們與存儲器間的數(shù)據(jù)交換進(jìn)行控制。
      上述NU被分成m個NU組,每個NU組包括n個NU和1個NAU。NU組的數(shù)目m按照以下方法確定假設(shè)校驗(yàn)矩陣有p個列塊,各個列塊的列重分別為CW1到CWp,假設(shè)校驗(yàn)矩陣有q個行塊,各個行塊的行重分別為RW1到RWq。通過觀察近似可以得到RWi=(CWj+CWj+1+…+CWj+n),(n≥0),或者得到CWi=(RWj+RWj+1+…+RWj+n),(n≥0)的關(guān)系,那么便構(gòu)成了一個NU組,這個NU組里包含n個NU和1個NAU。依此類推,直到將所有的行塊和列塊遍歷。
      上述的NU包括第一數(shù)據(jù)變換單元,將輸入的數(shù)據(jù)由二進(jìn)制補(bǔ)碼形式變換成二進(jìn)制原碼形式;第一數(shù)據(jù)選擇器單元,選擇補(bǔ)碼形式的數(shù)據(jù)或者原碼形式的數(shù)據(jù)輸入到后級;第一查找表單元,其采用查找表方式,將輸入的節(jié)點(diǎn)的信息轉(zhuǎn)換為概率值,其個數(shù)等于此NU的輸入節(jié)點(diǎn)數(shù);第二數(shù)據(jù)變換單元,將數(shù)據(jù)由二進(jìn)制原碼形式變換成二進(jìn)制補(bǔ)碼形式;第二數(shù)據(jù)選擇器單元,選擇補(bǔ)碼形式的數(shù)據(jù)或者原碼形式的數(shù)據(jù)輸入到后級;第一加法器單元,其對第二數(shù)據(jù)選擇器單元輸出的概率值求和,參與加法的個數(shù)等于第二數(shù)據(jù)選擇器單元個數(shù);以外界輸入的輔助信息為被減數(shù),分別減去第二數(shù)據(jù)選擇器的輸出;第一符號運(yùn)算單元,其對輸入的節(jié)點(diǎn)信息的符號進(jìn)行符號運(yùn)算,參與符號運(yùn)算的個數(shù)等于改NU單元的輸入節(jié)點(diǎn)數(shù);第二符號運(yùn)算單元,其從外界輸入的輔助符號信息中,分別剔除掉序號相同的輸入節(jié)點(diǎn)的符號信息;第三數(shù)據(jù)選擇器單元,選擇將減法器單元的結(jié)果直接輸出或者是將由減法器單元與第二符號運(yùn)算單元的輸出組成的結(jié)果輸出。
      上述的NAU包括第一選擇器單元,選擇是否將NU單元輸入的幅度求和輔助信息傳遞給后續(xù)加法器參與運(yùn)算;第二選擇器單元,選擇是否將初始化信息傳遞給后續(xù)加法器參與運(yùn)算;第一加法器單元,對第一選擇器單元的輸出與第二選擇器單元的輸出進(jìn)行求和;第二加法器單元,對第一加法器單元的輸出進(jìn)行求和;判決器單元,根據(jù)第一加法器單元的輸出結(jié)果進(jìn)行判決,得到迭代的結(jié)果;第三選擇器單元,選擇是否將NU單元輸入的符號求和輔助信息傳遞給后續(xù)加法器參與運(yùn)算;第一符號運(yùn)算單元,對第三選擇器單元的輸出結(jié)果進(jìn)行異或運(yùn)算。
      綜上所述,應(yīng)用本發(fā)明提供的譯碼器裝置和譯碼方法,可以對規(guī)則的或者不規(guī)則的LDPC碼進(jìn)行譯碼,并且譯碼時的變量節(jié)點(diǎn)更新運(yùn)算與校驗(yàn)節(jié)點(diǎn)更新運(yùn)算可以用同一套硬件結(jié)構(gòu)完成,所以本譯碼器裝置在譯碼速率相同的前提下,大大的節(jié)省了耗費(fèi)的硬件資源。


      圖1為本發(fā)明所涉及的LDPC譯碼所用的奇偶校驗(yàn)矩陣示意圖;圖2為本發(fā)明所涉及的LDPC譯碼器所用的規(guī)則奇偶校驗(yàn)矩陣一個示例;圖3為本發(fā)明設(shè)計(jì)的LDPC譯碼器一個示例;圖4為節(jié)點(diǎn)更新核心單元的一個示例;圖5為節(jié)點(diǎn)更新核心單元簡化為校驗(yàn)節(jié)點(diǎn)更新單元的一個示例;圖6為節(jié)點(diǎn)更新核心單元簡化為變量節(jié)點(diǎn)更新單元的一個示例;圖7為節(jié)點(diǎn)更新輔助單元的一個示例;圖8為節(jié)點(diǎn)更新輔助單元簡化為校驗(yàn)節(jié)點(diǎn)輔助單元的一個示例;圖9為節(jié)點(diǎn)更新輔助單元簡化為變量節(jié)點(diǎn)輔助單元的一個示例;
      圖10為LDPC譯碼器譯碼步驟的流程圖;圖11為本發(fā)明所涉及的LDPC譯碼器所用的非規(guī)則奇偶校驗(yàn)矩陣的一個示例。
      圖中
      具體實(shí)施例方式
      以下,參照附圖對本發(fā)明的具體實(shí)施方式
      進(jìn)行解釋說明。
      首先描述用于本實(shí)施例的奇偶校驗(yàn)矩陣。奇偶檢驗(yàn)矩陣又稱H矩陣,如圖1所示,由q×p個Ai,j(1≤i≤q,1≤j≤p)矩陣組成,Ai,j作為H矩陣的子矩陣,是0矩陣或循環(huán)行列式構(gòu)成的a×a方陣,且該循環(huán)行列式的重量很小。在本實(shí)施例中,Aij為由單位陣循環(huán)移位而得的a×a方陣或0矩陣。從圖1中可見,每一個子矩陣Ai,j中的斜線表示為矩陣元素為“1”的元素位置的軌跡,而其它空白位置上的元素為“0”。在構(gòu)成H矩陣的p×q個子矩陣Ai,j的每一行和每一列中,只有一個元素值為“1”的位置。所以,在整個H矩陣的每一行和每一列中,元素值為“1”的位置數(shù)分別為m和n,其中m即是H矩陣的一個子矩陣行(Ai,1…Ai,p)中非0矩陣的個數(shù),稱為行重;n即是H矩陣的一個子矩陣列(A1,j…Aq,j)中非0矩陣的個數(shù),稱為列重。并且,對于H矩陣中每一行的m值可以相同也可以不相同,同樣地,每一列的n值可以相同也可以不相同。若H矩陣中每一行的m值相同并且每一列的n值也相同,則此H矩陣對應(yīng)的LDPC碼為規(guī)則碼否則為非規(guī)則碼。此H矩陣共有p×a列,那么對應(yīng)地LDPC碼字的碼長為p×a;此H矩陣共有q×a行,那么對應(yīng)LDPC碼字的校驗(yàn)位長度為q×a,于是此H矩陣對應(yīng)LDPC碼字的信息位長度為(p-q)×a。圖2所示為一個具體的校驗(yàn)矩陣(標(biāo)記為H0),其中p=6,q=3。并且H0的行重均為6,列重均為3,所以H0對應(yīng)一個規(guī)則的LDPC碼。
      本領(lǐng)域內(nèi)公知,H矩陣的每一行可以被視為一個奇偶校驗(yàn)方程,對應(yīng)于H矩陣的第行的奇偶校驗(yàn)方程被稱為第i奇偶校驗(yàn)方程,對應(yīng)于該H矩陣的LDPC碼字,當(dāng)且僅當(dāng)上述碼字滿足H矩陣的所有奇偶校驗(yàn)方程,也就是q×a個奇偶校驗(yàn)方程,才能譯碼成功,得到正確的信息。
      要使譯碼算法對每組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)更新單元(CNU)進(jìn)行,如下式完成更新,即水平過程(行過程)Amj=&Sigma;n&Element;N(m)n&NotEqual;j&Psi;(L(qmn))(1)Smj=&Pi;n&Element;N(m)n&NotEqual;jsign(L(qmn))(2)Rmj=-SmjAmj(3)]]>上式中,Rij是通過將對應(yīng)的變量信息L(qmn)傳遞給H矩陣的第i行的除了第j個外的每一個校驗(yàn)節(jié)點(diǎn)而獲得的,而Rij是表示與第i個變量節(jié)點(diǎn)相關(guān)的第j個校驗(yàn)節(jié)點(diǎn)所對應(yīng)的一個LDPC碼字位置的校驗(yàn)信息。式中的Rmj和qmn是為了簡便對Rij和qij的統(tǒng)一寫法。N(m)表示H矩陣中與一個檢驗(yàn)節(jié)點(diǎn)m相關(guān)的所有變量節(jié)點(diǎn)的集合。
      此外,上式中的sign()表示符號函數(shù),Ψ(x)=ln(tanh(|x/2|))=ln((1-e-|x|)/(1+e-|x|))為概率計(jì)算函數(shù),后述,簡稱為Ψ函數(shù)。
      而迭代運(yùn)算中的另一部分,變量節(jié)點(diǎn)更新運(yùn)算,由變量節(jié)點(diǎn)更新單元(VNU)進(jìn)行,如下完成更新,即垂直過程(或稱“列過程”)L(qj)=&Sigma;m&Element;M(j)&Psi;(Rmj)+(-2rj/&sigma;2)(4)L(qmj)=L(qj)-&Psi;(Rmj)(5)]]>上式中,(-2rj/σ2)為開始迭代前的信道輸入,表示第j位xj為1或0的概率信息,它是LDPC碼字經(jīng)信道輸出后估計(jì)得到的。由此可知,L(qj)在迭代中亦是概率信息,表示在迭代中對應(yīng)的第j位xj為1或0的概率大小。M(j)表示H矩陣中與一個變量節(jié)點(diǎn)j相關(guān)的所有檢驗(yàn)節(jié)點(diǎn)的集合。
      其后,對L(qj)判決,判決其對應(yīng)的xj為0或1。再利用H矩陣中每一行的校驗(yàn)方程進(jìn)行檢驗(yàn),若H×x=0,譯碼正確;否則繼續(xù)迭代直至最大迭代次數(shù)。其中x為關(guān)于xj(0≤j≤(a×p))的列向量。
      實(shí)施例1本實(shí)施例用于圖2所示H0所對應(yīng)的規(guī)則LDPC碼的譯碼。
      首先敘述如何確定NU個數(shù),每個NU的輸入節(jié)點(diǎn)數(shù)以及對NU進(jìn)行分組的方法。
      按照傳統(tǒng)的部分并行結(jié)構(gòu),此譯碼器需要3個CNU,分別為CNU1到CNU3對應(yīng)的輸入節(jié)點(diǎn)數(shù)目均為6,與對應(yīng)的行塊的行重相同;需要6個VNU,分別為VNU1到VNU6,對應(yīng)輸入節(jié)點(diǎn)數(shù)目均為3,與對應(yīng)的列塊的列重相同。顯然,VNU1和VNU2的總規(guī)模和CNU1相當(dāng),VNU3和VNU4的總規(guī)模和CNU2相當(dāng),VNU5和VNU6的總規(guī)模和CNU3相當(dāng)。所以,此譯碼器可以設(shè)置3個NU組,分別為NU組1到NU組3。每個NU組包含兩個3輸入的NU和一個NAU。
      因此,此譯碼器共包含6個NU和3個NAU,分成了3個NU組。
      接著敘述譯碼器的整體結(jié)構(gòu)。
      如圖3所示,本實(shí)施例中的譯碼器包括以下部分節(jié)點(diǎn)運(yùn)算核心單元NU集合30,共包括p個節(jié)點(diǎn)運(yùn)算核心單元,分別為30-1,…,30-x,…,30-p。在本實(shí)施例中p為6,單個NU的輸入節(jié)點(diǎn)數(shù)為3,這6個NU單元分別為30-1到30-6,這6個NU能與后面的節(jié)點(diǎn)運(yùn)算輔助單元NAU配合完成6個列塊的變量節(jié)點(diǎn)更新運(yùn)算,以及完成3個行塊的校驗(yàn)節(jié)點(diǎn)更新運(yùn)算。節(jié)點(diǎn)運(yùn)算輔助單元NAU集合40,共包括y個節(jié)點(diǎn)運(yùn)算輔助單元,分別為40-1,…,40-x,…,40-y,由于前述的6個NU分成3組,所以共有3個NAU,分別為40-1,40-2,40-3;迭代存儲器單元集合10,包括18個存儲器行塊,與NU總的輸入節(jié)點(diǎn)數(shù)相對應(yīng)。分別為10-1到10-18。初始化存儲器單元集合20,包括6個存儲器單元,與校驗(yàn)矩陣的列塊數(shù)目相對應(yīng),分別為20-1到20-6。其對譯碼器初始輸入信息進(jìn)行存儲;控制器單元0,控制NU與NAU的輸入、輸出以及選通開關(guān),對更新、迭代進(jìn)行定序,并在NU的輸入、輸出時給出其相應(yīng)的迭代存儲器單元集合10與初始存儲器單元集合20的讀寫地址。綜上所述,本實(shí)施例中有NU的個數(shù)為6,NAU的個數(shù)為3,迭代存儲器個數(shù)為18,初始存儲器個數(shù)為6。
      上述迭代存儲器單元集合10中的各個存儲單元與奇偶校驗(yàn)矩陣中每一個矩陣元素為“1”的節(jié)點(diǎn)對應(yīng)。當(dāng)與一個校驗(yàn)節(jié)點(diǎn)相關(guān)的校驗(yàn)信息更新運(yùn)算結(jié)束后,將運(yùn)算結(jié)果寫入相應(yīng)的迭代存儲器單元集合10,完成校驗(yàn)節(jié)點(diǎn)更新運(yùn)算;當(dāng)與一個變量節(jié)點(diǎn)相關(guān)的變量信息更新運(yùn)算結(jié)束后,將運(yùn)算結(jié)果寫入相應(yīng)的迭代存儲器單元集合10,完成變量節(jié)點(diǎn)更新運(yùn)算;下面描述本發(fā)明譯碼器的節(jié)點(diǎn)運(yùn)算核心單元即NU。
      如圖4所示的NU結(jié)構(gòu)為本實(shí)施例所用的NU結(jié)構(gòu),NU30-1到30-6均采用此結(jié)構(gòu)。NU包括,第一數(shù)據(jù)變換單元集合301,共有x個數(shù)據(jù)變換單元,分別是301-1到30 1-x;第一數(shù)據(jù)選擇器單元集合302,共有x個數(shù)據(jù)選擇器單元,分別是302-1到302-x;第一查找表單元集合303,共有x個查找表單元,分別是303-1到303-x;第二數(shù)據(jù)變換單元集合304,共有x個數(shù)據(jù)變換單元,分別是304-1到304-x;第二數(shù)據(jù)選擇器單元集合305,共有x個數(shù)據(jù)選擇器單元,分別是305-1到305-x;第一加法器單元306,有x個輸入項(xiàng);減法器單元集合307,共有x個減法器單元,分別是307-1到307-x;第三數(shù)據(jù)選擇器單元集合308,共有x個數(shù)據(jù)選擇器單元,分別是308-1到308-x;第一符號運(yùn)算單元310,其對輸入的節(jié)點(diǎn)信息的符號進(jìn)行符號運(yùn)算,參與符號運(yùn)算的個數(shù)等于該NU單元的輸入節(jié)點(diǎn)數(shù)x;第二符號運(yùn)算單元集合311,共有x個符號運(yùn)算單元,分別為311-1到311-x,其實(shí)際上就是一個輸入數(shù)目為2的異或單元。上述代表數(shù)值的字母均為整數(shù),下同。
      上述NU單元結(jié)構(gòu)依據(jù)前述式(1)至(5)設(shè)計(jì),上述x的值為此NU的輸入節(jié)點(diǎn)數(shù)目。在本實(shí)施例中,NU30-1到30-6中的x都等于3。
      當(dāng)圖4中的數(shù)據(jù)選擇器的控制信號為0時,NU的結(jié)構(gòu)如圖5所示,此時,NU變成了CNU,用于處理校驗(yàn)矩陣的校驗(yàn)信息。第一查找表單元303-1到303-x用于式(1)中的Ψ函數(shù)運(yùn)算。第一加法器單元306與后面所述的加法器單元403共同完成式(1)中n∈N(m)的求和。減法器單元307-1到307-x用于完成式(1)中除去n=j(luò)的情況。上述第一加法器單元306是一個多輸入的加法器,當(dāng)然也可以用若干個2輸入的加法器實(shí)現(xiàn);第一符號運(yùn)算單元310與后面所述的符號運(yùn)算單元406共同完成式(2)中n∈N(m)的異或運(yùn)算。第二符號運(yùn)算單元311-1到311-x用于完成式(2)中除去n=j(luò)的情況。上述第一符號運(yùn)算單元310是一個多輸入的異或器,當(dāng)然也可以用若干個2輸入的異或器實(shí)現(xiàn)。
      當(dāng)圖4中的數(shù)據(jù)選擇器的控制信號為1時,NU的結(jié)構(gòu)如圖6所示,此時,NU變成了VNU,用于處理校驗(yàn)矩陣的變量信息。第一查找表單元303-1到303-x用于式(4)中的Ψ函數(shù)運(yùn)算。第一加法器單元306與后面所述的加法器單元403,404共同完成式(4)中m∈M(j)的求和。減法器單元307-1到307-x用于完成式(5)中的減法。
      下面描述本發(fā)明譯碼器的節(jié)點(diǎn)運(yùn)算輔助單元即NAU。
      如圖7所示的NAU單元結(jié)構(gòu)為本實(shí)施例所用的NAU單元結(jié)構(gòu),NAU單元40-1到40-3均采用此結(jié)構(gòu)。NAU單元具有第一數(shù)據(jù)選擇器單元集合401,共有y個數(shù)據(jù)選擇器單元,分別是401-1到401-y;第二數(shù)據(jù)選擇器單元集合402,共有y個數(shù)據(jù)選擇器單元,分別是402-1到402-y;;第一加法器單元集合403,共有y個加法器器單元,分別是403-1到403-y;第二加法器單元404;判決器單元集合405,共有y個判決器單元,分別是405-1到405-y;第三數(shù)據(jù)選擇器單元集合407,共有y個數(shù)據(jù)選擇器單元,分別是407-1到407-y;第一符號運(yùn)算單元406,參與符號運(yùn)算的輸入數(shù)目為y。
      上述y的值為此每組NU內(nèi)的NU的個數(shù)。在本實(shí)施例中,NU30-1到30-6中的y都等于2。
      下面描述譯碼器的譯碼步驟。
      下面,將結(jié)合圖3所示的譯碼器結(jié)構(gòu)示意圖、圖4,圖5,圖6所示的NU結(jié)構(gòu)圖及圖7所示的NAU結(jié)構(gòu)圖,對迭代運(yùn)算順序和具體計(jì)算方法進(jìn)行說明。
      初始化步驟當(dāng)接收到來自信道的LDPC碼字后,首先,由控制器單元0控制執(zhí)行初始化步驟。在初始化步驟中,控制器單元0控制6個NU 30-1至30-6和3個NAU分別從對應(yīng)的6個初始化存儲器20-1至20-6中將(4)中的-2rj/σ2取出,寫到迭代存儲器單元10對應(yīng)的存儲器單元中,其中,上述-2rj/σ2為每一個校驗(yàn)節(jié)點(diǎn)所屬列對應(yīng)的從通信信道中接收的一組LDPC碼字中每個碼字xj對應(yīng)的概率信息。根據(jù)式(4)及式(5),令其參加相應(yīng)的運(yùn)算步驟。其值將作為L(qmj)的初始值參加后述的校驗(yàn)節(jié)點(diǎn)更新運(yùn)算。
      第一迭代步驟在本步驟中,控制器單元0將圖4中的control信號設(shè)置成0,控制6個NU以及3個NAU進(jìn)行校驗(yàn)節(jié)點(diǎn)更新運(yùn)算即對與同一個校驗(yàn)節(jié)點(diǎn)相連的所有變量節(jié)點(diǎn)的校驗(yàn)信息進(jìn)行更新。
      如前所述,對于H0,6個NU和3個NAU被分成了3組,每組2個NU和1個NAU。于是,NU 30-1,30-2與NAU 40-1完成H0的第1個行塊的校驗(yàn)節(jié)點(diǎn)更新運(yùn)算,CNU 30-3,30-4與NAU 40-2完成H0的第2個行塊的校驗(yàn)節(jié)點(diǎn)更新運(yùn)算,CNU 30-5,30-6與NAU 40-3完成H0的第3個行塊的校驗(yàn)節(jié)點(diǎn)更新運(yùn)算。
      在第一迭代步驟開始前,控制器單元0控制NU單元結(jié)構(gòu)中的control信號變成0,于是圖4所示的NU單元結(jié)構(gòu)圖便簡化成了圖5。同時,控制器單元0控制NAU單元結(jié)構(gòu)中的controlz為1,controld為0,controls為0,于是圖7所示的NAU單元結(jié)構(gòu)圖便簡化成了圖8。
      以第一組為例,NU30-1在本步驟的第一個運(yùn)算周期中即T1內(nèi),其對用于H0矩陣的行標(biāo)為1的子矩陣行的第一行內(nèi)的前3個變量節(jié)點(diǎn)上的校驗(yàn)信息進(jìn)行運(yùn)算,并求解出用于更新所需的輔助信息ADout1與ASout1;NU 30-2在本步驟的第一個運(yùn)算周期中即T1內(nèi),其對用于H0矩陣的行標(biāo)為1的子矩陣行的第一行內(nèi)的后3個變量節(jié)點(diǎn)上的校驗(yàn)信息進(jìn)行運(yùn)算,并求解出用于更新所需的輔助信息ADout2與ASout2;NAU 40-1對NU 30-1和NU 30-2輸出的輔助信息ADout進(jìn)行求和,對ASout進(jìn)行異或運(yùn)算,并輸出運(yùn)算后的結(jié)果ADin與ASin;NU 30-1和NU 30-2根據(jù)NAU的輸出結(jié)果進(jìn)行減法運(yùn)算從而更新所有的校驗(yàn)信息。
      具體地,譯碼器進(jìn)行下述動作S1,如圖3所示的控制器單元0在T1運(yùn)算周期開始后,即控制將H0矩陣的行標(biāo)為1的子矩陣行中第一行的前3個變量節(jié)點(diǎn)對應(yīng)的存儲器單元10中的變量信息讀出,將其作為式(1)和(2)中的L(qmj)并行輸入至NU 30-1,即此時圖5中的Dinx為L(qmj)。然后,如圖5所示,進(jìn)行下述運(yùn)算過程將全部Din1至Dinx的第一位作為符號位單獨(dú)計(jì)算,同時Din1至Dinx被送入第一數(shù)據(jù)變換單元301-1至301-3,從二進(jìn)制補(bǔ)碼形式變換成二進(jìn)制原碼形式,接著Din1至Dinx的除去最高位符號位的其余位被送入第一查找表單元303-1至303-3,分別求出式(1)中的Ψ函數(shù);其后,由第一加法器306完成這3個查找表的輸出的求和運(yùn)算,求和結(jié)果ADout0輸出給NAU 40-1。另一方面,上述全部Din1至Dinx的第一位,由異或單元310完成異或運(yùn)算,運(yùn)算結(jié)果ASout0輸出給NAU 40-1。
      同時,控制器單元O在T1運(yùn)算周期開始后,即控制將H0矩陣的行標(biāo)為1的子矩陣行中第一行的后3個變量節(jié)點(diǎn)對應(yīng)的存儲器單元10中的變量信息讀出,將其作為式(1)和(2)中的并行輸入至NU30-2,經(jīng)過與NU30-1相同的步驟,NU30-2產(chǎn)生ADout2和ASout2輸出給NAU40-1。
      此時,如圖7所示,第一數(shù)據(jù)選擇器401-1和401-2分別選擇將ADout1和ADout2輸入給第一加法器403;第二數(shù)據(jù)選擇器402選擇將0輸入給第二加法器404;第三數(shù)據(jù)選擇器407-1和407-2選擇將ASout1和ASout2輸入給第一符號運(yùn)算單元406。如圖8所示,于是第一加法器集合403以及第二加法器單元404完成ADout1和ADout2的求和得到結(jié)果ADin;第一符號運(yùn)算單元406完成ASout1和ASout2的異或運(yùn)算得到結(jié)果ASin。
      NAU40-1將輔助信息ADin與ASin輸入給NU30-1與NU30-2后,減法器307-1到307-3完成式(1)中除去n=j(luò)的情況,到此,式(1)的計(jì)算完成;同時,第二符號運(yùn)算單元311-1到311-3完成式(2)中除去n=j(luò)的情況,到此,式(2)的計(jì)算完成。最后,將減法器集合307的輸出結(jié)果與異或單元集合311的輸出結(jié)果組合便完成了式(3)的運(yùn)算。NU30-1與30-2所對應(yīng)的H0矩陣的行標(biāo)為1的子矩陣行的第一行內(nèi)的6個變量節(jié)點(diǎn)上的校驗(yàn)信息便得到了更新。
      在第一運(yùn)算周期T1結(jié)束時,由控制器單元0控制,將NU 30-1輸出的數(shù)據(jù)存入H0矩陣的行標(biāo)為1的子矩陣行的第一行內(nèi)的前3個變量節(jié)點(diǎn)對應(yīng)的迭代存儲器集合10中的存儲單元中,將NU 30-2輸出的數(shù)據(jù)存入H0矩陣的行標(biāo)為1的子矩陣行的第一行內(nèi)的后3個變量節(jié)點(diǎn)對應(yīng)的迭代存儲器集合10中的存儲單元中,譯碼器完成動作S1。
      與上述第一運(yùn)算周期T1相同,譯碼器還要在第二運(yùn)算周期T2至第a運(yùn)算周期Ta內(nèi),分別重復(fù)以上S1的動作,其中,NU30-1在第二運(yùn)算周期T2至第a運(yùn)算周期Ta內(nèi),分別重復(fù)以上運(yùn)算過程,由控制器0控制,輸入的信息應(yīng)為H0矩陣中行標(biāo)為1的子矩陣行中余下的行的前3個變量節(jié)點(diǎn)的變量信息,輸出的信息應(yīng)各自對應(yīng)H0矩陣行標(biāo)為1的子矩陣行中余下的行的前3個變量節(jié)點(diǎn)的校驗(yàn)信息。NU30-2在第二運(yùn)算周期T2至第a運(yùn)算周期Ta內(nèi),分別重復(fù)以上運(yùn)算過程,由控制器0控制,輸入的信息應(yīng)為H0矩陣中行標(biāo)為1的子矩陣行中余下的a-1行的后3個變量節(jié)點(diǎn)的變量信息,輸出的信息應(yīng)各自對應(yīng)H0矩陣行標(biāo)為1的子矩陣行中余下的a-1行的后3個變量節(jié)點(diǎn)的校驗(yàn)信息。NAU 40-1在第二運(yùn)算周期T2至第a運(yùn)算周期Ta內(nèi),分別重復(fù)以上運(yùn)算過程,由控制器0控制,對NU30-1與NU30-2輸出的輔助信息ADout進(jìn)行求和,對ASout進(jìn)行異或運(yùn)算,并將運(yùn)算結(jié)果輸入回NU30-1與NU30-2。
      根據(jù)本領(lǐng)域內(nèi)的公知技術(shù),在圖4所示的NU單元結(jié)構(gòu)中可以插入流水線,從而改善時鐘性能。
      由于每一組的NU與NAU采用相同的結(jié)構(gòu),且在同一時刻并行運(yùn)算,因此它們之間的動作特性是相同的,也可以說,在上述的T1周期至Ta周期內(nèi)進(jìn)行相同的運(yùn)算,只不過,不同組的輸入信息應(yīng)為H0矩陣中相應(yīng)的的各個變量節(jié)點(diǎn)的變量信息,輸出的信息應(yīng)各自對應(yīng)H0矩陣的各個變量節(jié)點(diǎn)的校驗(yàn)信息,對于它們各自具體的運(yùn)算步驟等,將不再贅述。在后述說明中,也將采取與上述類似的說明方式,只說明一個具有代表性的運(yùn)算單元的動作特性。
      至Ta周期動作結(jié)束,完成了第一迭代步驟,對于H0矩陣中的所有變量節(jié)點(diǎn)上的校驗(yàn)信息進(jìn)行了一次更新。
      第二迭代步驟在本步驟中,控制器單元0控制6個NU與3個NAU進(jìn)行變量節(jié)點(diǎn)更新運(yùn)算。
      如前所述,對于H0,6個NU和3個NAU被分成了3組,每組2個NU和1個NAU。于是,NU 30-1與NAU 40-1完成H0的第1個列塊的變量節(jié)點(diǎn)更新運(yùn)算,NU 30-2與NAU 40-1完成H0的第2個行塊的變量節(jié)點(diǎn)更新運(yùn)算,CNU 30-3與NAU 40-2完成H0的第3個列塊的變量節(jié)點(diǎn)更新運(yùn)算,依次類推,NU30-6與NAU30-3完成H0的第6個列塊的校驗(yàn)節(jié)點(diǎn)更新運(yùn)算。
      由于當(dāng)?shù)谝坏襟E中的Ta周期動作結(jié)束時,已經(jīng)對與H0矩陣中各個變量節(jié)點(diǎn)對應(yīng)的存儲器單元10的存儲單元中的所有進(jìn)行了更新,即式(4)和式(5)的運(yùn)算條件已經(jīng)滿足,因此,在本迭代步驟中,對H0矩陣進(jìn)行變量節(jié)點(diǎn)更新運(yùn)算。
      在第二迭代步驟開始前,控制器單元0控制NU單元結(jié)構(gòu)中的control信號變成1,于是圖4所示的NU單元結(jié)構(gòu)圖便簡化成了圖6。同時,控制器單元0控制NAU單元結(jié)構(gòu)中的controlz為0,controld為0,controls為1,于是圖7所示的NAU單元結(jié)構(gòu)圖便簡化成了圖9。
      以第一組的NU30-1,30-2以及NAU40-1為例,具體地,譯碼器進(jìn)行下述動作S2,如圖3所示的控制器單元0在T1周期開始后,控制將H0矩陣的列標(biāo)為1的子矩陣列中第一列的校驗(yàn)節(jié)點(diǎn)對應(yīng)的迭代存儲器10中由第一迭代步驟中求出的Rmj(m=1、2…、n)讀出,將它們分別作為式(4)和式(5)中的變量,如圖4所示,并行輸入至NU30-1,然后,進(jìn)行下述運(yùn)算過程將全部Din1至Dinx的除掉最高位符號位的其余位送入第一查找表單元303-1至303-3,分別求出式(4)和式(5)中的Ψ函數(shù);接著,將第一查找表單元的輸出結(jié)果與對應(yīng)的之前符號位組合并輸入到第二數(shù)據(jù)變換單元304-1至304-3,從二進(jìn)制原碼形式變換成二進(jìn)制補(bǔ)碼形式,然后,由第一加法器306完成這3個數(shù)據(jù)類型轉(zhuǎn)換后的數(shù)據(jù)的求和運(yùn)算,求和結(jié)果ADout1輸出給NAU 40-1。
      同時,NU30-2完成與NU30-1相同的動作,并將產(chǎn)生的求和結(jié)果ADout2輸出給NAU 40-1。
      同時,控制器單元0在T1周期開始后,控制將H0矩陣的列標(biāo)為1和2的子矩陣列中第一列的校驗(yàn)節(jié)點(diǎn)對應(yīng)的初始存儲器20中的存儲單元中的信息-2rj/σ2讀出,并將它們分別作為Zv1和Zv2輸入給NAU 40-1。
      在NAU40-1中,如圖9所示,由加法器403-1與403-2完成式(4)中的求和運(yùn)算,算出L(qj),經(jīng)判決單元集合405即輸出譯碼結(jié)果sign1與sign2。同時,NAU40-1將加法器403-1與403-2的輸出分別送給NU30-1與30-2。NU30-1與30-2中的減法器集合307中的減法器單元307-1至307-3完成式(5)的運(yùn)算,輸出L(qmj)。
      在上述第一運(yùn)算周期T1結(jié)束時,由控制器單元0控制,將NU 30-1與30-2輸出的數(shù)據(jù)分別存入與H0矩陣列標(biāo)為1與2的子矩陣列中第一列的校驗(yàn)節(jié)點(diǎn)對應(yīng)的迭代存儲器集合20中的存儲器單元中,譯碼器完成動作S3。
      與上述其它迭代步驟相同地,本迭代步驟中,譯碼器還要在第二運(yùn)算周期T2至第a運(yùn)算周期Ta內(nèi),分別重復(fù)以上動作S2,其中,NU 30-1還要在第二運(yùn)算周期T2至第a運(yùn)算周期Ta內(nèi),分別重復(fù)以上動作,但由控制器單元0控制,輸入的信息應(yīng)為H0矩陣中列標(biāo)為1的矩陣列中余下的a-1列的與同一個變量節(jié)點(diǎn)相連的各個校驗(yàn)節(jié)點(diǎn)的校驗(yàn)信息,輸出的信息應(yīng)各自對應(yīng)H0矩陣列標(biāo)為1的子矩陣列中余下的a-1列的與同一個變量節(jié)點(diǎn)相連的各個校驗(yàn)節(jié)點(diǎn)的變量信息。NU 30-2還要在第二運(yùn)算周期T2至第a運(yùn)算周期Ta內(nèi),分別重復(fù)以上動作,但由控制器單元0控制,輸入的信息應(yīng)為H0矩陣中列標(biāo)為2的矩陣列中余下的列的與同一個變量節(jié)點(diǎn)相連的各個校驗(yàn)節(jié)點(diǎn)的校驗(yàn)信息,輸出的信息應(yīng)各自對應(yīng)H0矩陣列標(biāo)為1的子矩陣列中余下的列的與同一個變量節(jié)點(diǎn)相連的各個校驗(yàn)節(jié)點(diǎn)的變量信息。NAU40-1還要在第二運(yùn)算周期T2至第a運(yùn)算周期Ta內(nèi),分別重復(fù)以上動作,由控制器單元0控制,對初始化信息以及NU30-1和NU30-2的輔助信息進(jìn)行求和。
      另外,與上述其它迭代步驟相同地,本迭代步驟中,其它兩組NU與NAU在上述的T1周期至Ta周期內(nèi)進(jìn)行相同的運(yùn)算,其中,NU 30-3至NU 30-6的輸入信息應(yīng)為H0矩陣中列標(biāo)為3到6的子矩陣列中a列的與同一個變量節(jié)點(diǎn)相連的各個校驗(yàn)節(jié)點(diǎn)的校驗(yàn)信息,輸出的信息應(yīng)各自對應(yīng)H0矩陣列標(biāo)為2至6的子矩陣中的a列的與同一個變量節(jié)點(diǎn)相連的各個校驗(yàn)節(jié)點(diǎn)的變量信息。
      至Ta周期動作結(jié)束,完成了第二迭代步驟,對于H0矩陣中的與同一個變量節(jié)點(diǎn)相連的各個校驗(yàn)節(jié)點(diǎn)上的變量信息進(jìn)行了更新。
      其它的迭代周期均如上述的第一及第二迭代周期所述,交替對H0(或H1)矩陣的校驗(yàn)節(jié)點(diǎn)的校驗(yàn)信息和變量節(jié)點(diǎn)的變量信息進(jìn)行運(yùn)算更新,以上的迭代運(yùn)算,由控制器單元0控制,在第m迭代周期的第二迭代步驟中的Ta周期動作結(jié)束時停止,其中m為預(yù)先設(shè)置的最大迭代次數(shù)。
      并且在該第m迭代周期的第二迭代周期中,控制單元0將各個NAU單元40-1至40-3中的判決單元集合405輸出的判決結(jié)果signn讀出,按照H0矩陣的列順序排列并輸出,完成一組LDPC碼字的譯碼。
      上述譯碼器譯碼步驟的流程圖如圖10所示。
      實(shí)施例2本實(shí)施例用于圖11所示非規(guī)則LDPC碼的譯碼。如圖11所示,H1的行塊數(shù)為6,行重從上到下依次是6,6,7,7,7,7。列塊數(shù)為10,列重從左到右依次是3,3,3,3,4,4,4,4,6,6。與實(shí)施例1相比,本實(shí)施例中僅在NU個數(shù),NU的輸入節(jié)點(diǎn)數(shù)以及分組的確定方法上有所不同,現(xiàn)描述如下按照傳統(tǒng)的部分并行結(jié)構(gòu),此譯碼器需要6個CNU,分別為CNU1到CNU6對應(yīng)的輸入節(jié)點(diǎn)數(shù)目分別為6,6,7,7,7,7,與對應(yīng)的行塊的行重相同;需要10個VNU,分別為VNU1到VNU10,對應(yīng)輸入節(jié)點(diǎn)數(shù)目分別為3,3,3,3,4,4,4,4,6,6,與對應(yīng)的列塊的列重相同。顯然,VNU1和VNU2的總規(guī)模和CNU1相當(dāng),VNU3和VNU4的總規(guī)模和CNU2相當(dāng),VNU5和VNU6的總規(guī)模和CNU3相當(dāng),VNU7和VNU8的總規(guī)模和CNU4相當(dāng),VNU9和VNU10的規(guī)模分別和CNU5和CNU6相當(dāng)。所以,此譯碼器可以設(shè)置6個NU組,分別為NU組1到NU組6。在NU組1和NU組2中,分別包含兩個3輸入的NU和一個NAU,在NU組3和NU組4中,分別包含兩個4輸入的NU和一個NAU,在NU組5和NU組6中,分別包含一個7輸入的NU與一個NAU。
      在進(jìn)行迭代譯碼時,NU組1和NU組2和實(shí)施例1中的NU組沒有區(qū)別,但是NU組3和NU組4在進(jìn)行校驗(yàn)節(jié)點(diǎn)更新運(yùn)算時,總的輸入節(jié)點(diǎn)數(shù)為8,大于所需的輸入節(jié)點(diǎn)數(shù)7,此時只需要將多余的輸入節(jié)點(diǎn)設(shè)置成0即可。同理,NU組5和NU組6在進(jìn)行變量節(jié)點(diǎn)更新運(yùn)算時,也需要將多余的輸入節(jié)點(diǎn)設(shè)置成無效即可。
      此外,上述的譯碼器的譯碼步驟,與實(shí)施例1中譯碼器的譯碼步驟相同,可參照實(shí)施,此處不再贅述。
      權(quán)利要求
      1.一種LDPC碼的譯碼器,主要包括節(jié)點(diǎn)更新核心單元NU;節(jié)點(diǎn)更新輔助單元NAU;初始化存儲器,其對譯碼器初始輸入信息進(jìn)行存儲;迭代存儲器,其對校驗(yàn)信息、變量信息、和譯碼結(jié)果進(jìn)行存儲;控制器,對節(jié)點(diǎn)更新核心單元NU和節(jié)點(diǎn)更新輔助單元NAU進(jìn)行控制,控制它進(jìn)行校驗(yàn)節(jié)點(diǎn)更新運(yùn)算或者進(jìn)行變量節(jié)點(diǎn)更新運(yùn)算,并對它們與存儲器間的數(shù)據(jù)交換進(jìn)行控制;其特征在于所述的節(jié)點(diǎn)更新核心單元NU能對對應(yīng)的校驗(yàn)矩陣中各行的校驗(yàn)信息以及對矩陣中各列的變量信息進(jìn)行計(jì)算,并求出NAU單元所需的幅度求和信息以及符號求和信息;所述的節(jié)點(diǎn)更新輔助單元NAU能對節(jié)點(diǎn)更新核心單元NU輸出的幅度求和輔助信息以及初始化信息的幅度進(jìn)行求和,以及對節(jié)點(diǎn)更新核心單元NU輸出的符號求和輔助信息以及初始化信息的符號進(jìn)行求和;所述控制器被配置為根據(jù)迭代的進(jìn)程,當(dāng)需要進(jìn)行校驗(yàn)節(jié)點(diǎn)更新運(yùn)算時,將節(jié)點(diǎn)更新核心單元NU和節(jié)點(diǎn)更新輔助單元NAU配置為校驗(yàn)節(jié)點(diǎn)更新單元;當(dāng)需要進(jìn)行變量節(jié)點(diǎn)更新運(yùn)算時,將節(jié)點(diǎn)更新核心單元NU和節(jié)點(diǎn)更新輔助單元NAU配置為變量節(jié)點(diǎn)更新單元。
      2.根據(jù)權(quán)利要求1所述的一種LDPC碼的譯碼器,其特征在于上述NU被分成若干個NU組,每個NU組包括若干個NU和1個NAU。NU組的數(shù)目m按照以下方法確定假設(shè)校驗(yàn)矩陣有p個列塊,各個列塊的列重分別為CW1到CWp,假設(shè)校驗(yàn)矩陣有q個行塊,各個行塊的行重分別為RW1到RWq。通過觀察近似可以得到RWi=(CWj+CWj+1+…+CWj+n),(n≥0),或者得到CWi=(RWj+RWj+1+…+RWj+n),(n≥0)的關(guān)系,那么便構(gòu)成了一個NU組,這個NU組里包含n個NU和1個NAU。依此類推,直到將所有的行塊和列塊遍歷。
      3.根據(jù)權(quán)利要求1所述的一種LDPC碼的譯碼器,其特征在于所述的NU包括第一數(shù)據(jù)變換單元,將輸入的數(shù)據(jù)由二進(jìn)制補(bǔ)碼形式變換成二進(jìn)制原碼形式;第一數(shù)據(jù)選擇器單元,選擇補(bǔ)碼形式的數(shù)據(jù)或者原碼形式的數(shù)據(jù)輸入到后級;第一查找表單元,其采用查找表方式,將輸入的節(jié)點(diǎn)的信息轉(zhuǎn)換為概率值,其個數(shù)等于此NU的輸入節(jié)點(diǎn)數(shù);第二數(shù)據(jù)變換單元,將數(shù)據(jù)由二進(jìn)制原碼形式變換成二進(jìn)制補(bǔ)碼形式;第二數(shù)據(jù)選擇器單元,選擇補(bǔ)碼形式的數(shù)據(jù)或者原碼形式的數(shù)據(jù)輸入到后級;第一加法器單元,其對第二數(shù)據(jù)選擇器單元輸出的概率值求和,參與加法的個數(shù)等于第二數(shù)據(jù)選擇器單元個數(shù);以外界輸入的輔助信息為被減數(shù),分別減去第二數(shù)據(jù)選擇器的輸出;第一符號運(yùn)算單元,其對輸入的節(jié)點(diǎn)信息的符號進(jìn)行符號運(yùn)算,參與符號運(yùn)算的個數(shù)等于改NU單元的輸入節(jié)點(diǎn)數(shù);第二符號運(yùn)算單元,其從外界輸入的輔助符號信息中,分別剔除掉序號相同的輸入節(jié)點(diǎn)的符號信息;第三數(shù)據(jù)選擇器單元,選擇將減法器單元的結(jié)果直接輸出或者是將由減法器單元與第二符號運(yùn)算單元的輸出組成的結(jié)果輸出。
      4.根據(jù)權(quán)利要求1所述的一種LDPC碼的譯碼器,其特征在于所述的NAU包括第一選擇器單元,選擇是否將輔助信息傳遞給后續(xù)加法器參與運(yùn)算;第二選擇器單元,選擇是否將初始化信息傳遞給后續(xù)加法器參與運(yùn)算;第一加法器單元,對第一選擇器單元的輸出與第二選擇器單元的輸出進(jìn)行求和;第二加法器單元,對第一加法器單元的輸出進(jìn)行求和;判決器單元,根據(jù)第一加法器單元的輸出結(jié)果進(jìn)行判決,得到迭代的結(jié)果;第三選擇器單元,選擇參與后續(xù)符號運(yùn)算的參數(shù)的數(shù)目;第一符號運(yùn)算單元,對第三選擇器單元的輸出結(jié)果進(jìn)行異或運(yùn)算。
      5.一種應(yīng)用于權(quán)利要求1所述的LDPC碼的譯碼器的譯碼方法,分為以下步驟步驟1初始化分別地、順序地,控制器單元控制NU與NAU從初始化存儲器中將輸入的概率信息取出,寫到迭代存儲器中,其值作為變量節(jié)點(diǎn)的變量信息參加后述的校驗(yàn)節(jié)點(diǎn)更新運(yùn)算;步驟2校驗(yàn)節(jié)點(diǎn)更新運(yùn)算分別地、順序地,控制器單元控制NU組對奇偶校驗(yàn)矩陣的校驗(yàn)信息進(jìn)行更新,輸入為與同一個校驗(yàn)節(jié)點(diǎn)相連的各個變量節(jié)點(diǎn)的變量信息,輸出為更新后的此校驗(yàn)節(jié)點(diǎn)傳遞給與之相連的變量節(jié)點(diǎn)的校驗(yàn)信息;步驟3變量節(jié)點(diǎn)更新運(yùn)算分別地、順序地,控制器單元控制NU組對奇偶校驗(yàn)矩陣的變量信息進(jìn)行更新,輸入為與同一個變量節(jié)點(diǎn)相連的各個校驗(yàn)節(jié)點(diǎn)的校驗(yàn)信息,輸出為更新后的此變量節(jié)點(diǎn)傳遞給與之相連的校驗(yàn)節(jié)點(diǎn)的變量信息;步驟4重復(fù)所述步驟2至步驟3,進(jìn)行迭代,直到滿足迭代停止條件。其特征在于步驟1至步驟3中的完成更新運(yùn)算的NU單元與NAU單元需要控制器單元進(jìn)行控制,使之分別工作在校驗(yàn)節(jié)點(diǎn)更新狀態(tài)與變量節(jié)點(diǎn)更新狀態(tài);步驟1和步驟3中的更新運(yùn)算以NU組為單位進(jìn)行,完成更新運(yùn)算需要組內(nèi)的NU單元與NAU單元之間相互配合。
      6.根據(jù)權(quán)利要求5所述的一種LDPC碼的譯碼方法,其特征在于其校驗(yàn)節(jié)點(diǎn)更新運(yùn)算按照以下步驟實(shí)施步驟1第一數(shù)據(jù)變換單元將校驗(yàn)矩陣的各行的變量節(jié)點(diǎn)的變量信息由二進(jìn)制補(bǔ)碼形式變換成二進(jìn)制原碼形式,參與此運(yùn)算的個數(shù)等于此NU的輸入節(jié)點(diǎn)數(shù);步驟2第一查找表單元采用查找表方式,將第一數(shù)據(jù)變換單元輸出的校驗(yàn)矩陣的各行的變量節(jié)點(diǎn)的變量信息轉(zhuǎn)換為概率值,參與查找表運(yùn)算的個數(shù)等于此NU的輸入節(jié)點(diǎn)數(shù);步驟3第一加法器單元對第一查找表單元輸出的概率值求和,參與加法的個數(shù)等于第一查找表單元個數(shù);第一符號運(yùn)算單元對校驗(yàn)矩陣的各行的的與同一個校驗(yàn)節(jié)點(diǎn)相連的變量節(jié)點(diǎn)的變量信息的符號進(jìn)行運(yùn)算,參與符號運(yùn)算的個數(shù)等于第一查找表單元個數(shù);步驟4NAU的第一加法器單元以及第二加法器單元對NU的第一加法器單元的輸出進(jìn)行求和,并將結(jié)果送回NU減法器的輸入端。與此同時,NAU的第一符號運(yùn)算單元對NU的第一符號運(yùn)算單元的輸出結(jié)果進(jìn)行異或運(yùn)算,并將結(jié)果送回NU第二符號運(yùn)算單元的輸入端。步驟5NU的減法器單元以NAU的第二加法器單元的輸出為被減數(shù),分別減去第一查找表單元輸出的概率值,其個數(shù)與第一查找表單元個數(shù)相同;第二符號運(yùn)算單元從NAU第一符號運(yùn)算單元輸出的符號運(yùn)算的結(jié)果中,分別剔除掉校驗(yàn)矩陣各行的與同一個校驗(yàn)節(jié)點(diǎn)相連的變量節(jié)點(diǎn)的變量信息的符號,其個數(shù)與第一查找表單元數(shù)目相同。
      7.根據(jù)權(quán)利要求5所述的一種LDPC碼的譯碼方法,其特征在于其變量節(jié)點(diǎn)更新運(yùn)算按照以下步驟實(shí)施步驟1第一查找表單元采用查找表方式,將輸入轉(zhuǎn)換為概率值,參與查找表運(yùn)算的個數(shù)等于此NU的輸入節(jié)點(diǎn)數(shù);步驟2第二數(shù)據(jù)變換單元將第一查找表單元的輸出結(jié)果與之前的符號位組合成的數(shù)據(jù)從二進(jìn)制原碼形式變換成二進(jìn)制補(bǔ)碼形式。步驟3第一加法器單元對第二數(shù)據(jù)變換單元的輸出結(jié)果進(jìn)行求和,并將結(jié)果作為輸入傳遞給NAU的第一加法器單元。步驟4NAU中的第一加法器單元完成初始化信息與NU的第一加法器單元的輸出的求和運(yùn)算,并將結(jié)果作為輸入傳遞給NU的減法器單元。與此同時,NAU中的判決單元對第一加法器單元的輸出進(jìn)行判決,得到譯碼結(jié)果。步驟5NU的減法器單元以NAU的第一加法器的輸出為被減數(shù),分別減去與同一個變量節(jié)點(diǎn)相連的各個校驗(yàn)節(jié)點(diǎn)的校驗(yàn)信息。
      全文摘要
      本發(fā)明公開了一種高效的LDPC碼的譯碼器裝置和譯碼方法。首先,對LDPC碼的校驗(yàn)矩陣進(jìn)行分析,找出行重與列重之間的對比關(guān)系,然后,根據(jù)上述對比關(guān)系,確定校驗(yàn)節(jié)點(diǎn)更新單元(CNU)與變量節(jié)點(diǎn)更新單元的復(fù)用程度,并對它們進(jìn)行分組,形成統(tǒng)一的節(jié)點(diǎn)更新單元(NU),利用統(tǒng)一的節(jié)點(diǎn)更新單元處理校驗(yàn)節(jié)點(diǎn)更新運(yùn)算與變量節(jié)點(diǎn)更新運(yùn)算。本發(fā)明提供的譯碼器裝置和譯碼方法既適用于非規(guī)則碼也適用于規(guī)則碼,而且譯碼器耗費(fèi)的邏輯資源與存儲器資源比傳統(tǒng)的譯碼器要小得多。
      文檔編號H03M13/00GK101094001SQ20071011846
      公開日2007年12月26日 申請日期2007年7月6日 優(yōu)先權(quán)日2007年7月6日
      發(fā)明者劉榮科, 智鋼, 趙嶺 申請人:北京航空航天大學(xué)
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會獲得點(diǎn)贊!
      1