国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于FPGA的多速率LDPC編碼器和譯碼器設計與實現(xiàn)

2018-04-13 08:15:25張萌
現(xiàn)代導航 2018年1期
關鍵詞:譯碼器碼率譯碼

張萌

(中國電子科技集團公司第二十研究所, 西安 710068)

0 引言

低密度奇偶校驗碼(Low-Density Parity-Check Codes,LDPC)因其具有逼近Shannon限的優(yōu)良性能,目前已經(jīng)在無線局域網(wǎng)、衛(wèi)星通信、深空通信和光纖通信等領域得到廣泛應用。

為了在時變或有干擾的信道上進行可靠傳輸,需要一組碼率靈活可變的LDPC碼,在高信噪比信道條件下,采用高碼率以提高傳輸效率;在低信噪比信道條件下采用低碼率,以保障可靠傳輸。不同的碼長需要不同的數(shù)據(jù)分組方式或者數(shù)據(jù)幀長度,這極大增加通信系統(tǒng)的整體復雜度。采用碼長固定的多碼率碼,在碼長固定的條件下提高或降低碼率,可大大降低設計復雜度[1]。

本文設計并實現(xiàn)了碼長固定的多速率LDPC碼,碼長為12960比特,三種碼率為2/3,1/3和1/6。與現(xiàn)有碼長固定的多速率LDPC設計方法相比[2],本設計直接利用校驗矩陣進行系統(tǒng)編碼,且在譯碼過程中采用部分并行譯碼方式,大大簡化了實現(xiàn)難度。

1 多速率LDPC編碼器設計與實現(xiàn)

本設計直接利用校驗矩陣進行系統(tǒng)編碼,不需要把校驗矩陣轉(zhuǎn)換成生成矩陣,且有近似于下三角形式的結構,在保證矩陣稀疏性的同時,大大降低編碼運算量,便于硬件實現(xiàn)[3]。首先構造一個高碼率(2/3)的非規(guī)則重復累積碼作為母碼;然后以該母碼為基礎,通過同時減少信息位和增加校驗位來降低碼率。

以碼率為2/3的LDPC 碼為例作具體說明。其校驗矩陣的基矩陣 H16×48如圖1所示。擴展因子為270,其中“-1”表示270× 270維的全零矩陣,非負整數(shù)表示270×270維的單位矩陣向右循環(huán)右移的位數(shù)。

圖1 碼率為2/3的LDPC碼的校驗矩陣的基矩陣

H16×48可分解為其中HS為16×32的矩陣,行重為8,可表示為

HP為16×16的矩陣,主對角和次對角都是單位矩陣,除了第七行行重為3外,其余行的行重均為2。設碼字矢量其中u為信息向量,p為 校驗 向 量 , 令其中ui、pj和qj均為270維行向量,1≤i≤32,1≤j≤16。由校驗關系分解為:

編碼過程直接用校驗矩陣進行系統(tǒng)編碼,并且只需要模2加運算,計算簡單,硬件實現(xiàn)方便。

編碼器可采用緩存編碼結構,可通過接收存儲單元來正確處理任意不規(guī)律的信息比特流輸入,穩(wěn)定性較強,編碼設計結構如圖2所示。

根據(jù)輸入控制信號(碼率類型開關、數(shù)據(jù)有效信號等),控制單元控制接收單元以及內(nèi)部的移位寄存編碼單元有序工作,圖2中累加器 AC1~AC3即移位寄存編碼累加器,不同碼率時,由碼率類型開關控制累加器的工作狀態(tài)和輸入比特來源:R=1/6時,AC1、AC2、AC3有效;R=1/3時,AC1、AC2有效;R=2/3時,AC1有效。碼率越低,信息長度越短,所需要生成的校驗比特越多,對應所需要的AC數(shù)量也就越多。

圖2 編碼器設計結構圖

碼率R=2/3,將信息序列輸入累加器AC1計算校驗序列,通過將信息序列與校驗序列串行輸出實現(xiàn)編碼。

碼率R=1/3或 1/6時,需要將上一級累加器AC1~AC2的輸出序列反饋輸入給下一級累加器AC2~AC3,并根據(jù)碼率選擇輸出的校驗比特序列長度。

多速率編碼器的FPGA設計在Xilinx Kintex 7系列的xc7k325t編碼器的資源開銷如表1所示。

表1 多速率LDPC碼編碼器資源開銷

2 多速率LDPC譯碼器設計與實現(xiàn)

