專利名稱:一種塊狀低密度校驗(yàn)碼的譯碼方法及可重構(gòu)多模式譯碼器的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及高速寬帶無線數(shù)字通信領(lǐng)域,尤其涉及一種塊狀低密度校驗(yàn)碼 的譯碼方法及可重構(gòu)多模式譯碼器。
技術(shù)背景與Turbo碼相比,低密度校驗(yàn)碼具有逼近香農(nóng)極限的糾錯(cuò)性能及錯(cuò)誤平層 低、譯碼并行度高和延遲小的優(yōu)點(diǎn),特別適合應(yīng)用于高速寬帶無線數(shù)字通信系 統(tǒng)中,保證數(shù)據(jù)的可靠高效傳輸。目前,低密度校驗(yàn)碼在許多領(lǐng)域得到了應(yīng)用 第二代衛(wèi)星數(shù)字電視視頻廣播標(biāo)準(zhǔn)(DVB-S2)采用低密度校驗(yàn)碼作為核心信道編 碼技術(shù);802.16e、 802.11n兩個(gè)國(guó)際標(biāo)準(zhǔn)采納低密度校驗(yàn)碼作為補(bǔ)充的信道編碼 方案;我國(guó)數(shù)字電視地面?zhèn)鬏敇?biāo)準(zhǔn)及手機(jī)移動(dòng)電視標(biāo)準(zhǔn)都將低密度校驗(yàn)碼作為 主要的信道糾錯(cuò)編碼。傳統(tǒng)的低密度校驗(yàn)矩陣都是隨機(jī)構(gòu)造得到的,由于隨機(jī)特性的引入,增加 了譯碼過程中變量節(jié)點(diǎn)與校驗(yàn)節(jié)點(diǎn)連接關(guān)系網(wǎng)絡(luò)的實(shí)現(xiàn)復(fù)雜度,硬件代價(jià)比較 高。而具有結(jié)構(gòu)化特性的低密度校驗(yàn)碼更受到了人們的關(guān)注和青睞,校驗(yàn)矩陣 的某些結(jié)構(gòu)化特性,可以大大簡(jiǎn)化實(shí)現(xiàn)的控制邏輯,增加譯碼器設(shè)計(jì)的靈活性 與通用性。本發(fā)明涉及的一類基于單位循環(huán)置換陣的塊狀低密度校驗(yàn)碼就是其 中一種。在國(guó)內(nèi)外,有很多文獻(xiàn)討論了結(jié)構(gòu)化低密度校驗(yàn)碼的譯碼方法與實(shí)現(xiàn)方案, 但很多設(shè)計(jì)都只針對(duì)某一碼率或某一部分校驗(yàn)矩陣有效,而并沒有更多地考慮 到譯碼器的通用性與可配置性。例如,對(duì)比文獻(xiàn)T.Zhang, "A 54 Mbps (3,6)-REGULAR FPGA LDPC DECODER", 2002,他給出了一種結(jié)構(gòu)化規(guī)則低 密度校驗(yàn)碼的硬件譯碼器實(shí)現(xiàn),采用了部分并行結(jié)構(gòu),迭代過程中完整地保存 了變量節(jié)點(diǎn)與校驗(yàn)節(jié)點(diǎn)的外部信息,存儲(chǔ)資源比較大,數(shù)據(jù)吞吐量固定;對(duì)比 文獻(xiàn)諾基亞公司的Tejas Bhatt等人,"Pipelined Block-Serial Decoder Architecture for Structured LDPC Codes",他們利用部分并行調(diào)度的迭代更新算法,設(shè)計(jì)出了 一種高性能的串行譯碼器,但他們沒有考慮接收機(jī)對(duì)譯碼器在多種碼字長(zhǎng)度和 多種編碼速率方面的要求。而在許多應(yīng)用環(huán)境中,都要求譯碼器能夠具有一定的通用特性。例如,在 發(fā)送端可以感知信道環(huán)境的情形下,它可以根據(jù)當(dāng)前的信道條件調(diào)整編碼與調(diào) 制的模式,這就要求接收機(jī)能夠根據(jù)接收到的模式字做出相應(yīng)的調(diào)整,對(duì)于譯碼器來說,就是要能夠正確譯碼出匹配于當(dāng)前校驗(yàn)矩陣及碼率的信息流。另一 方面,如果譯碼器能夠根據(jù)系統(tǒng)數(shù)據(jù)吞吐量的不同,調(diào)整譯碼的并行度,則可 以采用最小的硬件資源來實(shí)現(xiàn)譯碼,從而達(dá)到吞吐量與硬件實(shí)現(xiàn)復(fù)雜度的最佳 折衷。因此,如何優(yōu)化設(shè)計(jì)一種適合多種碼率多種碼長(zhǎng),吞吐量可配的高性能 塊狀低密度校驗(yàn)碼的統(tǒng)一譯碼結(jié)構(gòu),以最小的硬件資源同時(shí)實(shí)現(xiàn)多種模式的低 密度校驗(yàn)碼譯碼,具有非??捎^的應(yīng)用前景。 發(fā)明內(nèi)容本發(fā)明的目的是克服現(xiàn)有技術(shù)的不足,提供一種塊狀低密度校驗(yàn)碼的譯碼 方法及可重構(gòu)多模式譯碼器。1. 一種塊狀低密度校驗(yàn)碼的譯碼方法包括以下步驟1 )設(shè)定低密度校驗(yàn)矩陣信息以及譯碼過程中的可配參數(shù);2) 接收信道輸出的解調(diào)符號(hào)信息;3) 對(duì)解調(diào)符號(hào)信息進(jìn)行預(yù)處理,獲得比特軟信息,作為迭代初始消息;4) 校驗(yàn)節(jié)點(diǎn)分組并行更新傳遞給變量節(jié)點(diǎn)的外部消息,每組校驗(yàn)節(jié)點(diǎn)消息處 理完畢后,立即更新與其相連的所有變量節(jié)點(diǎn);當(dāng)所有校驗(yàn)節(jié)點(diǎn)分組串行更新 完畢后,結(jié)束一次迭代;5) 取變量節(jié)點(diǎn)的偽后驗(yàn)概率消息進(jìn)行硬判決,并檢測(cè)是否是合法碼字,如果 是合法碼字或當(dāng)前迭代次數(shù)超過預(yù)設(shè)的最大迭代次數(shù),則終止整個(gè)迭代;否則, 進(jìn)入下一次迭代;6) 當(dāng)?shù)V购?,輸出相?yīng)的硬判決比特信息流,譯碼結(jié)束。2. 設(shè)定低密度校驗(yàn)矩陣信息以及譯碼過程中的可配參數(shù)包括以下步驟1) 根據(jù)發(fā)送端采用的校驗(yàn)矩陣,配置譯碼需要的校驗(yàn)矩陣的所有特征值P。., 行塊數(shù)M和列塊數(shù)iV;2) 根據(jù)譯碼延遲要求,配置譯碼最大迭代次數(shù)/7^ _和消息更新并行因子 Z/,從而確定當(dāng)前譯碼所需要的并行處理單元數(shù)目、分布式存儲(chǔ)器塊數(shù)及實(shí)時(shí) 置換網(wǎng)絡(luò)的大小,Z/必須能夠整除子塊大小丄,最小為l,最大為丄;3) 根據(jù)度分布向量P和(?、并行因子Z/及M、 AT,初始化迭代控制邏輯單元。3. 對(duì)解調(diào)符號(hào)信息進(jìn)行預(yù)處理包括以下步驟1) 獲得解調(diào)的同相正交的兩路基帶調(diào)制信號(hào)2) 采用最大似然準(zhǔn)則,將單個(gè)接收符號(hào)信息轉(zhuǎn)化為1og2(M)個(gè)并行比特軟信息;3) 將比特軟信息按映射的先后順序?qū)懭敕植际降淖兞抗?jié)點(diǎn)消息存儲(chǔ)模塊。4.每組校驗(yàn)節(jié)點(diǎn)消息處理包括以下步驟l展收與其相連的變量節(jié)點(diǎn)送入的外部消息值;2) 對(duì)所有消息的幅度值進(jìn)行比較,保存最小值與次最小值,舍棄其它值,同 時(shí)保存最小值對(duì)應(yīng)的節(jié)點(diǎn)標(biāo)號(hào);3) 對(duì)所有消息的符號(hào)位進(jìn)行異或處理,保存每個(gè)消息的符號(hào)位及異或處理結(jié)果;4) 根據(jù)預(yù)設(shè)偏置因子,對(duì)最小值與次最小值做偏置減法,得到偏置后的最小 值與次最小值,如果其中某個(gè)值小于O,則強(qiáng)制偏置為0;5) 將偏置后的最小值與次最小值、最小值節(jié)點(diǎn)標(biāo)號(hào)及符號(hào)位的處理結(jié)果分節(jié) 拍存入校驗(yàn)節(jié)點(diǎn)消息存儲(chǔ)單元中,并同時(shí)更新為變量節(jié)點(diǎn)消息計(jì)算模塊做準(zhǔn)備 的寄存器。譯碼器裝置中各個(gè)模塊之間的連接關(guān)系為校驗(yàn)矩陣信息初始模塊與控制 邏輯模塊相接;迭代消息預(yù)處理模塊與變量節(jié)點(diǎn)消息存儲(chǔ)模塊相接;變量節(jié)點(diǎn) 消息存儲(chǔ)模塊、變量節(jié)點(diǎn)消息處理模塊通過實(shí)時(shí)置換網(wǎng)絡(luò)模塊與校驗(yàn)節(jié)點(diǎn)消息 存儲(chǔ)模塊及校驗(yàn)節(jié)點(diǎn)消息處理模塊雙向相接;迭代停止與硬判決輸出模塊、變 量節(jié)點(diǎn)消息處理模塊相接;控制邏輯模塊分別與變量節(jié)點(diǎn)消息存儲(chǔ)模塊、實(shí)時(shí) 置換網(wǎng)絡(luò)模塊、變量節(jié)點(diǎn)消息處理模塊、校驗(yàn)節(jié)點(diǎn)消息存儲(chǔ)模塊、校驗(yàn)節(jié)點(diǎn)消 息處理模塊、迭代停止與硬判決輸出模塊相接。變量節(jié)點(diǎn)消息處理模塊連接關(guān)系為外部信息恢復(fù)模塊、消息緩存FIFO與 加法模塊相接。校驗(yàn)節(jié)點(diǎn)消息處理模塊連接關(guān)系為符號(hào)與幅度分離器與比較器、符號(hào)緩 存單元相接;第一比較器、最小值與標(biāo)號(hào)鎖存相接;第二比較器、次最小值與 標(biāo)號(hào)鎖存相接;第一比較器、第二比較器都與數(shù)據(jù)選擇器相接;最小值與標(biāo)號(hào) 鎖存、次最小值與標(biāo)號(hào)鎖存與數(shù)據(jù)偏置操作模塊相接;符號(hào)緩存單元、異或單 元相接;最小值與標(biāo)號(hào)鎖存、次最小值與標(biāo)號(hào)鎖存、數(shù)據(jù)偏置操作模塊、符號(hào) 緩存單元、異或單元與校驗(yàn)節(jié)點(diǎn)消息壓縮存儲(chǔ)單元相接。迭代停止與硬判決模塊連接關(guān)系為分組前次迭代消息與分組符號(hào)無變化 滑動(dòng)窗口相接;分組當(dāng)前迭代消息與分組硬判決和校驗(yàn)單元、分組符號(hào)無變化 滑動(dòng)窗口相接;分組硬判決和校驗(yàn)單元、分組校驗(yàn)成功滑動(dòng)窗口相接;分組校 驗(yàn)成功滑動(dòng)窗口與總校驗(yàn)成功檢測(cè)單元相接,分組符號(hào)無變化滑動(dòng)窗口與總符 號(hào)無變化檢測(cè)單元相接;總校驗(yàn)成功檢測(cè)單元、總符號(hào)無變化檢測(cè)單元跟與門 相接;與門、迭代次數(shù)判定與或門相接;分組硬判決和校驗(yàn)單元、硬判決輸出FIFO相接。本發(fā)明具有的有益效果包括以下幾個(gè)方面1) 提供一種支持不同碼長(zhǎng)在多種碼率下的塊狀低密度校驗(yàn)碼譯碼器結(jié)構(gòu)設(shè) 計(jì),通過對(duì)校驗(yàn)矩陣信息的初始配置,改變控制單元的控制輸出,以適配不同 碼率或碼長(zhǎng)的塊狀低密度校驗(yàn)碼譯碼;2) 提供一種數(shù)據(jù)吞吐量可控的譯碼器結(jié)構(gòu)設(shè)計(jì),通過配置不同并行因子,來 達(dá)到系統(tǒng)吞吐量與硬件實(shí)現(xiàn)資源復(fù)雜度的最佳折衷;3) 提供一種最大化利用資源,最簡(jiǎn)化控制的譯碼器設(shè)計(jì)節(jié)點(diǎn)消息采用分布 式存儲(chǔ)方式,讀寫訪問控制簡(jiǎn)單;檢驗(yàn)節(jié)點(diǎn)消息以壓縮形式保存,變量節(jié)點(diǎn)只 保存?zhèn)魏篁?yàn)概率消息,有效地提高了存儲(chǔ)資源的利用率;4) 提供一種多級(jí)流水線結(jié)構(gòu)的迭代譯碼設(shè)計(jì),充分提高了譯碼器的數(shù)據(jù)吞吐
圖1是塊狀低密度校驗(yàn)碼的校驗(yàn)矩陣示意圖; 圖2是一種可重構(gòu)多模式塊狀低密度校驗(yàn)碼譯碼器方框圖; 圖3是變量節(jié)點(diǎn)消息更新模塊方框圖; 圖4是校驗(yàn)節(jié)點(diǎn)消息更新模塊方框圖; 圖5是實(shí)時(shí)循環(huán)置換網(wǎng)絡(luò)模塊方框圖; 圖6是迭代停止與硬判決模塊方框圖; 圖7是實(shí)施例1中,3/4碼率低密度校驗(yàn)矩陣示意圖; 圖8是迭代更新多級(jí)流水線示意圖; 圖9是實(shí)施例2中,1/2碼率低密度校驗(yàn)矩陣示意圖; 圖10是實(shí)施例中,15次迭代,分組并行偏置迭代譯碼性能曲線圖; 圖ll是實(shí)施例中,取不同并行因子時(shí),譯碼器的數(shù)據(jù)吞吐量曲線圖。
具體實(shí)施方式
以下結(jié)合附圖對(duì)本發(fā)明的具體實(shí)施方式
進(jìn)行說明。本領(lǐng)域內(nèi)公知,低密度校驗(yàn)矩陣H每一行對(duì)應(yīng)一個(gè)校驗(yàn)方程,對(duì)于一個(gè)行塊數(shù)為M的塊校驗(yàn)矩陣來說, 一共有M^個(gè)校驗(yàn)方程;對(duì)應(yīng)于這個(gè)H矩陣的低密度校驗(yàn)碼字,當(dāng)且僅當(dāng)上述碼字滿足所有校驗(yàn)方程時(shí),才能譯碼成功,正 確恢復(fù)出信息比特。對(duì)于每組低密度校驗(yàn)碼字進(jìn)行譯碼,需要迭代運(yùn)算,在變 量節(jié)點(diǎn)與檢驗(yàn)節(jié)點(diǎn)之間反復(fù)傳遞與更新消息。其中,最基本的迭代譯碼算法稱 為和積譯碼算法或基于消息置信度的傳遞算法,而本發(fā)明中采用的是簡(jiǎn)化的最小和積偏置補(bǔ)償算法。這個(gè)算法在似然對(duì)數(shù)域上操作,只有加減法運(yùn)算,復(fù)雜 度低。它的消息更新方程如下校驗(yàn)節(jié)點(diǎn)的更新運(yùn)算,由校驗(yàn)節(jié)點(diǎn)消息更新模塊完成,如下式完成更新及<formula>formula see original document page 9</formula> (i)其中,a^表示從變量節(jié)點(diǎn)"發(fā)送給校驗(yàn)節(jié)點(diǎn)附的迭代消息,心,表示從校驗(yàn)節(jié)點(diǎn)m發(fā)送給變量節(jié)點(diǎn)w的迭代消息,iV(附)表示與校驗(yàn)節(jié)點(diǎn)m相連的變量 節(jié)點(diǎn)集合;-為偏置因子,用于迭代中的偏置計(jì)算。從上述更新方程可以看到, 校驗(yàn)節(jié)點(diǎn)發(fā)送給與其相連的變量節(jié)點(diǎn)集合的消息中,幅度值只有輸入消息幅度 值的最小值與次最小值兩種可能,而符號(hào)位則通過選擇輸入消息的符號(hào)位異或 產(chǎn)生。因此,校驗(yàn)節(jié)點(diǎn)消息更新模塊輸出的消息只需要保存最小值,次最小值 與符號(hào)位信息即可,而不必要保存所有發(fā)送消息A— ,這樣可以大大節(jié)省存儲(chǔ) 空間。變量節(jié)點(diǎn)的更新運(yùn)算,由變量節(jié)點(diǎn)消息更新模塊完成,如下式完成更新-<formula>formula see original document page 9</formula> (2)<formula>formula see original document page 9</formula> (3) 其中,義"為信道的初始似然信息,A"為每個(gè)變量節(jié)點(diǎn)的偽后驗(yàn)概率。初始 似然信息通過迭代初始預(yù)處理計(jì)算得到。從式(4)可以看到,變量節(jié)點(diǎn)傳遞給校 驗(yàn)節(jié)點(diǎn)的消息0",可以由偽后驗(yàn)概率與相應(yīng)校驗(yàn)節(jié)點(diǎn)傳遞給變量節(jié)點(diǎn)的消息之差產(chǎn)生,因此,我們可省去保存a,消息的存儲(chǔ)空間,而只保存變量節(jié)點(diǎn)對(duì)應(yīng) 的偽后驗(yàn)概率,提高存儲(chǔ)資源的利用率。 實(shí)施例i如圖7所示,本實(shí)施例中的3/4碼率塊狀低密度校驗(yàn)矩陣。在實(shí)施例中,校驗(yàn)矩陣信息初始模塊將設(shè)定低密度校驗(yàn)矩陣信息以及譯碼過程中的可配參數(shù)1) 矩陣行分塊數(shù)為^=8,列分塊數(shù)為W-32,其中每個(gè)子塊大小為 256X256,元素值為P,.;2) 設(shè)定譯碼最大迭代次數(shù)/7^ _=15;設(shè)定并行因子Z/:32,則變量節(jié)點(diǎn)與 校驗(yàn)節(jié)點(diǎn)消息分布式存儲(chǔ)器塊數(shù)為32塊;實(shí)時(shí)循環(huán)置換網(wǎng)絡(luò)的大小為32,級(jí)數(shù) 為5級(jí);并行工作的校驗(yàn)節(jié)點(diǎn)與變量節(jié)點(diǎn)消息單元數(shù)目分別為32個(gè);設(shè)定變量節(jié)點(diǎn)度分布向量為P = [3, 3, 3,3,3,3, 3,3, 3, 3, 3,3, 3,3, 3, 3, 5, 5,5,5, 5,5, 5, 3, 2,2, 2, 2,2,2, 2, 2];設(shè)定校驗(yàn)節(jié)點(diǎn)度分布向量為(5 = [13,12,12,13,13,13,13,13l,最大校驗(yàn)節(jié)點(diǎn)度為C =13;!■ J max3)根據(jù)度分布向量^和< 、并行因子Z/及Af、 7V,初始化迭代控制邏輯單元。在實(shí)施例中,信道接收解調(diào)符號(hào)為QPSK或16QAM調(diào)制信號(hào),對(duì)應(yīng)于每個(gè) 譯碼幀的符號(hào)數(shù)分別為4096或2048個(gè)。譯碼器迭代初始預(yù)處理模塊202,根據(jù) 最大似然準(zhǔn)則,將單個(gè)接收符號(hào)信息轉(zhuǎn)化為2或4個(gè)并行比特軟信息,并依次 循環(huán)寫入分布的32個(gè)變量節(jié)點(diǎn)消息存儲(chǔ)器203中,作為迭代的初始信道信息。 在預(yù)處理模塊202計(jì)算完畢后,給出迭代啟動(dòng)與使能信號(hào),譯碼迭代開始工作。在實(shí)施例中,并行處理單元為32個(gè),校驗(yàn)矩陣的校驗(yàn)節(jié)點(diǎn)分為64組串行 更新,每8組校驗(yàn)節(jié)點(diǎn)屬于同一個(gè)子塊矩陣。傳統(tǒng)的迭代更新時(shí)序是,每一分 組校驗(yàn)節(jié)點(diǎn)同時(shí)更新完畢后,更新與其相連的所有變量節(jié)點(diǎn)消息,接著再更新 下一分組校驗(yàn)節(jié)點(diǎn)的消息,直至64個(gè)分組串行更新完畢,結(jié)束一次迭代。這種 更新時(shí)序會(huì)導(dǎo)致校驗(yàn)節(jié)點(diǎn)處理單元與變量節(jié)點(diǎn)處理單元交替處于空閑狀態(tài),完 成一次迭代占用時(shí)間較長(zhǎng)。實(shí)施例中,做了相應(yīng)改進(jìn),如圖8所示,采用多級(jí) 流水線設(shè)計(jì),具體實(shí)施方式
為校驗(yàn)節(jié)點(diǎn)消息讀取與解壓縮、變量節(jié)點(diǎn)消息讀取與外部信息恢復(fù)、校驗(yàn)節(jié) 點(diǎn)消息更新處理、校驗(yàn)節(jié)點(diǎn)更新消息壓縮與存儲(chǔ)、變量節(jié)點(diǎn)消息更新處理、變 量節(jié)點(diǎn)更新消息存儲(chǔ)六個(gè)操作并行工作;在分組校驗(yàn)節(jié)點(diǎn)消息更新模塊處理當(dāng) 前分組節(jié)點(diǎn)時(shí),分組變量節(jié)點(diǎn)消息更新模塊處理前一分組節(jié)點(diǎn),減少處理單元 的空閑時(shí)間,有效地提高數(shù)據(jù)處理能力與吞吐量;為防止訪問沖突,每8組校 驗(yàn)節(jié)點(diǎn)更新完畢,即處于子塊矩陣切換時(shí),插入若干空閑節(jié)拍,節(jié)拍數(shù)由變量 節(jié)點(diǎn)處理單元延遲而定。如圖3所示,變量節(jié)點(diǎn)消息處理模塊內(nèi)部連接關(guān)系為外部信息恢復(fù)模塊 301、消息緩存FIFO模塊302、加法模塊303相接。在實(shí)施例中,變量節(jié)點(diǎn)消息處理模塊具體實(shí)施方式
為每個(gè)變量節(jié)點(diǎn)處理單元從變量節(jié)點(diǎn)消息存儲(chǔ)器中讀取偽后驗(yàn)概率消息,送 入外部信息恢復(fù)模塊301產(chǎn)生外部信息,作為置換網(wǎng)絡(luò)的輸入,經(jīng)過置換后, 傳遞給相應(yīng)的校驗(yàn)節(jié)點(diǎn)進(jìn)行消息更新;另一方面,外部信息輸入消息緩存FIFO 模塊302,等待校驗(yàn)節(jié)點(diǎn)消息更新完畢,并回傳給變量節(jié)點(diǎn)時(shí),取出緩存的外部消息,通過加法模塊303,與最新的校驗(yàn)節(jié)點(diǎn)消息相加得到更新的偽后驗(yàn)概率消 息。如圖4所示,校驗(yàn)節(jié)點(diǎn)消息處理模塊內(nèi)部連接關(guān)系為符號(hào)與幅度分離器 401與比較器402、比較器403、符號(hào)緩存單元408相接;比較器402、最小值 與標(biāo)號(hào)鎖存405相接;比較器403、次最小值與標(biāo)號(hào)鎖存406相接;比較器402、 比較器403都與數(shù)據(jù)選擇器404相接;最小值與標(biāo)號(hào)鎖存405、次最小值與標(biāo)號(hào) 鎖存406與數(shù)據(jù)偏置操作模塊407相接;符號(hào)緩存單元408、異或單元409相接; 最小值與標(biāo)號(hào)鎖存405、次最小值與標(biāo)號(hào)鎖存406、數(shù)據(jù)偏置操作模塊407、符 號(hào)緩存單元408、異或單元409與校驗(yàn)節(jié)點(diǎn)消息壓縮存儲(chǔ)單元410相接。在實(shí)施例中,校驗(yàn)節(jié)點(diǎn)消息處理模塊具體實(shí)施方式
為每個(gè)校驗(yàn)節(jié)點(diǎn)處理 單元順序接收與其相連的變量節(jié)點(diǎn)傳遞的消息,消息首先經(jīng)過符號(hào)與幅度分離 器401,分離出幅度信息與符號(hào)信息;幅度信息分別送入第一比較器402、第二 比較器403及數(shù)據(jù)選擇器404;第一比較器402比較的是當(dāng)前輸入信息幅度與從 最小值與標(biāo)號(hào)鎖存405模塊反饋回來的最小值的大小,如果當(dāng)前輸入幅度更大, 則輸出控制信號(hào)O,如果當(dāng)前輸入幅度更小,則輸出控制信號(hào)1;第二比較器403 比較的是當(dāng)前輸入信息幅度與從次最小值與標(biāo)號(hào)鎖存406模塊反饋回來的次最 小值的大小,如果當(dāng)前輸入幅度更大,則輸出控制信號(hào)O,如果當(dāng)前輸入幅度更 小,則輸出控制信號(hào)l;第一,第二比較器的輸出控制信號(hào)作為數(shù)據(jù)選擇器404 的選通模塊,根據(jù)控制信號(hào)的不同組合,輸出當(dāng)前幸存最小值與標(biāo)號(hào)、當(dāng)前幸 存次最小值與標(biāo)號(hào);此比較、選擇過程的循環(huán)次數(shù)由當(dāng)前校驗(yàn)節(jié)點(diǎn)的度而定, 通過控制邏輯模塊產(chǎn)生相應(yīng)的比較復(fù)位信號(hào)、比較使能信號(hào)及比較停止信號(hào); 當(dāng)比較、選擇過程停止后,啟動(dòng)數(shù)據(jù)偏置操作模塊407,對(duì)最小值與次最小值都 進(jìn)行偏置運(yùn)算,并輸出偏置后的最小值、次最小值;對(duì)于符號(hào)信息, 一方面送 入符號(hào)緩存單元408保存每個(gè)輸入信息的符號(hào)信息,另一方面送入異或單元409 進(jìn)行異或操作,當(dāng)所有信息處理完畢時(shí),異或單元409輸出的結(jié)果為所有輸入 信息符號(hào)位的異或結(jié)果;校驗(yàn)節(jié)點(diǎn)消息處理模塊最終的輸出包括偏置后的最 小值及標(biāo)號(hào)、偏置后的次最小值、符號(hào)信息及符號(hào)異或結(jié)果,這些更新的消息 將分節(jié)拍寫入校驗(yàn)節(jié)點(diǎn)消息壓縮存儲(chǔ)單元410。如圖6所示,迭代停止與硬判決模塊電路內(nèi)部關(guān)系為分組前次迭代消息 601與分組符號(hào)無變化滑動(dòng)窗口 605相接;分組當(dāng)前迭代消息602與分組硬判決 和校驗(yàn)單元603、分組符號(hào)無變化滑動(dòng)窗口 605相接;分組硬判決和校驗(yàn)單元 603、分組校驗(yàn)成功滑動(dòng)窗口 604相接;分組校驗(yàn)成功滑動(dòng)窗口 604與總校驗(yàn)成ii功檢測(cè)單元606相接,分組符號(hào)無變化滑動(dòng)窗口 605與總符號(hào)無變化檢測(cè)單元 607相接;總校驗(yàn)成功檢測(cè)單元606、總符號(hào)無變化檢測(cè)單元607跟與門608相 接;與門608、迭代次數(shù)判定609與或門610相接;分組硬判決和校驗(yàn)單元603、 硬判決輸出FIFO 611相接。在實(shí)施例中,迭代停止與硬判決模塊電路具體的實(shí)施方式為 分組校驗(yàn)成功滑動(dòng)窗口 604與分組符號(hào)無變化滑動(dòng)窗口 605的窗口寬度取 64,對(duì)應(yīng)于64個(gè)串行分組;分組前次迭代消息601與分組當(dāng)前迭代消息602進(jìn) 行符號(hào)比較,每32個(gè)消息中,只要有一個(gè)消息的符號(hào)發(fā)生變化,則送入分組符 號(hào)無變化滑動(dòng)窗口 605的信號(hào)為0,否則為1;總符號(hào)無變化檢測(cè)單元607檢測(cè) 分組符號(hào)無變化滑動(dòng)窗口 605中的信息,只要窗口中有一個(gè)信息為O,總符號(hào)無 變化檢測(cè)單元607就輸出信號(hào)0,否則為l;另一方面,分組當(dāng)前迭代消息602 送入分組硬判決和校驗(yàn)單元603,提取符號(hào)位,完成判決與分組校驗(yàn)操作,校驗(yàn) 結(jié)果送入分組校驗(yàn)成功滑動(dòng)窗口 604;總符號(hào)無變化檢測(cè)單元607檢測(cè)分組校驗(yàn) 成功滑動(dòng)窗口 604的信息,只要窗口中有一個(gè)信息為O,總符號(hào)無變化檢測(cè)單元 607就輸出信號(hào)0,否則為l;總校驗(yàn)成功檢測(cè)單元606、總符號(hào)無變化檢測(cè)單 元607跟與門608相接,如果與門608輸出信號(hào)為1,則表明當(dāng)前碼字為合法碼 字,譯碼成功,否則譯碼失??;考慮到譯碼迭代受到預(yù)設(shè)的最大迭代次數(shù)限制, 因此,譯碼終止信號(hào)將由與門608的輸出信號(hào)與迭代次數(shù)判定609的輸出信號(hào) 或操作得到,當(dāng)或門610信號(hào)輸出從0跳變?yōu)?時(shí),表明整個(gè)迭代譯碼結(jié)束, 可以順序從硬判決輸出FIFO 611輸出相應(yīng)的譯碼比特流。 在實(shí)施例中,譯碼器的凈信息比特吞吐量計(jì)算公式為t=-/加 - Mb (5)其中,M為行分塊數(shù),7V為列分塊數(shù),丄為子塊大小,及為碼率; /^及皿為譯碼器最高迭代次數(shù),/_為譯碼器工作時(shí)鐘; 乙6為每一分組節(jié)點(diǎn)更新所需要的時(shí)鐘數(shù),與校驗(yàn)節(jié)點(diǎn)的最大度值相等; T^為流水線中子塊切換時(shí),插入的空閑節(jié)拍數(shù),取決于變量節(jié)點(diǎn)更新的處 理延遲時(shí)鐘數(shù);M^為每一子塊對(duì)應(yīng)的分組數(shù)目,與并行因子Z/相關(guān),M^=£/Z/。 在實(shí)施例中,譯碼器基于XilinxFPGAVirtex-5平臺(tái),采用Verilog硬件語言 編寫實(shí)現(xiàn)。譯碼器系統(tǒng)工作時(shí)鐘為120 M,最高迭代次數(shù)取值為15,并行因子Z/ 為32,變量節(jié)點(diǎn)更新處理延遲為IO個(gè)時(shí)鐘,根據(jù)校驗(yàn)矩陣相關(guān)初始信息,可以計(jì)算得到譯碼器的凈信息比特吞吐量為-t, , 120.32.256.3M …、札 "、7VoMg/y^=--^——=i—= 54.5 Mbps (6)[8.(256/32>13 + (8-1).10].15 、 ^如圖10所示,給出了實(shí)施例3/4碼率,塊狀低密度校驗(yàn)碼在QPSK及16QAM 調(diào)制模式下的15次迭代,最小和積偏置補(bǔ)償算法譯碼性能曲線;如圖11所示,給出了實(shí)施例3/4碼率,塊狀低密度校驗(yàn)碼譯碼器在配置不 同并行因子條件下的凈信息比特吞吐量曲線。實(shí)施例2如圖9所示,本實(shí)施例中的1/2碼率塊狀低密度校驗(yàn)矩陣。 在實(shí)施例中,校驗(yàn)矩陣信息初始模塊將設(shè)定低密度校驗(yàn)矩陣信息以及譯碼 過程中的可配參數(shù)1) 矩陣行分塊數(shù)為M二 16,列分塊數(shù)為iV-32,其中每個(gè)子塊大小為 256X256,元素值為/^;2) 設(shè)定譯碼最大迭代次數(shù)/7^ _=15;設(shè)定并行因子2/ = 64,則變量節(jié)點(diǎn)與 校驗(yàn)節(jié)點(diǎn)消息分布式存儲(chǔ)器塊數(shù)為64塊,實(shí)時(shí)循環(huán)置換網(wǎng)絡(luò)的大小為64,級(jí)數(shù) 為6級(jí);并行工作的校驗(yàn)節(jié)點(diǎn)與變量節(jié)點(diǎn)消息單元數(shù)目分別為64個(gè);設(shè)定變量節(jié)點(diǎn)度分布向量為P = [3, 3,3,3, 3,3,3, 3, 7, 7, 7, 7, 7,7, 7, 7,3,2, 2,2, 2, 2,2,2, 2,2,2, 2,2,2,2, 2〗;設(shè)定校驗(yàn)節(jié)點(diǎn)度分布向量為"[7,7,8,7,7,7,7,7,7,7,7,7,7,7,7,71,最大校驗(yàn)節(jié)點(diǎn)度為C =8;1> ! max4)根據(jù)度分布向量P和(?、并行因子Z/及M、 W,初始化迭代控制邏輯單元。 在實(shí)施例中,信道接收解調(diào)符號(hào)為QPSK或16QAM調(diào)制信號(hào),對(duì)應(yīng)于每個(gè) 譯碼幀的符號(hào)數(shù)分別為4096或2048個(gè)。譯碼器迭代初始預(yù)處理模塊202,根據(jù) 最大似然準(zhǔn)則,將單個(gè)接收符號(hào)信息轉(zhuǎn)化為2或4個(gè)并行比特軟信息,并依次 循環(huán)寫入分布的64個(gè)變量節(jié)點(diǎn)消息存儲(chǔ)器203中,作為迭代的初始信道信息。 在初始預(yù)處理模塊202處理完畢后,給出迭代啟動(dòng)與使能信號(hào),譯碼迭代開始 工作。在實(shí)施例中,并行處理單元為64個(gè),校驗(yàn)矩陣的校驗(yàn)節(jié)點(diǎn)分為64組串行 更新。64組校驗(yàn)節(jié)點(diǎn)串行更新完畢,結(jié)束一次迭代。在實(shí)施例中,迭代譯碼步驟與實(shí)施例1類似,可參照實(shí)施,不再重復(fù)。 如圖IO所示,給出了實(shí)施例1/2碼率,塊狀低密度校驗(yàn)碼在QPSK及16QAM調(diào)制模式下的15次迭代,最小和積偏置補(bǔ)償算法譯碼性能曲線;如圖11所示,給出了實(shí)施例l/2碼率,塊狀低密度校驗(yàn)碼譯碼器在配置不 同并行因子條件下的凈信息比特吞吐量曲線。實(shí)施例1、實(shí)施例2,都基于XilinxFPGAVirtex-5平臺(tái)驗(yàn)證通過。本領(lǐng)域內(nèi) 的技術(shù)人員應(yīng)該明白的是,結(jié)合本發(fā)明中的上述說明,該可重構(gòu)多模式塊狀低 密度校驗(yàn)碼譯碼器,既可以用可編程邏輯器件實(shí)現(xiàn),如FPGA,也可以用專用芯 片(ASIC)實(shí)現(xiàn);在數(shù)據(jù)吞吐量小的情形下,還可以用數(shù)字信號(hào)處理器(DSP)實(shí)現(xiàn)。 另外,結(jié)合計(jì)算機(jī)軟件一般設(shè)計(jì)流程,利用軟件來完成本發(fā)明中提及的操作也 是可行的。本發(fā)明實(shí)現(xiàn)了一種可重構(gòu)多模式塊狀低密度校驗(yàn)碼譯碼器。這里所述的方 法與設(shè)備,彼此分離的單體部件可以完全是傳統(tǒng)的,我們要求將它們的組合也 就是可重構(gòu)譯碼器總體方案作為發(fā)明進(jìn)行保護(hù)。以上所述實(shí)例僅僅是對(duì)高性能 信道糾錯(cuò)編碼技術(shù)的一種應(yīng)用,但本發(fā)明的真實(shí)精神和范圍不局限于此,任何 熟悉本領(lǐng)域的技術(shù)人員可以修改單體部件的算法,實(shí)現(xiàn)其他場(chǎng)合的應(yīng)用。本發(fā) 明僅由后附權(quán)利要求書及其等效技術(shù)方案來限定,我們要求將這些作為本發(fā)明 來保護(hù)。
權(quán)利要求
1. 一種塊狀低密度校驗(yàn)碼的譯碼方法,其特征在于包括以下步驟1)設(shè)定低密度校驗(yàn)矩陣信息以及譯碼過程中的可配參數(shù);2)接收信道輸出的解調(diào)符號(hào)信息;3)對(duì)解調(diào)符號(hào)信息進(jìn)行預(yù)處理,獲得比特軟信息,作為迭代初始消息;4)校驗(yàn)節(jié)點(diǎn)分組并行更新傳遞給變量節(jié)點(diǎn)的外部消息,每組校驗(yàn)節(jié)點(diǎn)消息處理完畢后,立即更新與其相連的所有變量節(jié)點(diǎn);當(dāng)所有校驗(yàn)節(jié)點(diǎn)分組串行更新完畢后,結(jié)束一次迭代;5)取變量節(jié)點(diǎn)的偽后驗(yàn)概率消息進(jìn)行硬判決,并檢測(cè)是否是合法碼字,如果是合法碼字或當(dāng)前迭代次數(shù)超過預(yù)設(shè)的最大迭代次數(shù),則終止整個(gè)迭代;否則,進(jìn)入下一次迭代;6)當(dāng)?shù)V购?,輸出相?yīng)的硬判決比特信息流,譯碼結(jié)束。
2. 如權(quán)利要求1所述的一種塊狀低密度校驗(yàn)碼的譯碼方法,其特征在于,所 述的低密度校驗(yàn)矩陣滿足條件1) 校驗(yàn)矩陣H由若干分塊子方陣組成,當(dāng)行分塊數(shù)為M,列分塊數(shù)為iV時(shí),對(duì)應(yīng)碼率為及21-M/iV;2) 每個(gè)分塊子方陣都是單位方陣的右移循環(huán)置換,如果用I表示大小'為"£ 的單位方陣,貝IJI^表示單位方陣循環(huán)向右移位/^所得到的置換矩陣,其中 /^e(0,l,2,…丄-l,-1},稱為校驗(yàn)矩陣的特征值,當(dāng)A,0時(shí),表示不進(jìn)行移位操 作,仍然為單位方陣,當(dāng)代,=-1時(shí),表示一個(gè)全零矩陣;3) 校驗(yàn)矩陣H的節(jié)點(diǎn)度信息按子塊劃分,每個(gè)子塊內(nèi)的節(jié)點(diǎn)度是相同的, 整體度信息可采用兩個(gè)一維向量保存變量節(jié)點(diǎn)度分布P^[deg。,deg,,…deg^], 校驗(yàn)節(jié)點(diǎn)度分布(^[deg。,deg,,…deg^」。
3. 如權(quán)利要求1所述的一種塊狀低密度校驗(yàn)碼的譯碼方法,其特征在于, 所述的設(shè)定低密度校驗(yàn)矩陣信息以及譯碼過程中的可配參數(shù)包括以下步驟1) 根據(jù)發(fā)送端采用的校驗(yàn)矩陣,配置譯碼需要的校驗(yàn)矩陣的所有特征值;^,行分塊數(shù)M和列分塊數(shù)iV;2) 根據(jù)譯碼延遲要求,配置譯碼最大迭代次數(shù)/7^ ^和消息更新并行因子 Z/,從而確定當(dāng)前譯碼所需要的并行處理單元數(shù)目、分布式存儲(chǔ)器塊數(shù)及實(shí)時(shí) 置換網(wǎng)絡(luò)的大小;Z/必須能夠整除子塊大小丄,最小為l,最大為丄;3) 根據(jù)度分布向量^和< 、并行因子Z/及M、見初始化迭代控制邏輯單元。
4. 如權(quán)利要求1所述的一種塊狀低密度校驗(yàn)碼的譯碼方法,其特征在于,所述的對(duì)解調(diào)符號(hào)信息進(jìn)行預(yù)處理包括以下步驟1) 獲得解調(diào)的同相正交的兩路基帶調(diào)制信號(hào);2) 采用最大似然準(zhǔn)則,將單個(gè)接收符號(hào)信息轉(zhuǎn)化為fog/^)個(gè)并行比特軟信息;3) 將比特軟信息按映射的先后順序?qū)懭敕植际降淖兞抗?jié)點(diǎn)消息存儲(chǔ)模塊。
5.如權(quán)利要求1所述的一種塊狀低密度校驗(yàn)碼的譯碼方法,其特征在于,所述的每組校驗(yàn)節(jié)點(diǎn)消息處理包括以下步驟1) 接收與其相連的變量節(jié)點(diǎn)送入的外部消息值;2) 對(duì)所有消息的幅度值進(jìn)行比較,保存最小值與次最小值,舍棄其它值,同 時(shí)保存最小值對(duì)應(yīng)的節(jié)點(diǎn)標(biāo)號(hào);3) 對(duì)所有消息的符號(hào)位進(jìn)行異或處理,保存每個(gè)消息的符號(hào)位及異或處理結(jié)果;4) 根據(jù)預(yù)設(shè)偏置因子,對(duì)最小值與次最小值做偏置減法,得到偏置后的最小值與次最小值,如果其中某個(gè)值小于O,則強(qiáng)制偏置為0;5) 將偏置后的最小值與次最小值、最小值節(jié)點(diǎn)標(biāo)號(hào)及符號(hào)位的處理結(jié)果分節(jié) 拍存入校驗(yàn)節(jié)點(diǎn)消息存儲(chǔ)單元中,并同時(shí)更新為變量節(jié)點(diǎn)消息計(jì)算模塊做準(zhǔn)備 的寄存器。
6. —種按權(quán)利要求1所述方法設(shè)計(jì)的可重構(gòu)多模式塊狀低密度校驗(yàn)碼譯 碼器,其特征在于包括校驗(yàn)矩陣信息初始模塊(201)、迭代消息預(yù)處理模塊(202)、變量節(jié)點(diǎn)消息存儲(chǔ)模塊(203)、實(shí)時(shí)置換網(wǎng)絡(luò)模塊(204)、變量節(jié)點(diǎn) 消息處理模塊(205)、校驗(yàn)節(jié)點(diǎn)消息存儲(chǔ)模塊(206)、校驗(yàn)節(jié)點(diǎn)消息處理模塊(207)、迭代停止與硬判決輸出模塊(208)、控制邏輯模塊(209);校驗(yàn)矩陣 信息初始模塊(201)與控制邏輯模塊(209)相接;迭代消息預(yù)處理模塊(202)與變量 節(jié)點(diǎn)消息存儲(chǔ)模塊(203)相接;變量節(jié)點(diǎn)消息存儲(chǔ)模塊(203)、變量節(jié)點(diǎn)消息處理 模塊(205)通過實(shí)時(shí)置換網(wǎng)絡(luò)模塊(204)與校驗(yàn)節(jié)點(diǎn)消息存儲(chǔ)模塊(206)及校驗(yàn)節(jié) 點(diǎn)消息處理模塊(207)雙向相接;迭代停止與硬判決輸出模塊(208)與變量節(jié)點(diǎn)消 息處理模塊(205)相接;控制邏輯模塊(209)分別與變量節(jié)點(diǎn)消息存儲(chǔ)模塊(203)、 實(shí)時(shí)置換網(wǎng)絡(luò)模塊(204)、變量節(jié)點(diǎn)消息處理模塊(205)、校驗(yàn)節(jié)點(diǎn)消息存儲(chǔ)模塊 (206)、校驗(yàn)節(jié)點(diǎn)消息處理模塊(207)、迭代停止與硬判決輸出模塊(208)相接。
7.如權(quán)利要求6所述的一種可重構(gòu)多模式塊狀低密度校驗(yàn)碼譯碼器,其特 征在于,所述的變量節(jié)點(diǎn)消息處理模塊(205)內(nèi)部連接關(guān)系為外部信息恢復(fù)模 塊(301)、消息緩存FIFO(302)與加法模塊(303)相接。
8. 如權(quán)利要求6所述的一種可重構(gòu)多模式塊狀低密度校驗(yàn)碼譯碼器,其特征 在于,所述的校驗(yàn)節(jié)點(diǎn)消息處理模塊(207)內(nèi)部連接關(guān)系為符號(hào)與幅度分離器(401) 與比較器(402)、比較器(403)、符號(hào)緩存單元(408)相接;比較器(402)、最小 值與標(biāo)號(hào)鎖存(405)相接;比較器(403)、次最小值與標(biāo)號(hào)鎖存(406)相接;比較器(402) 、比較器(403)都與數(shù)據(jù)選擇器(404)相接;最小值與標(biāo)號(hào)鎖存(405)、次最小 值與標(biāo)號(hào)鎖存(406)與數(shù)據(jù)偏置操作模塊(407)相接;符號(hào)緩存單元(408)、異或單 元(409)相接;最小值與標(biāo)號(hào)鎖存(405)、次最小值與標(biāo)號(hào)鎖存(406)、數(shù)據(jù)偏置操 作模塊(407)、符號(hào)緩存單元(408)、異或單元(409)與校驗(yàn)節(jié)點(diǎn)消息壓縮存儲(chǔ)單元 (410)相接。
9. 如權(quán)利要求6所述的一種可重構(gòu)多模式塊狀低密度校驗(yàn)碼譯碼裝置,其特 征在于,所述的迭代停止與硬判決模塊(208)內(nèi)部連接關(guān)系為分組前次迭代消 息(601)與分組符號(hào)無變化滑動(dòng)窗口(605)相接;分組當(dāng)前迭代消息(602)與分組硬 判決和校驗(yàn)單元(603)、分組符號(hào)無變化滑動(dòng)窗口(605)相接;分組硬判決和校驗(yàn) 單元(603)、分組校驗(yàn)成功滑動(dòng)窗口(604)相接;分組校驗(yàn)成功滑動(dòng)窗口(604)與總 校驗(yàn)成功檢測(cè)單元(606)相接,分組符號(hào)無變化滑動(dòng)窗口(605)與總符號(hào)無變化檢 測(cè)單元(607灘接;總校驗(yàn)成功檢測(cè)單元(606)、總符號(hào)無變化檢測(cè)單元(607)跟與 門(608)相接;與門(608)、迭代次數(shù)判定(609)與或門(610)相接;分組硬判決和校 驗(yàn)單元(603)、硬判決輸出FIF0(611)相接。
全文摘要
本發(fā)明公開了一種塊狀低密度校驗(yàn)碼的譯碼方法及可重構(gòu)多模式譯碼器。本發(fā)明具體涉及一類基于單位循環(huán)置換陣的塊狀校驗(yàn)陣的譯碼設(shè)計(jì),譯碼方法采用部分并行的最小和偏置補(bǔ)償?shù)惴?,具有?fù)雜度低、迭代收斂速度快的特點(diǎn);譯碼器配置靈活,資源利用率高首先,可支持不同碼長(zhǎng)在多種碼率下的塊狀校驗(yàn)陣譯碼;其次,根據(jù)譯碼延遲和吞吐量要求,可選擇配置不同的消息更新并行因子;再者,節(jié)點(diǎn)消息采用分布式存儲(chǔ),讀寫訪問控制簡(jiǎn)單,節(jié)點(diǎn)消息以壓縮形式保存,有效地提高了存儲(chǔ)資源的利用率;最后,迭代更新采用多級(jí)流水線結(jié)構(gòu),充分提高了譯碼器的數(shù)據(jù)吞吐量。該方法和裝置具有性能穩(wěn)定、配置靈活、擴(kuò)展性良好等優(yōu)點(diǎn)。
文檔編號(hào)H03M13/11GK101262231SQ200810060499
公開日2008年9月10日 申請(qǐng)日期2008年4月25日 優(yōu)先權(quán)日2008年4月25日
發(fā)明者僑 周, 旻 李, 磊 李, 楊麗萍, 沈文麗, 輝 趙, 趙民建, 鳴 雷 申請(qǐng)人:浙江大學(xué)