📄 get_llr.m
字号:
function LLR = get_llr( x ,Es)
% as;dfj
%
% Map_16QAM=[ 1+j -1+j 1-j -1-j 3+j -3+j 3-j -3-j 1+3j -1+3j 1-3j -1-3j 3+3j -3+3j 3-3j -3-3j] / sqrt(10);
K = 4;
j = sqrt(-1);
LLR = zeros(K,length(x));
x = x * sqrt(10/Es);
% ---------- get soft information for 16QAM --------------
for i=1:length(x)
if (real(x(i))<-2) yreal(i) = -3;
elseif (real(x(i))>=-2) & (real(x(i))<0) yreal(i) = -1;
elseif (real(x(i))>=0) & (real(x(i))<=2) yreal(i) = 1;
else yreal(i) = 3; end
if (imag(x(i))<-2) yimag(i) = -3;
elseif (imag(x(i))>=-2) & (imag(x(i))<0) yimag(i) = -1;
elseif (imag(x(i))>=0) & (imag(x(i))<=2) yimag(i) = 1;
else yimag(i) = 3; end
end
for i=1:length(x)
% point 1111
if (yreal(i) == -3) & (yimag(i) == -3)
b41(i) = abs(x(i) - yreal(i) -j*yimag(i))^2;
b40(i) = abs(x(i) - (1-3*j))^2;
b31(i) = abs(x(i) - yreal(i) -j*yimag(i))^2;
b30(i) = abs(x(i) - (-3+j))^2;
b21(i) = abs(x(i) - yreal(i) -j*yimag(i))^2;
b20(i) = abs(x(i) - (-1-3*j))^2;
b11(i) = abs(x(i) - yreal(i) -j*yimag(i))^2;
b10(i) = abs(x(i) - (-3-j))^2;
end;
% point 0111
if (yreal(i) == -3) & (yimag(i) == -1)
b41(i) = abs(x(i) - yreal(i) -j*yimag(i))^2;
b40(i) = abs(x(i) - (1-j))^2;
b31(i) = abs(x(i) - yreal(i) -j*yimag(i))^2;
b30(i) = abs(x(i) - (-3+j))^2;
b21(i) = abs(x(i) - yreal(i) -j*yimag(i))^2;
b20(i) = abs(x(i) - (-1-j))^2;
b10(i) = abs(x(i) - yreal(i) -j*yimag(i))^2;
b11(i) = abs(x(i) - (-3-3*j))^2;
end;
% point 0101
if (yreal(i) == -3) & (yimag(i) == 1)
b41(i) = abs(x(i) - yreal(i) -j*yimag(i))^2;
b40(i) = abs(x(i) - (1+j))^2;
b30(i) = abs(x(i) - yreal(i) -j*yimag(i))^2;
b31(i) = abs(x(i) - (-3-j))^2;
b21(i) = abs(x(i) - yreal(i) -j*yimag(i))^2;
b20(i) = abs(x(i) - (-1+j))^2;
b10(i) = abs(x(i) - yreal(i) -j*yimag(i))^2;
b11(i) = abs(x(i) - (-3+3*j))^2;
end;
% point 1101
if (yreal(i) == -3) & (yimag(i) == 3)
b41(i) = abs(x(i) - yreal(i) -j*yimag(i))^2;
b40(i) = abs(x(i) - (1+3*j))^2;
b30(i) = abs(x(i) - yreal(i) -j*yimag(i))^2;
b31(i) = abs(x(i) - (-3-j))^2;
b21(i) = abs(x(i) - yreal(i) -j*yimag(i))^2;
b20(i) = abs(x(i) - (-1+3*j))^2;
b11(i) = abs(x(i) - yreal(i) -j*yimag(i))^2;
b10(i) = abs(x(i) - (-3+j))^2;
end;
% point 1011
if (yreal(i) == -1) & (yimag(i) == -3)
b41(i) = abs(x(i) - yreal(i) -j*yimag(i))^2;
b40(i) = abs(x(i) - (1-3*j))^2;
b31(i) = abs(x(i) - yreal(i) -j*yimag(i))^2;
b30(i) = abs(x(i) - (-1+j))^2;
b20(i) = abs(x(i) - yreal(i) -j*yimag(i))^2;
b21(i) = abs(x(i) - (-3-3*j))^2;
b11(i) = abs(x(i) - yreal(i) -j*yimag(i))^2;
b10(i) = abs(x(i) - (-1-j))^2;
end;
% point 0011
if (yreal(i) == -1) & (yimag(i) == -1)
b41(i) = abs(x(i) - yreal(i) -j*yimag(i))^2;
b40(i) = abs(x(i) - (1-j))^2;
b31(i) = abs(x(i) - yreal(i) -j*yimag(i))^2;
b30(i) = abs(x(i) - (-1+j))^2;
b20(i) = abs(x(i) - yreal(i) -j*yimag(i))^2;
b21(i) = abs(x(i) - (-3-j))^2;
b10(i) = abs(x(i) - yreal(i) -j*yimag(i))^2;
b11(i) = abs(x(i) - (-1-3*j))^2;
end;
% point 0001
if (yreal(i) == -1) & (yimag(i) == 1)
b41(i) = abs(x(i) - yreal(i) -j*yimag(i))^2;
b40(i) = abs(x(i) - (1+j))^2;
b30(i) = abs(x(i) - yreal(i) -j*yimag(i))^2;
b31(i) = abs(x(i) - (-1-j))^2;
b20(i) = abs(x(i) - yreal(i) -j*yimag(i))^2;
b21(i) = abs(x(i) - (-3+j))^2;
b10(i) = abs(x(i) - yreal(i) -j*yimag(i))^2;
b11(i) = abs(x(i) - (-1+3*j))^2;
end;
% point 1001
if (yreal(i) == -1) & (yimag(i) == 3)
b41(i) = abs(x(i) - yreal(i) -j*yimag(i))^2;
b40(i) = abs(x(i) - (1+3*j))^2;
b30(i) = abs(x(i) - yreal(i) -j*yimag(i))^2;
b31(i) = abs(x(i) - (-1-j))^2;
b20(i) = abs(x(i) - yreal(i) -j*yimag(i))^2;
b21(i) = abs(x(i) - (-3+3*j))^2;
b11(i) = abs(x(i) - yreal(i) -j*yimag(i))^2;
b10(i) = abs(x(i) - (-1+j))^2;
end;
% point 1010
if (yreal(i) == 1) & (yimag(i) == -3)
b40(i) = abs(x(i) - yreal(i) -j*yimag(i))^2;
b41(i) = abs(x(i) - (-1-3*j))^2;
b31(i) = abs(x(i) - yreal(i) -j*yimag(i))^2;
b30(i) = abs(x(i) - (1+j))^2;
b20(i) = abs(x(i) - yreal(i) -j*yimag(i))^2;
b21(i) = abs(x(i) - (3-3*j))^2;
b11(i) = abs(x(i) - yreal(i) -j*yimag(i))^2;
b10(i) = abs(x(i) - (1-j))^2;
end;
% point 0010
if (yreal(i) == 1) & (yimag(i) == -1)
b40(i) = abs(x(i) - yreal(i) -j*yimag(i))^2;
b41(i) = abs(x(i) - (-1-j))^2;
b31(i) = abs(x(i) - yreal(i) -j*yimag(i))^2;
b30(i) = abs(x(i) - (1+j))^2;
b20(i) = abs(x(i) - yreal(i) -j*yimag(i))^2;
b21(i) = abs(x(i) - (3-j))^2;
b10(i) = abs(x(i) - yreal(i) -j*yimag(i))^2;
b11(i) = abs(x(i) - (1-3*j))^2;
end;
% point 0000
if (yreal(i) == 1) & (yimag(i) == 1)
b40(i) = abs(x(i) - yreal(i) -j*yimag(i))^2;
b41(i) = abs(x(i) - (-1+j))^2;
b30(i) = abs(x(i) - yreal(i) -j*yimag(i))^2;
b31(i) = abs(x(i) - (1-j))^2;
b20(i) = abs(x(i) - yreal(i) -j*yimag(i))^2;
b21(i) = abs(x(i) - (3+j))^2;
b10(i) = abs(x(i) - yreal(i) -j*yimag(i))^2;
b11(i) = abs(x(i) - (1+3*j))^2;
end;
% point 1000
if (yreal(i) == 1) & (yimag(i) == 3)
b40(i) = abs(x(i) - yreal(i) -j*yimag(i))^2;
b41(i) = abs(x(i) - (-1+3*j))^2;
b30(i) = abs(x(i) - yreal(i) -j*yimag(i))^2;
b31(i) = abs(x(i) - (1-j))^2;
b20(i) = abs(x(i) - yreal(i) -j*yimag(i))^2;
b21(i) = abs(x(i) - (3+3*j))^2;
b11(i) = abs(x(i) - yreal(i) -j*yimag(i))^2;
b10(i) = abs(x(i) - (1+j))^2;
end;
% point 1110
if (yreal(i) == 3) & (yimag(i) == -3)
b40(i) = abs(x(i) - yreal(i) -j*yimag(i))^2;
b41(i) = abs(x(i) - (-1-3*j))^2;
b31(i) = abs(x(i) - yreal(i) -j*yimag(i))^2;
b30(i) = abs(x(i) - (3+j))^2;
b21(i) = abs(x(i) - yreal(i) -j*yimag(i))^2;
b20(i) = abs(x(i) - (1-3*j))^2;
b11(i) = abs(x(i) - yreal(i) -j*yimag(i))^2;
b10(i) = abs(x(i) - (3-j))^2;
end;
% point 0110
if (yreal(i) == 3) & (yimag(i) == -1)
b40(i) = abs(x(i) - yreal(i) -j*yimag(i))^2;
b41(i) = abs(x(i) - (-1-j))^2;
b31(i) = abs(x(i) - yreal(i) -j*yimag(i))^2;
b30(i) = abs(x(i) - (3+j))^2;
b21(i) = abs(x(i) - yreal(i) -j*yimag(i))^2;
b20(i) = abs(x(i) - (1-j))^2;
b10(i) = abs(x(i) - yreal(i) -j*yimag(i))^2;
b11(i) = abs(x(i) - (3-3*j))^2;
end;
% point 0100
if (yreal(i) == 3) & (yimag(i) == 1)
b40(i) = abs(x(i) - yreal(i) -j*yimag(i))^2;
b41(i) = abs(x(i) - (-1+j))^2;
b30(i) = abs(x(i) - yreal(i) -j*yimag(i))^2;
b31(i) = abs(x(i) - (3-j))^2;
b21(i) = abs(x(i) - yreal(i) -j*yimag(i))^2;
b20(i) = abs(x(i) - (1+j))^2;
b10(i) = abs(x(i) - yreal(i) -j*yimag(i))^2;
b11(i) = abs(x(i) - (3+3*j))^2;
end;
% point 1100
if (yreal(i) == 3) & (yimag(i) == 3)
b40(i) = abs(x(i) - yreal(i) -j*yimag(i))^2;
b41(i) = abs(x(i) - (-1+3*j))^2;
b30(i) = abs(x(i) - yreal(i) -j*yimag(i))^2;
b31(i) = abs(x(i) - (3-j))^2;
b21(i) = abs(x(i) - yreal(i) -j*yimag(i))^2;
b20(i) = abs(x(i) - (1+3*j))^2;
b11(i) = abs(x(i) - yreal(i) -j*yimag(i))^2;
b10(i) = abs(x(i) - (3+j))^2;
end;
end
LLR(1,:) = b10 -b11;
LLR(2,:) = b20 -b21;
LLR(3,:) = b30 -b31;
LLR(4,:) = b40 -b41;
% LLR = LLR / 2 / (sigma^2);
clear b40 b41 b30 b31 b20 b21 b10 b11 yreal yimag;
LLR = reshape(LLR, 1, K*length(x));
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -