近期毕设,小白初次接触matlab,老师给了个LDPC生成矩阵的代码,带没有出图,出来的是如下图:
无标题1.jpg (55.25 KB, 下载次数: 39)
2013-5-26 00:35 上传
Columns 1 through 31
1 1 0 1 1 0 0 1 1 1 0 1 1 0 1 0 0 1 1 1 1 0 1 1 1 1 1 0 1 0 1
Columns 32 through 62
0 0 0 0 1 1 0 1 0 0 0 1 1 0 0 0 1 1 1 0 1 1 0 0 0 1 0 1 0 1 0
Columns 63 through 93
1 1 1 1 1 0 0 0 1 0 1 0 1 0 0 0 1 0 0 1 1 1 1 0 1 1 0 1 0 0 1
都是这种形式,大神帮我教我怎样修改程序出图。原代码如下:
%生成的校验矩阵为H,
function [xyuan,H,s]=generate_h()
%load encode_in.mat;
%clear;
n=512; %确定码长,即H矩阵的列数
j=4; %设置列重
k=8; %设置行重
m=n*j/k; %根据输入的(n,j,k)计算出H矩阵的行数
for i=1:(n-m) %随机生成码长为(n-m)的信息比特位
s(1,i)=round(rand(1));
end
notdown=1;
while notdown==1
clear med;
keni2=0;
while keni2==0
keni=0; %判断生成的F是否可逆,若可逆,则跳出循环;若不可逆,则继续
while keni==0
%开始利用代数方法生成所需要的去四环H矩阵23行-103行
u=primes(m); %生成大于(j-1)的素数
geshuhl=size(u);
geshu=geshuhl(1,2);
for i=1:geshu
if u(1,1)
for a=1:(geshu-i)
u(1,a)=u(1,(a+1));
end
else
break;
end
end
for i=1:geshu %将里面和m的最大公约数不为1的素数置为0
if gcd(u(1,i),m)~=1
u(1,i)=0;
end
end
a=0; %将p中除0以外的素数依次存入y中
for i=1:geshu
if u(1,i)~=0
a=a+1;
y(1,a)=u(1,i);
end
end
cl