譯碼算法是基于和積算法(Sum Product Algorithm,SPA)的簡化算法,即歸一化最小和算法(Normalized Minimum Sum Algorithm,NMSA),具體步驟為[4]:

(1)接收信道信息,經(jīng)過量化處理,存儲初始的信道似然值。設定初始迭代次數(shù)。

(2)校驗節(jié)點更新。最小和譯碼算法校驗節(jié)點更新公式為:

校驗節(jié)點計算返回值歸一化的時候是通過乘以一個小于1的系數(shù)α改進性能。此時校驗節(jié)點的更新公式為:

N(m)表示參與第m個校驗方程的變量節(jié)點的集合,即H矩陣第m行中1的位置;N(m) 表示從集合N(m)中去掉元素n之后的子集。

(3)變量節(jié)點更新,迭代次數(shù)加1。判斷是否達到設定的迭代次數(shù),若未達到迭代次數(shù),轉(zhuǎn)(2)。否則,轉(zhuǎn)(4)。變量節(jié)點初始化公式:

變量節(jié)點更新返回值計算公式:

迭代結束,變量節(jié)點譯碼判決:LQn≥0,判決為0,否則判決為1。

M(n)表示與變量節(jié)點n相連的校驗節(jié)點的集合,即H矩陣第n列中1的位置;M(n)m表示從集合M(n)中去掉元素m之后的子集。

(4)計算校驗和。若校驗和為0,則直接輸出結果。否則轉(zhuǎn)(5)。

(5)利用迭代之后的結果以及接收到的新的校驗比特,更新原先的初始信道似然值。設定一個新的迭代次數(shù)。轉(zhuǎn)(2)。

譯碼器也采用與編碼器設計相似的緩存結構,以處理復雜的輸入情況,提升系統(tǒng)的穩(wěn)定性。主要輸入信號包含碼率類型開關、數(shù)據(jù)有效信號和輸入軟信息等等,由迭代譯碼控制單元協(xié)調(diào)各模塊的工作,譯碼器設計結構如圖3所示。

圖3 譯碼設計結構圖

硬件譯碼器是由數(shù)據(jù)輸入緩沖模塊、變量節(jié)點更新模塊、校驗節(jié)點更新模塊、數(shù)據(jù)輸出模塊四個模塊共同組成。其中,變量節(jié)點更新模塊與校驗節(jié)點更新模塊屬于基本的功能實現(xiàn)模塊。數(shù)據(jù)輸入輸出模塊,以及校驗節(jié)點、變量節(jié)點信息相互傳遞過程中的存儲器模塊屬于高速譯碼匹配的存儲器模塊。譯碼器采用部分并行譯碼形式,根據(jù)LDPC碼的校驗矩陣,劃分出大小相同的子矩陣,對每一個固定的子矩陣行列組,實現(xiàn)一個變量節(jié)點處理單元與一個校驗節(jié)點處理單元,該譯碼結構同時兼顧了譯碼速率與FPGA資源消耗量,是一種首選的譯碼器的實現(xiàn)結構[5]。

圖4 VNU列計算單元設計結構圖

圖5 CNU行比較單元設計結構圖

VNU列計算單元的設計結構如圖4所示。列計算單元是依據(jù)式(8)~式(9)設計的,圖4中的結構是針對量化位寬為8比特(含1位符號位)。以列重λc=4為例,其他列重情況下根據(jù)輸入的數(shù)據(jù)數(shù)目(λc+1)來設計加法器的組合。采用相同加法器結構,可有效精簡加法器的數(shù)量和較少計算時鐘的數(shù)量。最后根據(jù)初次迭代標志信號fst_iter的電平高低來判斷是否為VN節(jié)點初始化,并返回變量節(jié)點更新數(shù)據(jù)。圖4中右下角的寄存器sum即是4個一列非零點輸入的數(shù)據(jù)和信道似然值ln之和,最高位sum[10]就是本列譯碼判決結果,賦給dec_bit并輸出。

校驗節(jié)點更新(CNU)行比較單元的設計結構,如圖5所示。

行比較單元是依據(jù)式(7)設計的,圖 5中結構是針對量化位寬為8比特(含1位符號位)。以行重3為例,其他行重情況下需要根據(jù)輸入的數(shù)據(jù)數(shù)目(λr)來設計加法器的組合,目標是精簡比較單元的數(shù)量和減少計算時鐘的數(shù)量。

