function msg = qam_mod(seq,mod)
if mod==4%4QAM
for m=1:0.5*length(seq(:))
if(seq(1,(2*m-1:2*m))==[0,0])
msg(m)=-1/sqrt(2)-1/sqrt(2)*i;
elseif(seq(1,(2*m-1:2*m))==[0,1])
msg(m)=-1/sqrt(2)+1/sqrt(2)*i;
elseif(seq(1,(2*m-1:2*m))==[1,1])
msg(m)=1/sqrt(2)+1/sqrt(2)*i;
else
msg(m)=1/sqrt(2)-1/sqrt(2)*i;
end
end
end
if mod==8%8QAM
for m=1:1/3*length(seq(:))
if(seq(1,(3*m-2:3*m))==[0,0,0])
msg(m)=-3+1*i;
elseif(seq(1,(3*m-2:3*m))==[0,0,1])
msg(m)=-3-1*i;
elseif(seq(1,(3*m-2:3*m))==[1,0,1])
msg(m)=3-1*i;
elseif(seq(1,(3*m-2:3*m))==[1,1,1])
msg(m)=1-1*i;
elseif(seq(1,(3*m-2:3*m))==[0,1,1])
msg(m)=-1-1*i;
elseif(seq(1,(3*m-2:3*m))==[0,1,0])
msg(m)=-1+1*i;
elseif(seq(1,(3*m-2:3*m))==[1,1,0])
msg(m)=1+1*i;
else
msg(m)=3+1*i;
end
end
end
if mod==16%16QAM
for m=1:1/4*length(seq(:))
if(seq(1,(4*m-3:4*m))==[0,0,0,0])
msg(m)=(3+3*i)/sqrt(10);
elseif(seq(1,(4*m-3:4*m))==[0,0,0,1])
msg(m)=(1+3*i)/sqrt(10);
elseif(seq(1,(4*m-3:4*m))==[0,0,1,1])
msg(m)=(-1+3*i)/sqrt(10);
elseif(seq(1,(4*m-3:4*m))==[0,0,1,0])
msg(m)=(-3+3*i)/sqrt(10);
elseif(seq(1,(4*m-3:4*m))==[0,1,1,0])
msg(m)=(-3+1*i)/sqrt(10);
elseif(seq(1,(4*m-3:4*m))==[0,1,1,1])
msg(m)=(-1+1*i)/sqrt(10);
elseif(seq(1,(4*m-3:4*m))==[0,1,0,1])
msg(m)=(1+1*i)/sqrt(10);
elseif(seq(1,(4*m-3:4*m))==[0,1,0,0])
msg(m)=(3+1*i)/sqrt(10);
elseif(seq(1,(4*m-3:4*m))==[1,1,0,0])
msg(m)=(3-1*i)/sqrt(10);
elseif(seq(1,(4*m-3:4*m))==[1,1,0,1])
msg(m)=(1-1*i)/sqrt(10);
elseif(seq(1,(4*m-3:4*m))==[1,1,1,1])
msg(m)=(-1-1*i)/sqrt(10);
elseif(seq(1,(4*m-3:4*m))==[1,1,1,0])
msg(m)=(-3-1*i)/sqrt(10);
elseif(seq(1,(4*m-3:4*m))==[1,0,1,0])
msg(m)=(-3-3*i)/sqrt(10);
elseif(seq(1,(4*m-3:4*m))==[1,0,1,1])
msg(m)=(-1-3*i)/sqrt(10);
elseif(seq(1,(4*m-3:4*m))==[1,0,0,1])
msg(m)=(1-3*i)/sqrt(10);
else
msg(m)=(3-3*i)/sqrt(10);
end
end
end
end