📄 mapper.m
字号:
function [ Data ] = Mapper( Msg,Bitpersym )
% This function map the bits to complex data;
Data=[];
[Nr,Nc]=size(Msg);
if mod(Nc,Bitpersym)~=0
error('the length of the Msg do not match the Bitpersym');
end
M=floor(Nc/Bitpersym);
for k=1:1:Nr
for i=1:1:M
Data(k,i)=mapper_con(Msg(k,(i-1)*Bitpersym+1:i*Bitpersym));
end
end
% define the subfunction mapper_con;
function y=mapper_con(x)
N=length(x);
index=0;
for n=N:-1:1,
index=index*2+x(n);
end;
index=floor(index+1);
Con_bpsk=[1 -1];
Con_qpsk=[1+j 1-j -1+j -1-j]/sqrt(2);
Con_qam16=[1+j 1+3*j 1-j 1-3*j 3+j 3+3*j 3-j 3-3*j ...
-1+j -1+3*j -1-j -1-3*j -3+j -3+3*j -3-j -3-3*j]/sqrt(10);
Con_qam64=[3+3*j 3+j 3+5*j 3+7*j 3-3*j 3-j 3-5*j 3-7*j ...
1+3*j 1+j 1+5*j 1+7*j 1-3*j 1-j 1-5*j 1-7*j ...
5+3*j 5+j 5+5*j 5+7*j 5-3*j 5-j 5-5*j 5-7*j ...
7+3*j 7+j 7+5*j 7+7*j 7-3*j 7-j 7-5*j 7-7*j ...
-3+3*j -3+j -3+5*j -3+7*j -3-3*j -3-j -3-5*j -3-7*j ...
-1+3*j -1+j -1+5*j -1+7*j -1-3*j -1-j -1-5*j -1-7*j ...
-5+3*j -5+j -5+5*j -5+7*j -5-3*j -5-j -5-5*j -5-7*j ...
-7+3*j -7+j -7+5*j -7+7*j -7-3*j -7-j -7-5*j -7-7*j]/sqrt(42);
switch N
case 1
y=Con_bpsk(index);
case 2
y=Con_qpsk(index);
case 4
y=Con_qam16(index);
case 6
y=Con_qam64(index);
end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -