📄 awgn_decoding.m
字号:
function output_AWGN=AWGN_decoding(AWGN_in,Noise,interleaving,sigmaq,st_t1,mem1,ST1)%(output1_bin,Noise,interleaving,sigmaq,st_t1)signal_AWGN=AWGN_in+Noise;n=(length(signal_AWGN)-2*mem1)/2;%length of inforep_AWGN=[1 -1]; for symbol=1:length(rep_AWGN) L_transprob(symbol,:)=-(1/(2*sigmaq))*(abs(signal_AWGN-rep_AWGN(symbol))).^2; end %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% La_u=-log(2)*ones(2,n+mem1); %a priori; La_e=-log(2)*ones(2,2*(n+mem1)); %a priori; ext_de=zeros(2,2*(n+mem1)); L_de=zeros(2,2*(n+mem1)); La_eq=La_e; L_eq=L_transprob; ext_eq=L_eq-La_eq; 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)); fstst1=-1e10*ones(size(st_t1,1),1); lstst1=fstst1; fstst1(1)=0; lstst1(1)=0; [softout,L_de]=log_MAP(La_de_sys,L_transprob_de,fstst1,lstst1,ST1); %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % hard desicion %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% [dummy,hard]=max(softout); output_AWGN=hard-ones(1,length(softout)); output_AWGN=output_AWGN(1:n);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -