二元LDPC碼ADMM譯碼方法研究及FPGA實現(xiàn)
發(fā)布時間:2020-07-28 10:59
【摘要】:低密度奇偶校驗(Low Density Parity Check,LDPC)碼是一種接近香農(nóng)限的高效線性分組碼,被廣泛應用在各種通信系統(tǒng)中。由于FPGA具有可編程和高速運行的特點,基于FPGA平臺研究LDPC譯碼器的設計已成為LDPC譯碼的重要實現(xiàn)手段。線性規(guī)劃(Linear Programming,LP)譯碼算法是近年來得到廣泛關(guān)注的一類新譯碼方法,相比于傳統(tǒng)的置信傳播(Belief Propagation,BP)譯碼算法具有更低的誤碼平臺。本文針對二元LDPC碼的LP譯碼方法,研究了一種基于最小多面體帶懲罰函數(shù)的交替方向乘子(Alternating Direction Method of Multipliers,ADMM)譯碼算法。論文的主要內(nèi)容如下:1、介紹了LDPC碼的基本概念和相關(guān)基礎知識,給出了BP譯碼算法的基本原理;谧畲笏迫(Maximum Likelihood,ML)譯碼算法,討論了LP譯碼的松弛方法,給出了Feldman LP譯碼模型;討論了ADMM算法的基本原理和迭代框架。2、結(jié)合最小多面體模型和ADMM算法,給出了一種基于最小多面體模型和ADMM技術(shù)的LP譯碼算法。該算法通過校驗節(jié)點度分解技術(shù)有效降低了譯碼模型的復雜度,設計出的譯碼器不需要調(diào)用投影算法,進一步降低了譯碼器的復雜度,并且算法可以并行執(zhí)行。結(jié)合懲罰函數(shù)以及基于最小多面體模型和ADMM技術(shù)的LP譯碼算法,給出了一種基于最小多面體帶懲罰的ADMM譯碼算法,有效提升了算法的譯碼性能。3、針對基于最小多面體帶懲罰函數(shù)的ADMM譯碼算法,提出了一種部分并行結(jié)構(gòu)的LDPC譯碼器設計方法。充分利用了LP譯碼模型的內(nèi)在結(jié)構(gòu),將復雜的矩陣乘法運算簡化成了非零元素之間的加法運算。并根據(jù)譯碼算法中矩陣的結(jié)構(gòu)特點,對信息的存儲方式進行優(yōu)化,節(jié)省了存儲資源,提高了譯碼速度。4、在Xilinx Virtex-6 FPGA平臺設計了上述基于ADMM算法的LDPC譯碼器。測試結(jié)果表明本文設計的LDPC譯碼器工作情況良好,可以實現(xiàn)LDPC碼的正確譯碼。
【學位授予單位】:西安電子科技大學
【學位級別】:碩士
【學位授予年份】:2018
【分類號】:TN911.22;TN791
【圖文】:
西安電子科技大學碩士學位論文前面的定義相同,start 為輸入數(shù)據(jù)開始信號,dout 為輸出的譯碼結(jié)果,dout_start 為譯碼結(jié)果開始輸出信號,dout_ena 為 dout 的標記信號,dout_times 為譯碼迭代次數(shù)。p1_done_flag 拉高表示初始化完成,p2_start 拉高表示變量 v 模塊開始更新運算,p2_done_flag 拉高表示完成一次變量 的更新運算。p3_start 拉高表示變量 w 和 模塊開始更新運算,p3_done_flag 拉高表示完成一次變量w 和 的更新運算。p4_start 拉高表示校驗方程計算模塊開始工作,p4_done_flag 拉高表示完成一次校驗方程的計算。由圖 5.2 可見,整個譯碼過程經(jīng)過 13 次迭代后,最終譯碼結(jié)果滿足校驗方程,譯碼成功并輸出譯碼結(jié)果。
52圖5.3 LDPC 譯碼器輸出數(shù)據(jù)仿真圖采用與上述 LDPC 譯碼器相同的譯碼算法,本文使用串行結(jié)構(gòu)對其進行了 LDPC譯碼器的實現(xiàn),通過 Modelsim10.2c 進行功能仿真,得到其每次迭代時間如圖 5.4 所示。其中,系統(tǒng)時鐘頻率為 80MHz。圖 5.4 中,p1_done_flag,p2_start,p2_done_flag,p3_start,p3_done_flag,p4_start,p4_done_flag 的定義均與圖 5.2 中的定義相同。從圖中可以看出,基于 ADMM 算法的串行結(jié)構(gòu) LDPC 譯碼器每次迭代時間為 1.07ms(毫秒)。
第五章 LDPC 譯碼器的驗證與性能分析53圖5.4 基于 ADMM 算法的串行結(jié)構(gòu) LDPC 譯碼器每次迭代時間本文復現(xiàn)了基于對數(shù)域 BP 譯碼算法的串行結(jié)構(gòu) LDPC 譯碼器,采用查找表的形式代替 BP 譯碼算法中的雙曲正切函數(shù)運算。通過 Modelsim10.2c 進行功能仿真,得到其每次迭代時間如圖 5.5 所示。其中,系統(tǒng)時鐘頻率為 80MHz。圖5.5 基于對數(shù)域 BP 譯碼算法的串行結(jié)構(gòu) LDPC 譯碼器每次迭代時間圖 5.5 中,p1_done_flag 拉高表示初始化完成,p2_start 拉高表示校驗節(jié)點更新模塊開始工作,p2_done_flag 拉高表示校驗節(jié)點更新模塊完成工作,p3_start 拉高表示變量節(jié)點更新模塊開始工作
本文編號:2772785
【學位授予單位】:西安電子科技大學
【學位級別】:碩士
【學位授予年份】:2018
【分類號】:TN911.22;TN791
【圖文】:
西安電子科技大學碩士學位論文前面的定義相同,start 為輸入數(shù)據(jù)開始信號,dout 為輸出的譯碼結(jié)果,dout_start 為譯碼結(jié)果開始輸出信號,dout_ena 為 dout 的標記信號,dout_times 為譯碼迭代次數(shù)。p1_done_flag 拉高表示初始化完成,p2_start 拉高表示變量 v 模塊開始更新運算,p2_done_flag 拉高表示完成一次變量 的更新運算。p3_start 拉高表示變量 w 和 模塊開始更新運算,p3_done_flag 拉高表示完成一次變量w 和 的更新運算。p4_start 拉高表示校驗方程計算模塊開始工作,p4_done_flag 拉高表示完成一次校驗方程的計算。由圖 5.2 可見,整個譯碼過程經(jīng)過 13 次迭代后,最終譯碼結(jié)果滿足校驗方程,譯碼成功并輸出譯碼結(jié)果。
52圖5.3 LDPC 譯碼器輸出數(shù)據(jù)仿真圖采用與上述 LDPC 譯碼器相同的譯碼算法,本文使用串行結(jié)構(gòu)對其進行了 LDPC譯碼器的實現(xiàn),通過 Modelsim10.2c 進行功能仿真,得到其每次迭代時間如圖 5.4 所示。其中,系統(tǒng)時鐘頻率為 80MHz。圖 5.4 中,p1_done_flag,p2_start,p2_done_flag,p3_start,p3_done_flag,p4_start,p4_done_flag 的定義均與圖 5.2 中的定義相同。從圖中可以看出,基于 ADMM 算法的串行結(jié)構(gòu) LDPC 譯碼器每次迭代時間為 1.07ms(毫秒)。
第五章 LDPC 譯碼器的驗證與性能分析53圖5.4 基于 ADMM 算法的串行結(jié)構(gòu) LDPC 譯碼器每次迭代時間本文復現(xiàn)了基于對數(shù)域 BP 譯碼算法的串行結(jié)構(gòu) LDPC 譯碼器,采用查找表的形式代替 BP 譯碼算法中的雙曲正切函數(shù)運算。通過 Modelsim10.2c 進行功能仿真,得到其每次迭代時間如圖 5.5 所示。其中,系統(tǒng)時鐘頻率為 80MHz。圖5.5 基于對數(shù)域 BP 譯碼算法的串行結(jié)構(gòu) LDPC 譯碼器每次迭代時間圖 5.5 中,p1_done_flag 拉高表示初始化完成,p2_start 拉高表示校驗節(jié)點更新模塊開始工作,p2_done_flag 拉高表示校驗節(jié)點更新模塊完成工作,p3_start 拉高表示變量節(jié)點更新模塊開始工作
【參考文獻】
相關(guān)期刊論文 前1條
1 蘇斌;劉暢;潘志剛;;基于FPGA的高速浮點FFT/IFFT處理器設計與實現(xiàn)[J];中國科學院大學學報;2015年02期
本文編號:2772785
本文鏈接:http://sikaile.net/kejilunwen/dianzigongchenglunwen/2772785.html
最近更新
教材專著