function X = QAM_Mod(x,Nbits); % X = QAM_Mod(x,Nbits); % Lx = length(x); i = x(1:2:Lx); q = x(2:2:Lx); for n = 1:Lx/2, i(n) = GrayCoding(i(n),Nbits); q(n) = GrayCoding(q(n),Nbits); end; Levels = 2^Nbits; i = i - (Levels-1)/2; q = q - (Levels-1)/2; X = i + sqrt(-1)*q; % scaling for uniform bit distribution Scale = 1./[0.7071; 1.5811; 3.2404; 6.5192]; X = X*Scale(Nbits);