⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 decode_log.asv

📁 ldpc编码
💻 ASV
字号:
function [c,iter_num] = decode_log( ChannelData,  ChannelFactor, H, maxiter)

LLR = ChannelData*ChannelFactor;     % ChannelFactor = 2/(sigma^2)

[m n] = size(H);

for j=1:n
    index_col = find(H(:,j));
    Q(index_col,j) = LLR(j);    % 初始化
end

for iter=1:maxiter
    for i=1:m                             %****行运算
      index_row = find(H(i,:)); 
      alpha = sign( Q(i,index_row) );     % ????????????? -1
      beta0 = abs( Q(i,index_row) );
      for j=1:length(index_row)
          beta(j) = F(beta0(j));
      end
      ALPHA = prod( alpha );   %按列求积
      BETA0 = sum( beta );
      BETA = BETA0-beta;
      for j=1:length(index_row)
          R(i,index_row(j)) = ALPHA*alpha(j)*F(BETA(j));    %???????????? -1
          if (R(i,index_row(j))<-30)        
              R(i,index_row(j)) = -30;
          end
      end
    end
    for j=1:n
      index_col = find(H(:,j));
      r(j) = sum( R( index_col,j ) );
      q(j) = LLR(j)+r(j);
      Q(index_col,j) = q(j)-R( index_col,j );
      for a=1:length(index_col)
          if (Q(index_col(a),j)<-30)
              Q(index_col(a),j) = -30;
          end
      end
    end
    
    for j=1:n
        if( q(j) < 0 )
            c(j) = 1;
        else c(j) = 0;
        end
    end
    
    if (sum( mod(c*H',2) )==0)
        iter_num = iter;
        break;
    end
    iter_num = iter;
end

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -