當(dāng)前位置:
首頁 >
码长6075的qc-ldpc编译码的MATLAB误码率仿真
發(fā)布時(shí)間:2025/4/5
54
豆豆
生活随笔
收集整理的這篇文章主要介紹了
码长6075的qc-ldpc编译码的MATLAB误码率仿真
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
1.算法簡(jiǎn)介
? ? ? ?為滿足高的數(shù)據(jù)需求,提出一種新的QC-LDPC碼.該校驗(yàn)矩陣的校驗(yàn)部分為近似下三角結(jié)構(gòu),上對(duì)角線下面的非零元素可以任意放置,因此是一種半確定的結(jié)構(gòu).這種結(jié)構(gòu)的碼設(shè)計(jì)靈活,性能也極高.通過對(duì)該碼的不同編譯碼算法進(jìn)行比較,提出更有效的編譯碼算法.MATLAB仿真表明,此結(jié)構(gòu)的QC-LDPC碼比雙對(duì)角線結(jié)構(gòu)的QC-LDPC碼具有更低的誤碼率,快速編碼算法和Offset BP-based譯碼算法的有效性大大提高,且可以得到近似甚至超過傳統(tǒng)算法的可靠性.
2.部分核心代碼
clc; clear all; load G; load H; %測(cè)試量化級(jí)數(shù)對(duì)誤碼性能的影響 codeword=zeros(1,6075); %碼字長(zhǎng)度 cBit=zeros(1,675); %校驗(yàn)位長(zhǎng)度 rate=5402/6075; %碼率 SNR=[1:6]; sNum=length(SNR); EbNo=10.^(0.1*SNR); sigma=1./(sqrt(2*rate*EbNo)); maxcycle=10000; %-------- 設(shè)定試驗(yàn)次數(shù)-------- maxblockerr=10; %-------- 設(shè)定最大錯(cuò)誤幀數(shù)-------- errornum=zeros(1,sNum); numoferrorFrame=zeros(1,sNum); numofFrame=zeros(1,sNum); MS_BER=zeros(1,sNum); MS_FER=zeros(1,sNum); decInter=40; %--------選擇一個(gè)合適的迭代次數(shù)----------------m=7; %-----------設(shè)置量化位數(shù) m=3 5 7 9 (不含符號(hào)位) ----------------- unitarydata=zeros(1,6075); %存儲(chǔ)歸一化后的數(shù)據(jù) a=zeros(1,6075); %存儲(chǔ)mbit量化后的數(shù)據(jù) 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; % 將每位數(shù)據(jù)進(jìn)行歸一化a=unitarydata.*(2^m-1); % 轉(zhuǎn)換為跟量化級(jí)數(shù)相關(guān)的數(shù)據(jù)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('碼長(zhǎng)6075的QC-LDPC碼譯碼誤碼率曲線');3.仿真演示
4.相關(guān)參考文獻(xiàn)
[1]劉麗, 王中訓(xùn). 一種有效的QC-LDPC碼設(shè)計(jì)及編譯碼仿真實(shí)現(xiàn)[C]// 中南大學(xué)出版社有限責(zé)任公司. 中南大學(xué)出版社有限責(zé)任公司, 2011:1068.
C46
《新程序員》:云原生和全面數(shù)字化實(shí)踐50位技術(shù)專家共同創(chuàng)作,文字、視頻、音頻交互閱讀總結(jié)
以上是生活随笔為你收集整理的码长6075的qc-ldpc编译码的MATLAB误码率仿真的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 基于OCR的字母识别算法的matlab仿
- 下一篇: 15.verilog可综合语句设计综述