⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 turbo_decode.m

📁 turbo码BPSK仿真
💻 M
字号:
% rec ----接收序列,(加入了噪声的1 -1 序列)
% niter ---迭代次数
% method ---译码方案  0--logmapo
%                     1--sova0
% 程序最终输出 x_decode_msg 为1 0 行向量
function x_decode_msg=turbo_decode(rec,g,Alpha,puncture,niter,method)
          [n,k] = size(g); 
          m = k - 1;
          L=length(rec);

          yk=demultiplex(rec,Alpha,puncture);
          L_e(1:1:L/(2+puncture))=zeros(1,L/(2+puncture));
          for iter=1:niter
              %解码器1
              L_a(Alpha)=L_e;
              if method==0
                  L_all=logmapo(yk(1,:),g,L_a,1);
              else
                  L_all=sova0(yk(1,:),g,L_a,1);
              end
              L_e=L_all-2*yk(1,1:2:2*L/(2+puncture))-L_a;
              
              %解码器2
              L_a=L_e(Alpha);
              if method==0
                  L_all=logmapo(yk(2,:),g,L_a,2);
              else
                  L_all=sova0(yk(2,:),g,L_a,2);
              end
              L_e=L_all-2*yk(2,1:2:2*L/(2+puncture))-L_a;
          end
          x_decode_msg(Alpha)=(sign(L_all)+1)/2;
          L=length(x_decode_msg);
          tmp=x_decode_msg(1:1:L-m);
          x_decode_msg=tmp;              

⌨️ 快捷键说明

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