博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Encode--LDPC校验矩阵H的高斯变换
阅读量:5843 次
发布时间:2019-06-18

本文共 1094 字,大约阅读时间需要 3 分钟。

    这两天看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    endend//查找有无不符合的行需要进行列变换的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    endend

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

//将上三角矩阵变为前半部分单位矩阵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 );    endend

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

转载于:https://www.cnblogs.com/heyuheitong/archive/2012/10/24/2737949.html

你可能感兴趣的文章
CSS 3D动画概述菜鸟级解读之一
查看>>
分布式系列文章 —— 从 ACID 到 CAP / BASE
查看>>
方法签名与方法重载
查看>>
matlab进行地图仪的绘制
查看>>
Strawberry Perl CPAN Install Module 安装 Module 方法
查看>>
kindeditor.net应用
查看>>
函数preg_replace()与str_replace()
查看>>
Linux c括号作用域【原创笔记】
查看>>
用IPFS和以太坊存储数据
查看>>
Confluent平台5.0支持LDAP授权及用于IoT集成的MQTT代理
查看>>
诡异的xen故障:xenconsole: Could not read tty from store: No such file or directory
查看>>
HTTP工具CURL的使用简介
查看>>
选择“Asp.Net Web应用程序”还是“Asp.Net网站”?
查看>>
Server 2008 R2 AD RMS完整部署:准备篇
查看>>
浅谈Android系统进程间通信(IPC)机制Binder中的Server和Client获得Service Manager接口之路...
查看>>
P2P的远程协助系统技术分析[转]
查看>>
在.NET开发中的单元测试工具之(1)——NUnit
查看>>
文件的散列与校验:.NET发现之旅(五)
查看>>
生产了十几年NAS的群晖,这次准备重新定义NAS
查看>>
大家都有的迷茫我也来了
查看>>