• 大小: 31KB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2021-05-29
  • 语言: 其他
  • 标签: LDPC  H矩阵  LLR-BP  matlab  

资源简介

ldpc编码,随机生成H矩阵,LLR-BP算法译码,有详细的注解,非常详尽 (ldpc coding, randomly generated H matrix, LLR-BP decoding algorithm, with detailed notes, very detailed)

资源截图

代码片段和文件信息

function vHat = decodeBitFlipping(rx H iteration)
% Hard-decision/bit flipping sum product algorithm LDPC decoder
%
%  rx        : Received signal vector (column vector)
%  H         : LDPC matrix
%  iteration : Number of iteration
%
%  vHat      : Decoded vector (0/1) 
%
%
% Copyright Bagawan S. Nugroho 2007 
% http://bsnugroho.googlepages.com

[M N] = size(H);

% Prior hard-decision
ci = 0.5*(sign(rx‘) + 1);

% Initialization
rji = zeros(M N);

% Asscociate the ci matrix with non-zero elements of H
qij = H.*repmat(ci M 1);
 
% Iteration
for n = 1:iteration
   
   fprintf(‘Iteration : %d\n‘ n);
   
   % ----- Horizontal step -----
   for i = 1:M
      
      % Find non-zeros in the column
      c1 = find(H(i :));
      
      % Get the summation of qij\c1(k)        
      for k = 1:length(c1)

         rji(i c1(k)) = mod(sum(qij(i c1)) + qij(i c1(k)) 2);
         
      end % for k
      
   end % for i
   
   % ------ Vertical step ------
   for j = 1:N

      % Find non-zero in the row
      r1 = find(H(: j));
      
      % Number of 1s in a row
      numOfOnes = length(find(rji(r1 j)));
      
      for k = 1:length(r1)        

         % Update qij set ‘1‘ for majority of 1s else ‘0‘ excluding r1(k)
         if numOfOnes + ci(j) >= length(r1) - numOfOnes + rji(r1(k) j)
            qij(r1(k) j) = 1;
         else
            qij(r1(k) j) = 0;
         end
          
      end % for k
      
      % Bit decoding
      if numOfOnes + ci(j) >= length(r1) - numOfOnes
         vHat(j) = 1;
      else
         vHat(j) = 0;
      end
             
   end % for j
   
end % for n

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     文件           0  2010-05-09 00:10  1.txt
     文件        1712  2010-05-21 08:29  ber.fig
     文件           0  2010-05-06 20:31  BER误码率.txt
     文件        1742  2010-05-19 22:14  BER误码率frame=10ITER=5METHOD=1.fig
     文件         136  2010-05-19 23:25  biterr的用法.txt
     文件           0  2010-05-06 20:31  BITFLIP比特填充.txt
     文件        1621  2010-05-20 22:22  bitflip译码.fig
     文件        1697  2007-05-04 15:06  decodeBitFlip.m
     文件        2643  2010-05-23 14:03  decodeLogDomain.m
     文件        2231  2010-05-06 22:53  decodeLogDomainSimple.asv
     文件        2231  2010-05-06 22:54  decodeLogDomainSimple.m
     文件        2468  2007-05-04 15:06  decodeProbDomain.m
     文件        3097  2010-05-23 13:15  EbN0与SNR.txt
     文件        1715  2010-05-20 10:42  frame=100.fig
     文件        2955  2010-05-20 17:26  ldpcBER.asv
     文件        2929  2010-05-21 07:44  ldpcBER.m
     文件         684  2010-05-10 14:52  LU分解.txt
     文件        1648  2010-05-20 00:32  M=100N=200frame=10ITER=5METHOD=1.fig
     文件        4346  2010-05-10 16:03  makeLdpc.asv
     文件        4521  2010-05-13 11:00  makeLdpc.m
     文件        4673  2010-05-21 09:47  makeParityChk.asv
     文件        4849  2010-05-21 15:20  makeParityChk.m
     文件        2885  2010-05-06 22:32  matlab学习.txt
     文件         116  2010-05-20 00:41  关于打开fig文件的方法.txt
     文件           0  2010-05-09 00:09  提供了3种译码法.txt

评论

共有 条评论