ldpc_encode.m

来自「低密度校验码(LDPC)编码解码matlab源程序」· M 代码 · 共 31 行

M
31
字号
function [u,P,rearranged_cols]=ldpc_encode(s,H)
%             高斯消元
%设H=[A | B] ==========> [I | P]
%  u=[c | s]
%∵  H*u' = u*H' = 0
%代入得:
%         _    _
%         | c' |
%  [I | P]|    | = 0
%         | s' |
%         -    -
%∴I*c' + P*s' = 0
%∴I*c' = P*s' (在GF(2)上)
%∴  c' = P*s'
%再由u=[c | s]即可得到编码后的码字。
%如果高斯消元过程中进行了列交换,
%则只需记录列交换,并以相反次序对编码后的码字同样进行列交换即可。
%解码时先求出u,再进行列交换得到uu=[c | s],后面部分即是想要的信息。

dim=size(H);
rows=dim(1);
cols=dim(2);

[P,rearranged_cols]=H2P(H);

c=mul_GF2(P,s');

u1=[c' s];

u=reorder_bits(u1,rearranged_cols);

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?