📄 soft_demap_siso_20_approx.m
字号:
function dout = soft_demap_siso_20_approx(din, Mode)
switch Mode
case 1
CBPS = 104;
case 2
CBPS = 104;
case 3
CBPS = 208;
case 4
CBPS = 208;
case 6
CBPS = 312;
case 7
CBPS = 312;
end
enzan=0;
%enzan=enzan+1;
re_din = real(din);
im_din = imag(din);
if Mode == 1 || Mode == 2
% QPSK
for I=1:52
dout((I-1)*2+1) = re_din(I);
dout((I-1)*2+2) = im_din(I);
end
elseif Mode == 3 || Mode == 4
% 16QAM
for I=1:52
i_bit_1 = re_din(I);
i_bit_2 = - abs(re_din(I)) + 0.6325;
%i_bit_2 = - abs(re_din(I)) + 2/sqrt(10);
q_bit_1 = im_din(I);
q_bit_2 = - abs(im_din(I)) + 0.6325;
%q_bit_2 = - abs(im_din(I)) + 2/sqrt(10);
dout((I-1)*4+1) = i_bit_1;
dout((I-1)*4+2) = i_bit_2;
dout((I-1)*4+3) = q_bit_1;
dout((I-1)*4+4) = q_bit_2;
end
elseif Mode == 6 || Mode == 7
% 64QAM
for I=1:52
i_bit_1 = re_din(I);
%i_bit_2 = - abs(re_din(I)) + 4/sqrt(42);
%i_bit_3 = - abs(abs(re_din(I)) - 4/sqrt(42)) + 2/sqrt(42);
i_bit_2 = - abs(re_din(I)) + 0.6172;
i_bit_3 = - abs(abs(re_din(I)) - 0.6172) + 0.3086;
q_bit_1 = im_din(I);
%q_bit_2 = - abs(im_din(I)) + 4/sqrt(42);
%q_bit_3 = - abs(abs(im_din(I)) - 4/sqrt(42)) + 2/sqrt(42);
q_bit_2 = - abs(im_din(I)) + 0.6172;
q_bit_3 = - abs(abs(im_din(I)) - 0.6172) + 0.3086;
dout((I-1)*6+1) = i_bit_1;
dout((I-1)*6+2) = i_bit_2;
dout((I-1)*6+3) = i_bit_3;
dout((I-1)*6+4) = q_bit_1;
dout((I-1)*6+5) = q_bit_2;
dout((I-1)*6+6) = q_bit_3;
end
end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -