www.gusucode.com > MPSK,误码率性能仿真源码程序 > MPSK,误码率性能仿真源码程序/IET_MATLAB/functions/bin2mpsk.m
% this function modulates binary data to M-psk symbols % gray mapping % M=2 BPSk % 1 -> 1 % 0 -> -1 % M=4 QPSK % 00 -> 1 % 01 -> j % 11 -> -1 % 10 -> -j % M=8, 8-PSK % 000 -> -1-j % 001 -> -1 % 010 -> j % 011 -> -1+j % 100 -> -j % 101 -> 1-j % 110 -> 1+j % 111 -> 1 function s= bin2mpsk(bits,M) % bits: binary 0/1 input data % M : MPSK % s : MPSK symbols exp(j*2*pi*m/M) if M==2 s(:,1)=2*bits-1; elseif M==4 odd=bits(1:2:end);%odd bits even=bits(2:2:end);%even bits s=(1-odd-even)+ 1i*(even-odd); elseif M==8 s=zeros(length(bits)/log2(M),1); for k=1:3:length(bits) l=floor(k/3)+1; b2d=bits(k)*4+bits(k+1)*2+bits(k+2); switch b2d case 0 s(l)=(-1-1i)/sqrt(2); case 1 s(l)=-1; case 2 s(l)=1i; case 3 s(l)=(-1+1i)/sqrt(2); case 4 s(l)=-1i; case 5 s(l)=(1-1i)/sqrt(2); case 6 s(l)=(1+1i)/sqrt(2); case 7 s(l)=1; end end end end