码长6075的qc-ldpc编译码的MATLAB误码率仿真
Posted fpga&matlab
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了码长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:sNum
cyc=0;
blockerr=0;
while(cyc<maxcycle & blockerr<maxblockerr)
cyc=cyc+1
mBit=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:6075
if re_waveform(num)>1.8
jieduan_data(num)=1.8;
elseif re_waveform(num)<-1.8
jieduan_data(num)=-1.8;
end
end
unitarydata=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~=0
blockerr= blockerr+1;
end
blockerr
end
numoferrorFrame(i)=blockerr;
numofFrame(i)=cyc;
MS_BER(i)=errornum(i)/(6075*cyc)
MS_FER(i)=numoferrorFrame(i)/cyc
end
toc
figure
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
以上是关于码长6075的qc-ldpc编译码的MATLAB误码率仿真的主要内容,如果未能解决你的问题,请参考以下文章
RA-LDPC编译码和QC-LDPC编译码的误码率matlab仿真
编码译码基于matlab QC-LDPC码编码和译码含Matlab译码 2194期
LDPC-6编码码长对LDPC译码性能的影响分析——以BP译码算法为例进行matlab仿真
斐波那契LDPC基于斐波那契序列的QC-LDPC改进,译码采用LLR-BP译码算法