fountain_BP_Gauss_decode

%*****************************************************************
% 编码——BPSK——AWGN——高斯白(0,cigema平方)
% mcisj :从编码比特ci到信息比特sj的LLR
% msicj :从信息比特si到编码比特cj的LLR
%
%*****************************************************************
%*****************************************************************
%   全局迭代译码算法下,外部信息在外码译码器和内码译码器之间以一种相似于
%Turbo码译码的方式进行信息交换
%   在全局迭代BP译码算法中,
%  ● LT码先进行n1次BP译码迭代,然后LT码输入比特的软输出被反馈作为预编码的
%变量节点的信道LLR值消息,因为LT码的输入比特就是预编码的变量节点
%  ● 接着进行n2次预编码的BP译码迭代,在预编码BP译码迭代以后,预编码译码器
%产生的变量节点外部信息被反馈到LT码译码器,作为LT码译码器的先验信息
%   以上过程完成了依次全局BP译码迭代,进行n3次这样的全局BP译码迭代后执行
%硬判决,恢复出信息字
%*****************************************************************


%***************************LT_BP译码迭代开始*******************************
 y = mod(x_1*G,2);
while(1)
    %***********判斷準備開始1*****************
    for i = 1:n
        front_judge(i) = length(find(G(:,i)==1));  % n , G
    end
    %***********判斷準備結束1*****************
    count = zeros(1,n);
    for j = 1:n
        index_1 = find(G(:,j)==1);
        if length(index_1)==1     %條件滿足
            count(j) = index_1;
            x(index_1) = y(j);                     % y
            G(index_1,j) = 0;
        end
    end
    t = 1;
    countt = zeros(1,length(find(count~=0)));
    for j = 1:n
        if count(j)~=0
            countt(t) = count(j);
            t = t + 1;
        end
    end
    countt;
    for i = 1:length(countt)         %橫坐標count
        for j = 1:n
            if G(countt(i),j) == 1
                y(j) = xor(x(countt(i)),y(j));
                G(countt(i),j) = 0;
            end
        end
    end
    %***********判斷準備開始2*****************
    for i = 1:n
        last_judge(i) = length(find(G(:,i)==1));
    end
    %***********判斷準備結束2*****************
    if last_judge==front_judge
        break;
    end
end
x_2 = x;
%***************************LT_BP译码迭代结束*******************************
%*************************预编码_BP译码迭代开始******************************




%*************************预编码_BP译码迭代结束******************************
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值