zoukankan      html  css  js  c++  java
  • EncodeLDPC校验矩阵H的高斯变换

        这两天看LDPC得代码,刚开头,看到H矩阵的高斯变换部分,即得到H=[I P],输出P。

        按自己的想法写了段matlab代码(注释那句matlab里应该是%):

    for k = 1:rows
        if ( H(k,k) == 0 )
            ind = find( H(k+1:rows,k)~=0 );
            if ~isempty(ind)
                x = k+ind(unidrnd(length(ind)));
                H(k,:) = rem( H(k,:) + H(x,:), 2 );
            end
        end
        for i = [k+1:rows]
            if ( H(i,k) == 1)
                H(i,:) = rem( H(i,:)+H(k,:), 2 );
            end
        end
    end
    //查找有无不符合的行需要进行列变换的
    for k = 1:rows
        if H(k,k) == 0
            x = rows;
            cnd = find( H(k,rows+1:cols) ~= 0 );
            if ~isempty(cnd)
                temp = H(:,k);
                H(:,k) = H(:,x+cnd(1));
                H(:,x+cnd(1)) = temp;
                rearranged_cols(k) = x + cnd(1);
            end
        end
    end

        上面实现了上三角阵,继续下面的代码就能完成要求的操作:

    //将上三角矩阵变为前半部分单位矩阵
    for k = 1:rows
        x = k;
        ind = find( H(k,k+1:rows) ~= 0 );
        while ( ~isempty(ind) )
            x = ind(1)+x;
            H(k,:) = rem( H(k,:) + H(x,:), 2 );
            ind = find( H(k,x+1:rows) ~= 0 );
        end
    end

        虽然比较满意能够编出来,因为前几天看了但没理解,但还是网上给的方法编出来更简单些,而且用的循环少些。不管怎么说,是一个小节点的完成吧~~继续继续!!

  • 相关阅读:
    音视频之音频(三)
    音视频之声音(二)
    音视频之图片(一)
    页面错位问题
    苹果账号恢复
    js使用逗号拼接id并去重
    Nginx常用命令
    java拼接字符串、格式化字符串方式
    Ajax 请求
    raw.githubusercontent.com port 443: Connection refused
  • 原文地址:https://www.cnblogs.com/heyuheitong/p/2737949.html
Copyright © 2011-2022 走看看