• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      基于信息截斷的低復(fù)雜度多進(jìn)制LDPC碼譯碼器

      2022-04-11 10:43:32王瑞雪陳為剛
      信號處理 2022年3期
      關(guān)鍵詞:譯碼器譯碼校驗

      王瑞雪 陳為剛

      (天津大學(xué)微電子學(xué)院,天津 300072)

      1 引言

      低密度奇偶校驗(Low-Density Parity-Check,LDPC)碼以其優(yōu)異的糾錯性能被廣泛應(yīng)用于5G 移動通信[1-2]和衛(wèi)星通信[3-4]等領(lǐng)域。定義在伽羅華域GF(q=2p)(p>1)的多進(jìn)制LDPC 碼的糾錯能力明顯優(yōu)于其對應(yīng)二進(jìn)制形式[5],但其譯碼算法的硬件實現(xiàn)復(fù)雜度較高,限制了它在實際場景中的應(yīng)用。

      多進(jìn)制LDPC 碼的譯碼算法分為軟判決譯碼算法和硬判決譯碼算法,軟判決譯碼算法如擴(kuò)展最小和(Extended Min-Sum,EMS)[6-7]、網(wǎng)格EMS(Trellis EMS,T-EMS)[8]、最小最大(Min-Max,MM)[9]和網(wǎng)格MM(Trellis MM,T-MM)[10-11]等在校驗節(jié)點更新時需要利用信道中的軟信息來搜索滿足奇偶校驗方程的符號,計算復(fù)雜度較高。相比較之下,硬判決譯碼算法只需要在校驗節(jié)點更新中對有限域元素進(jìn)行簡單的校驗和運(yùn)算,使得計算復(fù)雜度低,消耗存儲資源少,但其譯碼性能存在惡化現(xiàn)象。因此,硬判決譯碼算法適用于信道條件好,要求硬件實現(xiàn)復(fù)雜度低的系統(tǒng)。主要的硬判決譯碼算法有大數(shù)邏輯可譯碼算法(Majority-Logic Decodable Algorithm,MLDA)[12-14]和廣義比特翻轉(zhuǎn)譯碼算法(Generalized Bit-Flipping Decoding Algorithm,GBFDA)[15]。

      MLDA 對低碼率碼譯碼時性能較好,但是隨著碼率的增加糾錯性能會下降。GBFDA 是一種適用于高速率碼的譯碼方法,該算法定義了可靠性矩陣,對于速率高且列權(quán)重小的碼,可實現(xiàn)更準(zhǔn)確的解碼并獲得更好的糾錯性能?;诒忍胤D(zhuǎn)譯碼算法,文獻(xiàn)[16]中提出了可多比特翻轉(zhuǎn)的并行化方法,且其性能逼近最小和譯碼算法?;贕BFDA,研究者又提出增強(qiáng)串行廣義比特翻轉(zhuǎn)譯碼算法(Enhanced Serial GBFDA,ES-GBFDA)[17]并進(jìn)行硬件實現(xiàn)。在譯碼過程中對數(shù)似然比(Loglikelihood Ratio,LLR)的值可能會超過其量化比特數(shù),因此,GBFDA 和ES-GBFDA 均需要控制LLR 值增長的操作,例如裁剪操作[18],即當(dāng)一個元素的大小大于其量化位數(shù)可表達(dá)的最大值時,將該元素所在的列減去一個常數(shù)。文獻(xiàn)[19]中的裁剪操作通過串行處理來實現(xiàn),但每次迭代所需時鐘周期數(shù)需乘上q,造成較大延遲。文獻(xiàn)[17]中的裁剪操作通過并行處理來實現(xiàn),由于每個符號的裁剪信息必須與其他符號共享,因此增加了路由擁塞。簡化增強(qiáng)串行廣義比特翻轉(zhuǎn)譯碼算法(Simplified ES-GBFDA,SESGBFDA)[20]在初始化時將所有符號的LLR 值減去最可靠符號對應(yīng)的LLR 值,避免了裁剪操作,并且不會對頻率或延遲造成不利影響。ES-GBFDA 對多進(jìn)制LDPC 碼譯碼需存儲校驗節(jié)點更新得到的每個符號的次數(shù),即“投票”數(shù),用于計算變量節(jié)點的外信息,因此會消耗較多的存儲資源。為降低存儲需求SES-GBFDA 僅用一個比特來量化“投票”數(shù),從而使存儲量減少了45%,同時引入了0.05 dB 的性能損失。

      為進(jìn)一步降低多進(jìn)制LDPC 碼譯碼器實現(xiàn)的存儲需求和計算復(fù)雜度,本文提出一種基于信息截斷的譯碼算法,即截斷SES-GBFDA(Truncated SESGBFDA,T-SES-GBFDA)。該譯碼算法僅利用每個符號所對應(yīng)的q個LLR值中有限的t個值進(jìn)行譯碼,從而降低譯碼器實現(xiàn)的存儲需求。進(jìn)一步,針對所提出的譯碼算法設(shè)計了部分并行的譯碼器架構(gòu),在變量節(jié)點的處理中僅使用t?q個并行的基本更新單元代替文獻(xiàn)[20]中所使用的q個基本更新單元來完成變量節(jié)點矢量消息的處理,具有較低的計算復(fù)雜度。基于現(xiàn)場可編程門陣列(Field Programmable Gate Array,F(xiàn)PGA)平臺的譯碼器實現(xiàn)結(jié)果表明,提出的多進(jìn)制LDPC 碼譯碼器以較小的性能損失和吞吐量的降低換取了硬件資源消耗的顯著降低,因此所設(shè)計的譯碼器適用于硬件實現(xiàn)復(fù)雜度要求低,但吞吐量要求不高的通信場景中。

      2 截斷簡化增強(qiáng)串行廣義比特翻轉(zhuǎn)譯碼算法(T-SES-GBFDA)

      為降低多進(jìn)制LDPC 碼譯碼器的存儲需求和計算復(fù)雜度,本文基于SES-GBFDA提出將可靠性信息截斷的T-SES-GBFDA,接下來介紹該算法的具體流程,為了方便算法的描述,首先對算法中所用到的符號進(jìn)行說明。

      定義在伽羅華域GF(q=2p)(p>1)上的多進(jìn)制LDPC 碼(N,K),N為碼字符號長度,K為信息符號長度,其校驗矩陣HMN為M行N列,其中hmn表示校驗矩陣中第m行n列的元素,校驗矩陣中校驗節(jié)點的度為dc,變量節(jié)點的度為dv。假設(shè)信息序列采用二進(jìn)制相移鍵控(Binary Phase Shift Keying,BPSK)調(diào)制,并使調(diào)制后的信息序列經(jīng)過加性高斯白噪聲(Additive White Gaussian Noise,AWGN)信道,將在接收端接收到的序列定義為y=(y1,y2,…,yN),其中yn=(yn,0,yn,1,…,yn,p-1)代 表GF(q) 上 的(Ln(0),Ln(1),…,Ln(2p-1))。R(nj)表示在第j次迭代一個域元素。第n個符號的LLR值表示為Ln=中,從校驗節(jié)點傳遞到變量節(jié)點n的GF(q)上的元素。表示在第j次迭代中,從變量節(jié)點n傳遞到校驗節(jié)點的GF(q)上的元素。表示在第j次迭代中,變量節(jié)點n相關(guān)聯(lián)的t(t?q)元組,該元組中的元素為非負(fù)整數(shù),并由GF(q)上的元素En,i(1 ≤i≤t)索引,索引為En,i的分量表示變量節(jié)點n為域元素En,i的可靠性度量。是一個標(biāo)志矩陣,表示在第j次迭代中,變量節(jié)點n相關(guān)聯(lián)的t元組,其成分是0 或1,并由GF(q)上的元素En,i(1 ≤i≤t)索引;若校驗節(jié)點更新的符號為Rn,則將由符號Rn索引的矩陣置1,代表校驗節(jié)點對符號Rn進(jìn)行了“投票”,其余符號對應(yīng)的矩陣置0。則T-SES-GBFDA譯碼算法可以表示為:

      1)初始化

      ①截斷初始消息向量及對應(yīng)域元素

      首先計算初始消息向量L={L1,L2,…,LN}中第n(1 ≤n≤N)個符號的LLR值Ln=(Ln(0),…,Ln(2p-1)),其中Ln(z),z∈{0,1,…,2p-1}的計算公式如下所示,

      其中,z∈GF(q),zmax為最可靠的符號,zmax,l為符號zmax轉(zhuǎn)換為二進(jìn)制后第l+1 個比特。對數(shù)似然值的計算將Ln(z)歸一化為最可靠的符號,以避免使用裁剪操作來控制中的數(shù)據(jù)增長。當(dāng)被量化為Qb比特時表示的最小值和最大值分別為和,最可靠的符號可以從0增長到,也就是說最多可以獲得次投票。然后將Ln降序排列

      其中En,i表示第n(1 ≤n≤N)個符號的LLR 值降序排列后排在第i(1 ≤i≤q)個位置上的域元素。最后將初始消息向量及對應(yīng)域元素進(jìn)行截斷,即

      其中1 ≤t≤q-1。

      ②參數(shù)賦值

      其中1 ≤n≤N,1 ≤i≤t,j為迭代次數(shù),m為 行索引。

      2)迭代譯碼,在以下步驟中1 ≤n≤N,1 ≤i≤t

      其中GFmax是在1 ≤i≤t時求解外信息最大時所對應(yīng)的域元素。該步驟首先計算t個域元素對應(yīng)的外信息,然后計算t個外信息中的最大值,并選擇外信息最大值對應(yīng)的域元素作為截斷操作的采用使該步驟不需計算所有域元素的外信息并比較大小,只需要計算t個域元素對應(yīng)的外信息并進(jìn)行比較,因此將該步驟的計算復(fù)雜度由O(q)降低為O(t)。

      ②計算校正子s

      ③計算校驗節(jié)點候選項Rn

      ⑤更新m,m=m+1,如果m=M則進(jìn)行下一步,否則返回執(zhí)行步驟①。

      ⑥更新j,j=j+1,如果j=Itmax則進(jìn)行下一步,否則令m=1,并返回執(zhí)行步驟①,其中Itmax為最大迭代次數(shù)。

      3)譯碼判決

      其中1 ≤n≤N,1 ≤i≤t,GFmax是在1 ≤i≤t時求解中最大值所對應(yīng)的域元素。由圖1 所示的多進(jìn)制LDPC 碼譯碼信息傳遞示意圖可知,對LLR 值及其對應(yīng)域元素截斷后,變量節(jié)點需要處理的信息長度由q減短為t,變量節(jié)點和校驗節(jié)點之間的信息傳遞沒有變化。

      針對定義在GF(32)上,碼長為837 個符號,碼率為0.85,準(zhǔn)循環(huán)校驗矩陣H124,837校驗節(jié)點度dc和變量節(jié)點度dv分別為27 和4 的多進(jìn)制LDPC 碼,使用T-SES-GBFDA 進(jìn)行迭代譯碼,最大譯碼迭代次數(shù)Itmax設(shè)置為10。圖2 為將LLR 截斷為不同長度后進(jìn)行譯碼的誤幀率(Frame Error Rate,BER),由圖可知,當(dāng)截斷長度為20時,基本無性能損失;當(dāng)截斷長度為16 時,在FER 為10-3處,有0.05 dB 的損失;當(dāng)截斷長度為10 時,在FER 為10-3處,有0.16 dB 的損失;當(dāng)截斷為7時,性能損失很大且較早的出現(xiàn)誤碼平臺問題。

      圖3 為將LLR 截斷為10 并量化為不同比特時的比特錯誤率(Bit Error Rate,BER),在BER 為10-5時,將LLR 截斷為10 并量化為6 比特與未量化相比,BER 性能損失約為0.15 dB,量化為5 比特與6 比特時兩者的BER 性能差距不大,量化為4 比特時性能損失較大,因此我們不考慮4比特的量化。

      表1 總結(jié)了SES-GBFDA 和所提出的譯碼算法每次迭代所需要的計算復(fù)雜度,在譯碼判決過程中只需進(jìn)行整數(shù)比較且其計算復(fù)雜度與迭代過程中的整數(shù)比較相同,其中r=dc×M=3348 表示校驗矩陣中非零元素的個數(shù)。SES-GBFDA 算法和TSES-GBFDA 算法進(jìn)行10 次迭代譯碼并進(jìn)行譯碼判決的操作總數(shù)分別為2744120 和961310,其中TSES-GBFDA 算法的截斷長度t取10。與SESGBFDA相比,我們提出的譯碼算法計算操作數(shù)減少了65%,且性能損失較小。如果未將LLR 及其域元素截斷,則譯碼器所需存儲的比特數(shù)為q×(Qb+dv)×N,截斷后需要存儲的比特數(shù)為(Qb+dv+p) ×t×N。當(dāng)t=10,Qb=5 時,截斷操作可以將存儲量減少51.4%。

      表1 兩種譯碼算法每次迭代所需的計算復(fù)雜度Tab.1 Computational complexity required per iteration for two decoding algorithms

      3 低復(fù)雜度譯碼器硬件實現(xiàn)

      3.1 譯碼器整體架構(gòu)設(shè)計

      本文設(shè)計的譯碼器采用T-SES-GBFDA 進(jìn)行譯碼,迭代次數(shù)設(shè)為固定值,在達(dá)到最大迭代次數(shù)之后直接進(jìn)行譯碼判決,不對譯碼結(jié)果進(jìn)行校驗。采用部分并行架構(gòu)來保證譯碼器吞吐量,即變量節(jié)點和校驗節(jié)點消息的處理采用并行實現(xiàn),變量節(jié)點和校驗節(jié)點之間消息傳遞采用串行實現(xiàn)。令Qb表示量化比特數(shù),Wid=Qb+dv+p表示存儲一種域元素相關(guān)消息所需比特數(shù)。如圖4 所示為多進(jìn)制LDPC 碼譯碼器的整體架構(gòu),譯碼器包括:拼接單元、dc個變量節(jié)點處理(Variable Node Processing,VNP)模塊、校正子計算單元、dc個校驗節(jié)點更新(Check Node Update,CNU)單元和校驗矩陣存儲單元。VNP 模塊包括二輸入選擇器、消息存儲單元和變量節(jié)點更新(Variable Node Update,VNU)單元。

      對譯碼器整體架構(gòu)中數(shù)據(jù)流向進(jìn)行詳細(xì)的介紹。拼接單元將第n(1 ≤n≤N)個符號截斷后的LLR 值Ln={Ln(En,1),…,Ln(En,t)}及對應(yīng)域元素En={En,1,…,En,t}與dv個0 進(jìn)行拼接得到位寬為Wid 的向量Vni=[Ln(En,i),0000,En,i](1 ≤i≤t),并將其按照i=t,…,1 的順序拼接得到位寬為Wid ×t的向量Vn={Vn7,Vn6,…,Vn1}作為VNP 模塊的輸入。在VNP 模塊中,向量Vn以及向量Fnew共同作為二輸入選擇器的輸入,其中Fnew為VNU 單元對消息存儲單元輸出的消息向量F更新后的消息向量;將選擇器的輸出存儲在消息存儲單元中;VNU單元通過處理消息存儲單元的輸出向量F和CNU的投票符號Rn得到向量Fnew和新的硬判決符號Qn;dc個VNU 單元的輸出Qn1,…,作為VNP 單元的輸出。校正子計算單元根據(jù)Qn1,…,和校驗矩陣存儲模塊輸出的校驗矩陣的非零元素計算得到校正子s。dc個CNU 單元根據(jù)Qn1,…,、s和校驗矩陣存儲模塊輸出的校驗矩陣中非零元素的逆元素求解得到dc個校驗節(jié)點的投票符號Rn1,Rn2,…,

      表2統(tǒng)計了譯碼器譯碼過程所消耗的時鐘周期數(shù),其中N為多進(jìn)制LDPC 碼碼字符號長度,M為校驗矩陣的行數(shù),Itmax為譯碼的最大迭代次數(shù),q為伽羅華域的大小。由于初始化過程是將向量Vn存儲在消息存儲單元中,設(shè)定為每個時鐘周期輸入1 個符號的相關(guān)消息,則初始化過程需要N個時鐘周期。迭代更新過程按照校驗矩陣的行來進(jìn)行,并且插入了流水線寄存器,在設(shè)計的譯碼器架構(gòu)中,VNP 模塊以及CNU 單元的一次更新消耗5 個時鐘周期,則譯碼迭代過程需Itmax×M× 5 個時鐘周期。為充分利用資源在譯碼判決過程中直接利用VNP模塊來完成,此時譯碼判決是dc路并行執(zhí)行,因此所消耗的時鐘周期數(shù)是塊循環(huán)矩陣的大小q-1 再加上兩個延遲(消息存儲單元的輸出延遲和流水線寄存器),即為q+1個時鐘周期。

      表2 譯碼過程所需的時鐘周期數(shù)Tab.2 The number of clock cycles required for the decoding process

      3.2 消息存儲單元設(shè)計

      消息存儲單元的作用是存儲譯碼過程中多進(jìn)制LDPC 碼N個符號的Wn、Wmn以及域元素En,該模塊包括地址生成器和RAM。RAM 的深度為q-1,將LLR 截斷后需要存儲一個符號的t個域元素相關(guān)的消息,每個域元素相關(guān)消息包括Wn(En,i)、Wmn(En,i)以及該域元素En,i(1 ≤i≤t),需要的比特數(shù)為Wid,則對一個符號t個域元素相關(guān)消息的存儲需要Wid ×t比特,因此RAM 的寬度為Wid ×t。圖5 展示了第一個消息存儲單元的RAM 中存儲內(nèi)容分布,E1,1為第1 個符號中最可靠的域元素,Wn(E1,1)為域元素E1,1對應(yīng)的LLR值,Wmn(E1,1)為域元素E1,1對應(yīng)的投票標(biāo)志矩陣;En,i為第n個符號中第i可靠的域元素,Wn(En,i)為En,i對應(yīng)的LLR值,Wmn(En,i)為域元素En,i對應(yīng)的投票標(biāo)志矩陣。則dc個RAM 所需存儲的總比特數(shù)為Wid ×t×(q-1) ×dc。

      3.3 VNU單元設(shè)計

      VNU 單元對外信息Wn-βWmn的值進(jìn)行排序,以找到最可靠的符號作為新的硬判決符號Qn,并對Wn和Wmn進(jìn)行更新。另外,在譯碼判決階段,為降低硬件資源的消耗,對VNU 單元中的資源進(jìn)行重復(fù)利用,將投票標(biāo)志矩陣Wmn置0,并根據(jù)dc個RAM 中存儲的Wn進(jìn)行譯碼判決,此時VNU 單元只用來對譯碼結(jié)果進(jìn)行判決,不對向量F更新。VNU 單元的電路結(jié)構(gòu)如圖6所示,包含串并轉(zhuǎn)換單元、投票定位單元、t個基本更新(Basic Update,BU)單元、并串轉(zhuǎn)換單元以及比較網(wǎng)絡(luò)單元。VNU 單元的輸入為RAM 輸出的向量F和CNU 單元投票的符號Rn,輸出為更新后向量Fnew和硬判決符號Qn。

      串并轉(zhuǎn)換單元將向量F轉(zhuǎn)換為向量Fi=[Wn(En,i),Wmn(En,i),En,i](1 ≤i≤t),其轉(zhuǎn)換方式為Fi=F[(i+1) × Wid -1:i× Wid]。

      投票定位單元通過將符號Rn與域元素En,i(1 ≤i≤t)的值進(jìn)行比較來確定t個域元素的位置使能sym_seli(i=1,…,t),作為BU 單元中Wn(En,i) 和Wmn(En,i)更新的使能。若Rn=En,i,則將第i個域元素的位置使能sym_seli置1,其余域元素的位置使能置0;如果域元素En,i(1 ≤i≤t)中沒有與符號Rn相等的域元素,則將所有域元素的位置使能置0。sym_seli=1 代表CNU 單元“投票”了第i個域元素。文獻(xiàn)[17]所設(shè)計的VNU 單元中將符號Rn分別與q個域元素對比并生成q個域元素的位置使能,在我們所設(shè)計的VNU 單元中,只需要將符號Rn分別與t≤q個域元素進(jìn)行對比并生成t個域元素的位置使能即可,可顯著降低所需比較器和寄存器的數(shù)目。

      t個BU 單元的作用是分別計算t個域元素中不同元素En,i(1 ≤i≤t)關(guān)聯(lián)的外信息Wn-βWmn并對Wn(En,i)和Wmn(En,i)進(jìn)行更新。相比于文獻(xiàn)[16,19]的VNU 單元中需要q個BU 單元,我們提出的電路結(jié)構(gòu)僅需要t(t<<q)個BU 單元來完成,將VNU單元的計算復(fù)雜度由O(q)減少至O(t)。BU 單元的電路結(jié)構(gòu)如圖7 所示,其中變量節(jié)點的度dv=4;Ui=[Wn(En,i),Wmn(En,i)](1 ≤i≤t),Uinew為Ui經(jīng) 過BU 單元更新后的向量;dv_sel 為變量節(jié)點使能,其值為“00”、“01”、“10”和“11”分別表示此時更新的為第1、2、3、4 個變量節(jié)點。對Wn(En,i)的更新:當(dāng)sym_seli為0時,選擇器M0選擇Wn(En,i)作為輸出;當(dāng)sym_seli為1時,若選擇器M0選擇Wn(En,i)+1 作為輸出,否則選擇器M0選擇Wn(En,i)作為輸出。Ui[0]、Ui[1]、Ui[2]、Ui[3]分別代表第1、2、3、4 個校驗節(jié)點是否對此符號進(jìn)行投票。對于選擇器M1的參數(shù)β表示假設(shè)在先前迭代中收到的投票數(shù),此處我們采用文獻(xiàn)[20]中的值,即β=2。BU 單元中的減法器為有符號數(shù)的減法,因此其輸出為Qb+1 比特,其功能是計算符號Rn對應(yīng)的Wn(En,i)-βWmn(En,i)的值。對Wmn(Eni)的更新:使用投票更新單元對Wmn進(jìn)行更新,即對Ui[3:0]的更新,其更新取決于sym_seli和dv_sel,當(dāng)dv_sel分別為“00”、“01”、“10”和“11”時,分別將Ui[0]、Ui[1]、Ui[2]、Ui[3]的值替換為sym_seli的值。拼接單元將更新后的Wn(En,i)和Wmn(En,i)進(jìn)行拼接得到向量Uinew。

      比較網(wǎng)絡(luò)單元的作用是對t個域元素對應(yīng)的外信息進(jìn)行比較,并選擇外信息最大值對應(yīng)的域元素作為當(dāng)前節(jié)點的硬判決符號Qn,采用文獻(xiàn)[21]中提出的一個最小值查找器的電路架構(gòu)。圖8 為對7 個域元素進(jìn)行比較的比較網(wǎng)絡(luò)單元的電路結(jié)構(gòu),其中選擇量化比特數(shù)為Qb=5,有限域p=5,則比較網(wǎng)絡(luò)單元的位寬為Qb+p+1=11,輸入的前Qb+1=6 位是后p=5 位所代表符號的LLR 值。所設(shè)計的比較網(wǎng)絡(luò)單元將7 個輸入分為三級比較,包括6 個二輸入選擇器和6 個比較器,其功能是對7 個值進(jìn)行比較,并輸出最大值以及最大值對應(yīng)的域元素。圖中每個輸入的前六位為一個種域元素對應(yīng)的外信 息Wn(En,i)-βWmn(En,i),后五位為其對應(yīng)的域元素En,i。

      3.4 校正子計算單元和CNU單元設(shè)計

      CNU 單元根據(jù)校正子s、校驗矩陣中非零元素的逆元素和變量節(jié)點的符號Qn來計算滿足校驗節(jié)點可靠性更高的符號Rn,用來翻轉(zhuǎn)下次迭代中變量節(jié)點的硬判決符號Qn。dc個CNU 單元首先用dc個有限域乘法器將校正子s分別與相乘,然后采用dc個有限域加法器將相乘的結(jié)果分別與Qn1,…,相加得到校驗節(jié)點的投票符號Rn1,…,當(dāng)校正子s=0 時,CNU 單元根據(jù)該校正子計算的投票符號Rn=Qn;當(dāng)s≠0 時,CNU 單元根據(jù)該校正子計算得到投票符號Rn≠Q(mào)n用來翻轉(zhuǎn)變量節(jié)點硬判決符號Qn。

      3.5 校驗矩陣存儲單元設(shè)計

      校驗矩陣存儲單元用來存儲校驗矩陣中的非零元素以及非零元素的逆元素。對于隨機(jī)的校驗矩陣,不僅需要存儲矩陣中的所有非零元素,還需要存儲矩陣中的所有非零元素所在的位置。隨機(jī)的校驗矩陣比規(guī)則的校驗矩陣所構(gòu)造的多進(jìn)制LDPC 碼的譯碼性能更好,但存儲隨機(jī)校驗矩陣中非零元素的位置會消耗較多的存儲資源,因此本文采用準(zhǔn)循環(huán)校驗矩陣。校驗矩陣存儲單元包括地址生成器和ROM,圖10 為校驗矩陣中元素在ROM 中的存儲分布,ROM 的位寬為dc×p,深度為2M,其中hmn1,…分別代表校驗矩陣HM×N的第m行中第1,…,dc個非零元素分別代表校驗矩陣HM×N的第m行中第1,…,dc個非零元素的逆元素。將校驗矩陣中第i行的非零元素依次存儲在ROM 偶數(shù)地址中,將校驗矩陣中第i行的非零元素的逆元素依次存儲在ROM 奇數(shù)地址中。

      4 硬件實現(xiàn)結(jié)果及分析

      本設(shè)計在Xilinx Virtex-VI XC6VLX240T 的FPGA 上實現(xiàn),完成了定義在GF(32)上,碼長為837個符號,碼率為0.85,準(zhǔn)循環(huán)校驗矩陣H124,837的dc和dv分別為27和4的準(zhǔn)循環(huán)多進(jìn)制LDPC 碼譯碼器的實現(xiàn),在譯碼器的實現(xiàn)中LLR 值截斷長度t為10,量化比特數(shù)Qb為5。

      經(jīng)過統(tǒng)計得到譯碼器在FPGA上實現(xiàn)的BER曲線如圖11 所示。在BER=10-4處,硬件性能仿真比軟件浮點仿真差0.25 dB。造成這種差距的主要原因是定點運(yùn)算的精度損失以及對軟信息的截斷處理。

      表3 統(tǒng)計了使用ES-GBFDA、SES-GBFDA 和TSES-GBFDA 等譯碼算法實現(xiàn)譯碼器的綜合結(jié)果,表中多進(jìn)制LDPC 碼的碼長和碼率相似,因此它們之間的資源可以進(jìn)行比較。由于我們提出的T-SESGNFDA 算法是基于ES-GBFDA 和SES-GBFDA 譯碼算法進(jìn)行的改進(jìn),因此我們對這三種譯碼器消耗的硬件資源與達(dá)到的吞吐量進(jìn)行了比較。與文獻(xiàn)[17]中的ES-GBFDA 譯碼器相比本文所實現(xiàn)的譯碼器查找表和寄存器資源分別減少了82%和79.3%,但是吞吐量僅是其20.5%。與文獻(xiàn)[20]中的SES-GBFDA 譯碼器相比本文所實現(xiàn)的譯碼器查找表和寄存器資源分別減少了64.5%和76.3%,但是吞吐量僅是其12.6%。文獻(xiàn)[17,20]使用分布式RAM 存儲中間消息,減少了讀出中間消息的延時,使吞吐量有較大的提高,但是消耗了較多的查找表,本文使用Block RAM 來存儲中間消息,顯著降低了查找表的消耗,但是Block RAM 有讀出時延,因此吞吐量較低。表3中吞吐量的計算方法如式(10)所示,其中Th 表示譯碼器的吞吐量(單位為Mbps),N代表一個LDPC 碼碼字的符號數(shù),p為伽羅華域GF(2p)中2的階次,f為譯碼器可以達(dá)到的最大頻率(單位為MHz),Ldec代表一個碼字譯碼結(jié)束所需消耗的時鐘周期數(shù)。

      表3 多進(jìn)制LDPC譯碼器綜合結(jié)果Tab.3 Synthesize results for non-binary LDPC decoder

      從圖3 可看出,所提出的譯碼方法在信噪比為5.2 dB、截斷長度為10、量化為5 比特時的BER 達(dá)到了4×10-6,所實現(xiàn)的譯碼器架構(gòu),在104 MHz 時達(dá)到了90 Mbps 的吞吐量,消耗的查找表和寄存器資源較少,適用于無線通信系統(tǒng),例如:DVB-S2 和IEEE 802.11 n 等,接下來我們還可以通過使用分布式RAM 代替塊RAM 來減少每次消息向量的讀出延遲,進(jìn)一步提高其吞吐量,使其適用于光通信。

      5 結(jié)論

      針對多進(jìn)制LDPC 碼譯碼器實現(xiàn)復(fù)雜度較高的問題,提出了面向SES-GBFDA算法的初始化信息截斷的T-SES-GBFDA 算法,從而有效降低復(fù)雜度。進(jìn)一步,基于所提出譯碼算法設(shè)計了低復(fù)雜度部分并行譯碼器的電路結(jié)構(gòu)。對于定義在GF(32)上的多進(jìn)制LDPC 碼,僅使用10 個基本更新單元來處理變量節(jié)點消息的更新,顯著降低了計算復(fù)雜度。在FPGA 平臺實現(xiàn)了設(shè)計的譯碼器架構(gòu),實現(xiàn)結(jié)果表明,與SES-GBFDA 譯碼器相比,所提出譯碼器的吞吐量達(dá)到90 Mbps,并且查找表和寄存器資源消耗分別減少了64.5%和76.3%,適用于吞吐量要求不高并且要求硬件實現(xiàn)復(fù)雜度低的通信系統(tǒng)中。所提出的譯碼器在譯碼性能損失較小的情況下,在性能與復(fù)雜度之間實現(xiàn)了良好折中。

      猜你喜歡
      譯碼器譯碼校驗
      基于校正搜索寬度的極化碼譯碼算法研究
      糾錯模式可配置的NAND Flash BCH譯碼器設(shè)計
      爐溫均勻性校驗在鑄鍛企業(yè)的應(yīng)用
      跟蹤導(dǎo)練(一)5
      從霍爾的編碼譯碼理論看彈幕的譯碼
      新聞傳播(2016年3期)2016-07-12 12:55:27
      LDPC 碼改進(jìn)高速譯碼算法
      遙測遙控(2015年2期)2015-04-23 08:15:19
      大型電動機(jī)高阻抗差動保護(hù)穩(wěn)定校驗研究
      電測與儀表(2015年1期)2015-04-09 12:03:02
      基于加窗插值FFT的PMU校驗方法
      鍋爐安全閥在線校驗不確定度評定
      HINOC2.0系統(tǒng)中高速LDPC譯碼器結(jié)構(gòu)設(shè)計
      东辽县| 九江县| 都江堰市| 抚远县| 天峻县| 定州市| 九龙坡区| 吐鲁番市| 县级市| 寻乌县| 清徐县| 油尖旺区| 彰化市| 横山县| 兴城市| 浦县| 闽侯县| 剑阁县| 金溪县| 开鲁县| 龙井市| 长泰县| 湄潭县| 周口市| 沭阳县| 朔州市| 朝阳市| 应城市| 祥云县| 镇康县| 冕宁县| 鸡东县| 资溪县| 塔城市| 黄石市| 平乐县| 大竹县| 常州市| 乐业县| 札达县| 浏阳市|