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

📄 sccc_decoding.m

📁 用Matlab仿真turbocode的算法
💻 M
字号:
function [hard,ext_de]=sccc_decoding(La_eq,L_transprob,n,mem1,mem2,ST1,ST2,interleaving)    %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%    % to initialize alpha & beta(in form of log-probability)    %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%    m1=2^mem1;    m2=2^mem2;        fstst1=-1e10*ones(m1,1);    lstst1=fstst1;    fstst2=-1e10*ones(m2,1);    lstst2=fstst2;    fstst1(1)=0;    fstst2(1)=0;    lstst1(1)=0;    lstst2(1)=0;        %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%    % to set the a priori value(in form of log-probability) for equalizer and decoder    %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%    La_u=-log(2)*ones(2,(n+mem1));                 [L_eq,dummy]=log_MAP(La_eq,L_transprob,fstst2,lstst2,ST2);                   ext_eq=L_eq-La_eq;                ext_eq=ext_eq(:,1:2*(n+mem1));%remove the tail bits' information        ext_eq(:,interleaving)=ext_eq(:,:); %deinterleaved        ext_eq_sys=ext_eq(:,1:2:end);   % extrinsic infomation for systematic bit        ext_eq_code=ext_eq(:,2:2:end);  % extrinsic infomation for parity bit                  LLR_eq_ext=ext_eq(1,:)-ext_eq(2,:); %log-likelyhood ratio        LLR_eq_ext_sys=LLR_eq_ext(1:2:end);        LLR_eq_ext_code=LLR_eq_ext(2:2:end);                L_transprob_de=zeros(4,n+mem1);        L_de=L_transprob_de;        L_de_sys=zeros(2,n+mem1);        L_de_code=L_de_sys;        L_transprob_de(1,:)=0.5*(LLR_eq_ext_sys+LLR_eq_ext_code)-log(2);        L_transprob_de(2,:)=0.5*(LLR_eq_ext_sys-LLR_eq_ext_code)-log(2);        L_transprob_de(3,:)=0.5*(-LLR_eq_ext_sys+LLR_eq_ext_code)-log(2);        L_transprob_de(4,:)=0.5*(-LLR_eq_ext_sys-LLR_eq_ext_code)-log(2);                      La_de_sys=La_u;        La_de_code=zeros(size(La_u));                                   [softout,L_de]=log_MAP(La_de_sys,L_transprob_de,fstst1,lstst1,ST1);                 L_de_sys(1,:)=max(L_de(1,:),L_de(2,:))+log(1+exp(-abs(L_de(1,:)-L_de(2,:))));        L_de_sys(2,:)=max(L_de(3,:),L_de(4,:))+log(1+exp(-abs(L_de(3,:)-L_de(4,:))));        L_de_code(1,:)=max(L_de(1,:),L_de(3,:))+log(1+exp(-abs(L_de(1,:)-L_de(3,:))));        L_de_code(2,:)=max(L_de(2,:),L_de(4,:))+log(1+exp(-abs(L_de(2,:)-L_de(4,:))));                      ext_de=zeros(2,2*(n+mem1));               ext_de(:,1:2:end)=L_de_sys-La_de_sys-ext_eq_sys;            ext_de(:,2:2:end)=L_de_code-La_de_code-ext_eq_code;        ext_de(:,:)=ext_de(:,interleaving);        %La_eq=ext_de;                 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%        % hard desicion        %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%        [dummy,hard]=max(softout);        hard=hard-ones(1,length(softout));        hard=hard(1:n);

⌨️ 快捷键说明

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