Suggested Action

For any given of modulation scheme, you can provide decimal values when calling the modulation and demodulation functions. When calling the modulation and demodulation functions, specify symbol order as 'bin' for natural binary encoding or 'gray' for Gray encoding.

Modulation SchemeBeforeAfter
QAM x = randi([0 63],1,100);
y = bin2gray(x,'qam',64);
z = qammod(y,64,'bin');
x = 2*(randn(100,1)+1j*randn(100,1));
y = qamdemod(x,64,'bin');
z = gray2bin(y,'qam',64);
x = randi([0 63],1,100);
z = qammod(x,64,'gray');
x = 2*(randn(100,1)+1j*randn(100,1));
z = qamdemod(x,64,'gray')
PAM x = randi([0 63],1,100);
y = gray2bin(x,'pam',64);
z = pammod(y,64,'bin');
x = 2*(randn(100,1)+1j*randn(100,1));
y = pamdemod(x,64,pi/4,'bin');
z = bin2gray(y,'pam',64);
x = randi([0 63],1,100);
z = pammod(x,64,pi/4,'gray');
x = 2*(randn(100,1)+1j*randn(100,1));
z = pamdemod(x,64,pi/4,'gray')
FSK x = randi([0 63],1,100);
y = gray2bin(x,'fsk',64);
z = fskmod(y,64,1,256,256,'cont','bin')
x = 2*(randn(512,1)+1j*randn(512,1));
y = fskdemod(x,64,1,256,256,'bin');
z = bin2gray(y,'fsk',64)
x = randi([0 63],1,100);
z = fskmod(x,64,1,256,256,'cont','gray')
x = 2*(randn(512,1)+1j*randn(512,1));
z = fskdemod(x,64,1,256,256,'gray');
DPSK x = randi([0 63],1,100);
y = gray2bin(x,'dpsk',64);
z = dpskmod(y,64,pi/4,'bin');
x = 2*(randn(100,1)+1j*randn(100,1));
y = dpskdemod(x,64,pi/4,'bin');
z = bin2gray(y,'dpsk',64);
x = randi([0 63],1,100);
z = dpskmod(x,64,pi/4,'gray');
x=2*(randn(100,1)+1j*randn(100,1));
z = dpskdemod(x,64,pi/4,'gray');
PSK x=randi([0 63],1,100);
y=gray2bin(x,'psk',64);
z=pskmod(y,64,0,'bin');
x = 2*(randn(100,1)+1j*randn(100,1));
y = pskdemod(x,64,0,'bin');
z = bin2gray(y,'psk',64);
x=randi([0 63],1,100);
z=pskmod(x,64,0,'gray');
x = 2*(randn(100,1)+1j*randn(100,1));
z = pskdemod(x,64,0,'gray');