📄 mapping.m
字号:
function out= mapping(signal_to_modu,pn,dight)
% pn=[1,1,1,1,-1,-1,-1,1,-1,-1,-1,-1,1,1,-1,1,-1,-1,1,1,-1,1,1,-1,1,1,1,1,1,1,-1,1,...
% 1,1,-1,1,1,-1,-1,1,1,1,-1,1,-1,-1,-1,1,-1,1,-1,-1,1,-1,-1,1,1,1,1,1,-1,-1,1,1,...
% -1,-1,1,-1,1,-1,1,1,-1,-1,-1,1,1,-1,-1,-1,-1,1,-1,-1,1,-1,1,1,1,1,-1,1,-1,1,-1,1,...
% -1,-1,-1,-1,-1,1,-1,1,1,-1,1,-1,1,1,1,-1,-1,1,-1,-1,-1,1,1,1,-1,-1,-1,-1,-1,-1,-1];%used to scramble the pilot
switch(dight)
case 1
for k=1:length(signal_to_modu)
if signal_to_modu(k)==0
d(k)=-1;
else
d(k)=1;
end
end
case 2
for k=1:floor(length(signal_to_modu)/2)
if signal_to_modu(2*k-1)==0
I_out(k)=-1;
else
I_out(k)=1;
end
if signal_to_modu(2*k)==0
Q_out(k)=-1;
else
Q_out(k)=1;
end
d(k)=1/(2^0.5)*(I_out(k)+(Q_out(k))*i);
end
case 4
for k=1:floor(length(signal_to_modu)/4)
if and(signal_to_modu(4*k-3)==0,signal_to_modu(4*k-2)==0)
I_out(k)=-3;
end
if and(signal_to_modu(4*k-3)==0,signal_to_modu(4*k-2)==1)
I_out(k)=-1;
end
if and(signal_to_modu(4*k-3)==1,signal_to_modu(4*k-2)==1)
I_out(k)=1;
end
if and(signal_to_modu(4*k-3)==1,signal_to_modu(4*k-2)==0)
I_out(k)=3;
end
if and(signal_to_modu(4*k-1)==0,signal_to_modu(4*k)==0)
Q_out(k)=-3;
end
if and(signal_to_modu(4*k-1)==0,signal_to_modu(4*k)==1)
Q_out(k)=-1;
end
if and(signal_to_modu(4*k-1)==1,signal_to_modu(4*k)==1)
Q_out(k)=1;
end
if and(signal_to_modu(4*k-1)==1,signal_to_modu(4*k)==0)
Q_out(k)=3;
end
d(k)=1/(10^0.5)*(I_out(k)+(Q_out(k))*i);
end
case 6
for k=1:floor(length(signal_to_modu)/6)
if signal_to_modu(6*k-5)==0&signal_to_modu(6*k-4)==0&signal_to_modu(6*k-3)==0
I_out(k)=-7;
end
if signal_to_modu(6*k-5)==0&signal_to_modu(6*k-4)==0&signal_to_modu(6*k-3)==1
I_out(k)=-5;
end
if signal_to_modu(6*k-5)==0&signal_to_modu(6*k-4)==1&signal_to_modu(6*k-3)==1
I_out(k)=-3;
end
if signal_to_modu(6*k-5)==0&signal_to_modu(6*k-4)==1&signal_to_modu(6*k-3)==0
I_out(k)=-1;
end
if signal_to_modu(6*k-5)==1&signal_to_modu(6*k-4)==1&signal_to_modu(6*k-3)==0
I_out(k)=1;
end
if signal_to_modu(6*k-5)==1&signal_to_modu(6*k-4)==1&signal_to_modu(6*k-3)==1
I_out(k)=3;
end
if signal_to_modu(6*k-5)==1&signal_to_modu(6*k-4)==0&signal_to_modu(6*k-3)==1
I_out(k)=5;
end
if signal_to_modu(6*k-5)==1&signal_to_modu(6*k-4)==0&signal_to_modu(6*k-3)==0
I_out(k)=7;
end
if signal_to_modu(6*k-2)==0&signal_to_modu(6*k-1)==0&signal_to_modu(6*k)==0
Q_out(k)=-7;
end
if signal_to_modu(6*k-2)==0&signal_to_modu(6*k-1)==0&signal_to_modu(6*k)==1
Q_out=(k)-5;
end
if signal_to_modu(6*k-2)==0&signal_to_modu(6*k-1)==1&signal_to_modu(6*k)==1
Q_out(k)=-3;
end
if signal_to_modu(6*k-2)==0&signal_to_modu(6*k-1)==1&signal_to_modu(6*k)==0
Q_out(k)=-1;
end
if signal_to_modu(6*k-2)==1&signal_to_modu(6*k-1)==1&signal_to_modu(6*k)==0
Q_out(k)=1;
end
if signal_to_modu(6*k-2)==1&signal_to_modu(6*k-1)==1&signal_to_modu(6*k)==1
Q_out(k)=3;
end
if signal_to_modu(6*k-2)==1&signal_to_modu(6*k-1)==0&signal_to_modu(6*k)==1
Q_out(k)=5;
end
if signal_to_modu(6*k-2)==1&signal_to_modu(6*k-1)==0&signal_to_modu(6*k)==0
Q_out(k)=7;
end
d(k)=1/(42^0.5)*(I_out(k)+(Q_out(k))*i);
end
otherwise
fprintf('input error');
end
for i=1:6
out(i)=0;
end
for i=7:11
out(i)=d(i-6);
end
out(12)=1*pn;
for i=13:25
out(i)=d(i-7);
end
out(26)=1*pn;
for i=26:32
out(i)=d(i-8);
end
out(33)=0;
for i=34:39
out(i)=d(i-9);
end
out(40)=1*pn;
for i=41:53
out(i)=d(i-10);
end
out(54)=-1*pn;
for i=55:59
out(i)=d(i-11);
end
for i=60:64
out(i)=0;
end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -