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

📄 chapter2turbocoding.m

📁 Turbo coding in communication using MATLAB
💻 M
字号:

clear all;
il = [2 1 3];

mu0=[1.1,	-0.5,	0.9	, -0.2];
mu1=[0.9	0.7	-0.3	-0.1];
mu2=[-0.25	1	-0.9	0.1];
mup0=[mu0(il) -0.3];

% mu0=[1,	-1,	 1	, -1];
% mu1=[1	 1	-1	-1];
% mu2=[-1	 1	-1	1];
% mup0=[mu0(il) -0.3];

e0  = exp(mu0)
e1  = exp(mu1)
e2  = exp(mu2)
ep0 = exp(mup0)

e0_ipo = 1./(1+e0);
e1_ipo = 1./(1+e1);
e2_ipo = 1./(1+e2);
ep0_ipo = 1./(1+ep0);

e0  = e0 .* e0_ipo;
e1  = e1 .* e1_ipo;
e2  = e2 .* e2_ipo;
ep0 = ep0 .* ep0_ipo;


for k = 1:length(mu0)
	gama00(k) = e0_ipo(k) * e1_ipo(k);
	gama01(k) = e0(k) * e1(k);
	gama10(k) = e0(k) * e1_ipo(k);
	gama11(k) = e0_ipo(k) * e1(k);
end

alpha0(1) = 1;
alpha1(1) = 0;
for k = 1:length(mu0)-1
	alpha0(k+1) = alpha0(k) * gama00(k) + alpha1(k) * gama10(k);
	alpha1(k+1) = alpha0(k) * gama01(k) + alpha1(k) * gama11(k);
end
betha0(length(mu0)+1) = 1;
betha1(length(mu0)+1) = 0;
for k = length(mu0) : -1 : 1
	betha0(k) = betha0(k+1) * gama00(k) + betha1(k+1) * gama01(k);
	betha1(k) = betha1(k+1) * gama11(k) + betha0(k+1) * gama10(k);
end

for k = 1:length(mu0)
	llr0 = alpha0(k) * gama00(k) * betha0(k+1) + alpha1(k) * gama11(k) * betha1(k+1);
	llr1 = alpha0(k) * gama01(k) * betha1(k+1) + alpha1(k) * gama10(k) * betha0(k+1);
	llr_d1(k) = log(llr1/llr0);
end

extrinsic1  = llr_d1 - mu0;

ee1  = exp(extrinsic1)
ee1(il) = ee1(1:length(il));ee1(end) = 1;
ee1_ipo = 1./(1+ee1);
ee1		= ee1 .* ee1_ipo;

for k = 1:length(mu0)
	gama00(k) = ep0_ipo(k) * e2_ipo(k) * ee1_ipo(k);
	gama01(k) = ep0(k) * e2(k)* ee1(k);
	gama10(k) = ep0(k) * e2_ipo(k)*ee1(k);
	gama11(k) = ep0_ipo(k) * e2(k)* ee1_ipo(k);
end

alpha0(1) = 1;
alpha1(1) = 0;
for k = 1:length(mu0)-1
	alpha0(k+1) = alpha0(k) * gama00(k) + alpha1(k) * gama10(k);
	alpha1(k+1) = alpha0(k) * gama01(k) + alpha1(k) * gama11(k);
end
betha0(length(mu0)+1) = 1;
betha1(length(mu0)+1) = 0;
for k = length(mu0) : -1 : 1
	betha0(k) = betha0(k+1) * gama00(k) + betha1(k+1) * gama01(k);
	betha1(k) = betha1(k+1) * gama11(k) + betha0(k+1) * gama10(k);
end

for k = 1:length(mu0)
	llr0 = alpha0(k) * gama00(k) * betha0(k+1) + alpha1(k) * gama11(k) * betha1(k+1);
	llr1 = alpha0(k) * gama01(k) * betha1(k+1) + alpha1(k) * gama10(k) * betha0(k+1);
	llr_d2(k) = log(llr1/llr0);
end

extrinsic2  = llr_d2 - mu0;

⌨️ 快捷键说明

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