📄 mapping_siso_20.m
字号:
function dout = mapping_siso_20(din, Mode)
%----------------------------------------------------------------------
% mapper
%
% Mode Data_rate Coding_rate BPSC CBPS DBPS
% 1 13(Mbps) 1/2 2 104 52
% 2 19.5 3/4 2 104 78
% 3 26 1/2 4 208 104
% 4 39 3/4 4 208 156
% 6 58.5 3/4 6 312 234
% 7 65 5/6 6 312 260
%
% ex. map_dat = mapping_siso_20(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
if Mode == 1 || Mode == 2
J = 1;
for I=1:2:CBPS
if din(I) == 1 && din(I+1) == 1
temp_i(J) = 0.707;
temp_q(J) = 0.707;
elseif din(I) == 1 && din(I+1) == 0
temp_i(J) = 0.707;
temp_q(J) = -0.707;
elseif din(I) == 0 && din(I+1) == 1
temp_i(J) = -0.707;
temp_q(J) = 0.707;
elseif din(I) == 0 && din(I+1) == 0
temp_i(J) = -0.707;
temp_q(J) = -0.707;
end
J = J + 1;
end
elseif Mode == 3 || Mode == 4
J = 1;
for I=1:4:CBPS
if din(I) == 0 && din(I+1) == 0
temp_i(J) = -0.949;
elseif din(I) == 0 && din(I+1) == 1
temp_i(J) = -0.316;
elseif din(I) == 1 && din(I+1) == 1
temp_i(J) = 0.316;
elseif din(I) == 1 && din(I+1) == 0
temp_i(J) = 0.949;
end
if din(I+2) == 1 && din(I+3) == 0
temp_q(J) = 0.949;
elseif din(I+2) == 1 && din(I+3) == 1
temp_q(J) = 0.316;
elseif din(I+2) == 0 && din(I+3) == 1
temp_q(J) = -0.316;
elseif din(I+2) == 0 && din(I+3) == 0
temp_q(J) = -0.949;
end
J = J + 1;
end
elseif Mode == 6 || Mode == 7
J = 1;
for I=1:6:CBPS
if din(I) == 0 && din(I+1) == 0 && din(I+2) == 0
temp_i(J) = -1.078;
elseif din(I) == 0 && din(I+1) == 0 && din(I+2) == 1
temp_i(J) = -0.772;
elseif din(I) == 0 && din(I+1) == 1 && din(I+2) == 1
temp_i(J) = -0.463;
elseif din(I) == 0 && din(I+1) == 1 && din(I+2) == 0
temp_i(J) = -0.154;
elseif din(I) == 1 && din(I+1) == 1 && din(I+2) == 0
temp_i(J) = 0.154;
elseif din(I) == 1 && din(I+1) == 1 && din(I+2) == 1
temp_i(J) = 0.463;
elseif din(I) == 1 && din(I+1) == 0 && din(I+2) == 1
temp_i(J) = 0.772;
elseif din(I) == 1 && din(I+1) == 0 && din(I+2) == 0
temp_i(J) = 1.078;
end
if din(I+3) == 0 && din(I+4) == 0 && din(I+5) == 0
temp_q(J) = -1.078;
elseif din(I+3) == 0 && din(I+4) == 0 && din(I+5) == 1
temp_q(J) = -0.772;
elseif din(I+3) == 0 && din(I+4) == 1 && din(I+5) == 1
temp_q(J) = -0.463;
elseif din(I+3) == 0 && din(I+4) == 1 && din(I+5) == 0
temp_q(J) = -0.154;
elseif din(I+3) == 1 && din(I+4) == 1 && din(I+5) == 0
temp_q(J) = 0.154;
elseif din(I+3) == 1 && din(I+4) == 1 && din(I+5) == 1
temp_q(J) = 0.463;
elseif din(I+3) == 1 && din(I+4) == 0 && din(I+5) == 1
temp_q(J) = 0.772;
elseif din(I+3) == 1 && din(I+4) == 0 && din(I+5) == 0
temp_q(J) = 1.078;
end
J = J + 1;
end
end
dout = temp_i + i * temp_q;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -