码长6075的qc-ldpc编译码的MATLAB误码率仿真
生活随笔
收集整理的這篇文章主要介紹了
码长6075的qc-ldpc编译码的MATLAB误码率仿真
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
1.算法簡介
? ? ? ?為滿足高的數據需求,提出一種新的QC-LDPC碼.該校驗矩陣的校驗部分為近似下三角結構,上對角線下面的非零元素可以任意放置,因此是一種半確定的結構.這種結構的碼設計靈活,性能也極高.通過對該碼的不同編譯碼算法進行比較,提出更有效的編譯碼算法.MATLAB仿真表明,此結構的QC-LDPC碼比雙對角線結構的QC-LDPC碼具有更低的誤碼率,快速編碼算法和Offset BP-based譯碼算法的有效性大大提高,且可以得到近似甚至超過傳統算法的可靠性.
2.部分核心代碼
clc; clear all; load G; load H; %測試量化級數對誤碼性能的影響 codeword=zeros(1,6075); %碼字長度 cBit=zeros(1,675); %校驗位長度 rate=5402/6075; %碼率 SNR=[1:6]; sNum=length(SNR); EbNo=10.^(0.1*SNR); sigma=1./(sqrt(2*rate*EbNo)); maxcycle=10000; %-------- 設定試驗次數-------- maxblockerr=10; %-------- 設定最大錯誤幀數-------- errornum=zeros(1,sNum); numoferrorFrame=zeros(1,sNum); numofFrame=zeros(1,sNum); MS_BER=zeros(1,sNum); MS_FER=zeros(1,sNum); decInter=40; %--------選擇一個合適的迭代次數----------------m=7; %-----------設置量化位數 m=3 5 7 9 (不含符號位) ----------------- unitarydata=zeros(1,6075); %存儲歸一化后的數據 a=zeros(1,6075); %存儲mbit量化后的數據 c=zeros(1,6075); tic for i=1:sNumcyc=0; blockerr=0;while(cyc<maxcycle & blockerr<maxblockerr)cyc=cyc+1mBit=rand(1,5402)>=0.5;codeword=mod(mBit*G,2);waveform=bpsk(codeword,1); % 1~~~~~-1;% 0~~~~~1;%--------------接收到的加噪后的碼字------------re_waveform=waveform+sigma(i)*randn(1,6075); jieduan_data=re_waveform;maxdata=1.8;for num=1:6075if re_waveform(num)>1.8jieduan_data(num)=1.8;elseif re_waveform(num)<-1.8jieduan_data(num)=-1.8;endendunitarydata=jieduan_data./maxdata; % 將每位數據進行歸一化a=unitarydata.*(2^m-1); % 轉換為跟量化級數相關的數據c=floor(a); % 取整%--------------最小和譯碼后誤碼率--------------------de_code=MinSumDecoder(c, H, decInter,1);errors=find(de_code~=codeword);eacherrornum=length(errors);errornum(i)=errornum(i)+eacherrornum;if eacherrornum~=0blockerr= blockerr+1;endblockerrendnumoferrorFrame(i)=blockerr;numofFrame(i)=cyc;MS_BER(i)=errornum(i)/(6075*cyc)MS_FER(i)=numoferrorFrame(i)/cycend tocfigure plot(SNR,MS_BER,'g--*'); set(gca,'Yscale','log'); grid on; ylabel('BER'); xlabel('SNR'); title('碼長6075的QC-LDPC碼譯碼誤碼率曲線');3.仿真演示
4.相關參考文獻
[1]劉麗, 王中訓. 一種有效的QC-LDPC碼設計及編譯碼仿真實現[C]// 中南大學出版社有限責任公司. 中南大學出版社有限責任公司, 2011:1068.
C46
《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀總結
以上是生活随笔為你收集整理的码长6075的qc-ldpc编译码的MATLAB误码率仿真的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 基于OCR的字母识别算法的matlab仿
- 下一篇: 15.verilog可综合语句设计综述