Quadrature Amplitude Modulation(QAM): Theory and Matlab
Share Now...

QAM

Introduction

Quadrature Amplitude Modulation(QAM): Theory and Matlab

QAM stands for Quadrature Amplitude Modulation. It is a method of combining two amplitude-modulated (AM) signals into a single channel, thereby doubling the effective bandwidth. In telecommunications and signal processing, QAM is a method of mapping an analog signal, such as an audio or video signal, onto a digital signal for transmission.

The digital signal consists of a series of symbols, each of which represents a unique combination of the two amplitude-modulated signals. This allows the transmission of multiple bits of data in each symbol, which increases the data rate compared to simple amplitude modulation. QAM is widely used in digital television and cable television systems, as well as in digital communications systems such as Wi-Fi, Ethernet, and cable modems.

QAM Modulator and Demodulator

In the context of QAM, a modulator is a device that takes an input digital or analog signal and maps it onto a QAM signal for transmission over a communication channel. The modulator performs amplitude modulation on two carriers that are 90 degrees out of phase with each other, resulting in a signal that carries both amplitude and phase information.

A demodulator, on the other hand, is a device that takes the received QAM signal and recovers the original data or message. The demodulator performs the inverse operation of the modulator, converting the QAM signal back into its original digital or analog form. This typically involves separating the two carriers and demodulating them separately, then combining the resulting signals to recover the original data.

The performance of a QAM system depends on the accuracy of the modulator and demodulator, as well as the quality of the communication channel. To minimize errors, the modulator and demodulator must be designed to have good signal-to-noise ratios and to be able to handle any phase or amplitude distortions that may occur in the channel. Additionally, the system may use error correction codes or other techniques to further improve the accuracy of the transmitted data.

QAM Modulator:

Input signal —-> Binary data mapping —-> Amplitude modulation of two carriers —-> QAM signal

QAM Demodulator:

Received QAM signal —-> Multiplication with two carriers —-> Integration —-> Demodulated signal

Software Requirement

Matlab Software or Online Matlab

Matlab Code Version 1

Fd=1;Fs=1;
nsamp=1;
M=32;
k = log2(M);
n = 30000;
x = randi([0 1],n,1);
stem(x(1:40),'filled');
title('Random Bits');
xlabel('Bit Index');
ylabel('Binary Value');
xsym = bi2de(reshape(x,k,length(x)/k).');
figure;
stem(xsym(1:10));
title('Random Symbols');
xlabel('Symbol Index');
ylabel('Integer Value');
y=qammod(xsym,M);
title('modulated');
xlabel('Symbol Index');
ylabel('Integer Value');
ytx = y;
stem(y(1:10));
EbNo=10;
snr = EbNo + 10*log10(k) - 10*log10(nsamp);
pinput=std(ytx);
noise = (randn(1,n/k)+sqrt(-1)*randn(1,n/k))*(1/sqrt(2));
Noisestd = (pinput*10^(-snr/20));
ynoisy = ytx + (Noisestd*noise);
yrx=ynoisy;
figure;
plot(real(yrx(1:5e3)),imag(yrx(1:5e3)),'b*');
hold on;
plot(real(ytx(1:5e3)),imag(ytx(1:5e3)),'y.');
title('Signal Constellation');
legend('Received Signal', 'Transmitted Signal');
axis([-5 5 -5 5]);
hold off;

QAM Code Version 1 Output



Matlab Code Version 2

clc;
clear all;
close all;
M=8;
N=12;
msg = round(rand(N,1));
disp('BInary input at transmitter:');
disp(msg);

Tb=0.000001;
x= msg;
bits=[];
for n=1:1:length(x)
    if x(n)== 1 ;
        sig=ones(1,100);
    else x(n)==0 ;
        sig=zeros(1,100);
    end
    bits = [bits sig];
end
t1 = Tb/100:Tb/100:100*length(x)*(Tb/100);
subplot(3,1,1);
plot(t1,bits,'linewidth',2.5);
grid on;
axis([0 Tb*length(x) -0.5 1.5]);
xlabel('Time(sec)');
ylabel('Amplitude(volts)');
title('Digital input signal');

msg_reshape=reshape(x,log2(M),N/log2(M))';
disp('Information is reshaped to convert into symbol form');
disp(msg_reshape);
fprintf('\n\n');
size(msg_reshape);
for j=1 : 1 : N/log2(M)
    for i=1 :1 :log2(M)
        a(j,i)=num2str(msg_reshape(j,i));
    end
end
as=bin2dec(a);
ast=as';

subplot(3,1,2);
stem(ast,'Linewidth',2.0);
title('Serial synbol for 8-QAM modulation');
xlabel('n(discrete time)');
ylabel('Magnitude');
disp('Symbol form of information for 8-QAM');
disp(ast);
fprintf('\n\n');

%Mapping for 8-QAM modulation
p=qammod(ast,M);
scatterplot(p),grid on;
title('8-QAM constellation diagram');

%QAM Modulation
RR = real(p);
II = imag(p);
sp = Tb*2;
sr=1/sp;
f=sr*2;
t=sp/100:sp/100:sp;
ss=length(t);
m=[];
for k=1:1:length(RR)
    yr=RR(k)*cos(2*pi*f*t);
    yim=II(k)*sin(2*pi*f*t);
    y=yr+yim;
    m=[m y];
end

tt = sp/100:sp/100:sp*length(RR);
figure(1);
subplot(3,1,3);
plot(tt,m);
xlabel('Time(Sec)');
ylabel('Amplitude(volts)');
title('8-QAM Modulated signal');

Output Version 2



Explore More Projects on Matlab

Join us for Regular Updates

TelegramJoin Now
WhatsAppJoin Now
FacebookJoin Now
InstagramJoin Now
LinkedInJoin Now
Join our Telegramconnectkreations

About Connect Kreations

We the team Connect Kreations have started a Blog page which is eminently beneficial to all the students those who are seeking jobs and are eager to develop themselves in a related area. As the world is quick on uptake, our website also focuses on latest trends in recent technologies and project learning and solutions. We are continuously putting our efforts to provide you with accurate, best quality, and genuine information. Here we also have complete set of details on how to prepare aptitude, interview and more of such placement/ off campus placement preparation.

Connect Kreations is excited to announce the expansion of our services into the realm of content creation! We are now offering a wide range of creative writing services, including poetry, articles, and stories.

Whether you need a heartfelt poem for a special occasion, a thought-provoking article for your blog or website, or an engaging story to captivate your audience, our team of talented writers is here to help. We have a passion for language and a commitment to creating high-quality content that is both original and engaging.

Our services are perfect for individuals, businesses, and organizations looking to add a touch of creativity and personality to their content. We are confident that our unique perspectives and diverse backgrounds will bring a fresh and exciting voice to your project.

Thank you for choosing Connect Kreations for your content creation needs. We look forward to working with you and helping you to bring your vision to life!

The website is open to all and we want all of you to make the best use of this opportunity and get benefit from it..🤓

Share Now...
Connect Kreations
Connect Kreations
Articles: 53