圖5中,“abs_sign”模塊實現(xiàn)有符號數(shù)的符號位與絕對值分離的功能;“Xor”表示異或操作;“<”表示比較輸入數(shù)據(jù)的最小值并輸出;“x<<3-x”則實現(xiàn)了式(7)中α= 7/8的數(shù)據(jù)修正。本文所對應的速率兼容結構體現(xiàn)在校驗矩陣的橫向擴展上,因此在Cn單元設計時本著行重最大、向下兼容的原則,即所有Cn處理單元設計時候考慮行重最大的情況,即碼率最高的情況;當使用低碼率時,將矩陣結構中去掉的部分對應的節(jié)點數(shù)據(jù)置為量化數(shù)據(jù)的最大值:8'b0111_1111,這樣使得行比較單元(計算節(jié)點數(shù)據(jù)最小值)有效避開這些“干擾”,計算所用數(shù)據(jù)全部來自實際碼率所對應矩陣結構部分,即實現(xiàn)碼率兼容。

多速率譯碼器的FPGA設計在Xilinx Kintex 7系列的xc7k325t編碼器的資源開銷如表2所示。

表2 多速率LDPC碼譯碼器資源開銷

3 結論

本文設計了一種碼長固定,碼率靈活可變的多速率LDPC碼。在編碼過程中采用近似下三角矩陣,直接利用校驗矩陣進行系統(tǒng)編碼,大大降低編碼運算量,便于硬件實現(xiàn);譯碼器依據(jù)歸一化最小和算法設計,采用部分并行譯碼形式,同時兼顧了譯碼速率與FPGA資源消耗量。編譯碼算法都在Xilinx公司的FPGA XC7K325T上成功實現(xiàn),經(jīng)在板測試,能夠?qū)崿F(xiàn)設計的所有功能,對工程實踐有極大幫助。

參考文獻:

[1]Vila Casa do, A.I, Wen-Yen Weng, Wesel, R.D. Multiple rate low-density pari ty-check codeswith con stant blockleng th [A]. Confer ence Record o f the Thirty-Eighth Asilomar Conference on Signals, Syste ms and Computers[C]. Vol.2, pp: 2010 - 2014, 2004.

[2]Xueqin J iang; Yier Yan; Moon Ho Lee. Construction of multiple-rate quasi-cycli c LDPC codes via the hyper plane decomposing [J]. IEEE Communications and Networks,Vol. 13, pp: 205 - 210, 2011.

[3]茅迪.偽隨機 LDPC碼的編譯碼器設計及 FPGA實現(xiàn)[D].西安電子科技大學碩士學位論文, 2013.

[4]王育民,李暉,梁傳甲.信息論與編碼理論[M].北京:高等教育出版社, 2005.

[5]袁瑞佳. LDP C碼的高效編譯碼實現(xiàn)技術研究[D].西安電子科技大學博士學位論文, 2012.

猜你喜歡
譯碼器碼率譯碼
基于校正搜索寬度的極化碼譯碼算法研究
糾錯模式可配置的NAND Flash BCH譯碼器設計
基于狀態(tài)機的視頻碼率自適應算法
計算機應用(2018年7期)2018-08-27 10:42:40
跟蹤導練(一)5
從霍爾的編碼譯碼理論看彈幕的譯碼
新聞傳播(2016年3期)2016-07-12 12:55:27
基于場景突變的碼率控制算法
X264多線程下碼率控制算法的優(yōu)化
計算機工程(2015年8期)2015-07-03 12:19:56
LDPC 碼改進高速譯碼算法
遙測遙控(2015年2期)2015-04-23 08:15:19
多光譜圖像壓縮的聯(lián)合碼率分配—碼率控制方法
宇航學報(2014年2期)2014-12-15 02:49:06
HINOC2.0系統(tǒng)中高速LDPC譯碼器結構設計
電視技術(2014年17期)2014-09-18 00:15:48
牟定县| 大丰市| 乐至县| 龙里县| 日照市| 莱阳市| 灵丘县| 曲靖市| 滕州市| 建水县| 大埔区| 永定县| 郴州市| 遵化市| 通化县| 师宗县| 改则县| 民丰县| 福泉市| 台山市| 阳春市| 泰来县| 大埔区| 揭西县| 扬中市| 镇坪县| 开封县| 育儿| 九江县| 清水县| 会泽县| 凤城市| 沙坪坝区| 丰台区| 乐清市| 安乡县| 盐源县| 青海省| 思茅市| 曲麻莱县| 合阳县|