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

📄 logmap.m

📁 turbo code log-map descdent decode
💻 M
字号:
function L_all = m_logmap(L_a,y)
global g alpha L L_info L_total
global m nstates FW0 FW1 BK0 BK1 X0 X1

Infty=1e10;
L = length(L_a);
% Initialization of Alpha and Beta
LogAlpha = -Infty*ones(nstates,L);
LogBeta = -Infty*ones(nstates,L);

% LogGamma0
LogGamma0 = X0*y/2 + repmat(-L_a/2,nstates,1);
LogGamma1 = X1*y/2 + repmat(L_a/2,nstates,1);
LogAlpha(1,1) = 0;
LogBeta(1,L)=0;

for k = 1:L-1
    temp0 = LogAlpha(BK0,k)+LogGamma0(BK0,k);
    temp1 = LogAlpha(BK1,k)+LogGamma1(BK1,k);
    t=max([temp0';temp1'])';
    temp2 = t+log(exp(temp0-t)+exp(temp1-t)+eps);
    LogAlpha(:,k+1) = temp2 - max(temp2);
end %for k

for k=L:-1:2
    temp0 = LogBeta(FW0,k)+LogGamma0(:,k);
    temp1 = LogBeta(FW1,k)+LogGamma1(:,k);
    t=max([temp0';temp1'])';
    temp2 = t+log(exp(temp0-t)+exp(temp1-t)+eps);
    LogBeta(:,k-1) = temp2 - max(temp2);
end %for k

% Compute the soft output
t=LogAlpha+LogGamma1+LogBeta(FW1,:);
ma1=max(t);
temp1 = ma1+log( sum(exp(t-ones(nstates,1)*ma1))+eps );

t=LogAlpha+LogGamma0+LogBeta(FW0,:);
ma0=max(t);
temp0 = ma0+log( sum(exp(t-ones(nstates,1)*ma0))+eps );

L_all = temp1-temp0;

⌨️ 快捷键说明

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