📄 sccc_decoding.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 + -