📄 gen_h.m
字号:
function H=gen_H(pi_matrix_dim)
clc
% need to call search_queen;rotMatrix;
m=pi_matrix_dim;
dv=3;% column weight
dc=4;% row weight
N=dc*m;% input random bit stream length
A=search_queen(m); % use queen search algorithm to get a pi matrix;
B=rotMatrix(A);
C=rotMatrix(B);
D=rotMatrix(C);
% B=search_queen(m);
% C=search_queen(m);
% D=search_queen(m);
HD=[A B C D;B C D A;C D A B];
HP=eye(dv*m);
HP_temp=eye(dv*m-1);
HP_temp1=[zeros(1,dv*m);HP_temp zeros(dv*m-1,1)];
HP=HP+HP_temp1;
H=[HP HD];
InputCode=(randn(1,N)>0.15), % Information codeword;
sp=zeros(1,dv*m); % calculate checkbits value;
sptemp=dot(HD(1,:),InputCode);
sp(1)=mod(sptemp,2);
for i=2:dv*m
sptemp=dot(HD(i,:),InputCode);
sp(i)=mod(sptemp+sp(i-1),2);
end
OutputCode=[sp InputCode],
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
save Hdata.mat H;
%
disp('H matrix has been saved to Hdata.mat file!');
S_figure=mod(H*OutputCode',2);
if sum(S_figure)==0
disp('Generate H matrix correctly!');
else
disp('Fail to generate H matrix !');
end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -