• 大小: 1KB
    文件类型: .m
    金币: 1
    下载: 0 次
    发布日期: 2021-05-07
  • 语言: Matlab
  • 标签: LDPC  BP  

资源简介

详细说明LDPC码的BP译码算法!用matlab进行仿真计算!

资源截图

代码片段和文件信息

function [yoiter] = BP_decodenewc(yN0Hmnmax_iter)
if m>n
   H=H‘; 
  [mn] = size(H); 
end
if ~issparse(H)               
   [iijjsH] = find(H);
   H = sparse(iijjsHmn);  
end
p0=1./(1+exp(-2.*y./(N0/2)));  
p1=1-p0;
[iijj] = find(H);            
indx = sub2ind(size(H)iijj);
q0 = H * spdiags(p0(:)0nn); 
sq0 = full(q0(indx)); 
sff0 = sq0;
q1 = H * spdiags(p1(:)0nn); 
sq1 = full(q1(indx));  
sff1 = sq1;
for iter=1:max_iter   
        wsq1=1-2.*sq1; 
        wsq1(find(wsq1==0))=1e-20;
        dq = sparse(iijjwsq1mn);
        Pdq_v = full(real(exp(sum(spfun(‘log‘dq)2))));
   Pdq = spdiags(Pdq_v(:)0mm) * H; 
   sPdq = full(Pdq(indx));    
       sr0 = (1+sPdq./wsq1)./2; sr0(f

评论

共有 条评论