Quadrature Phase Shift Keying (QPSK), Theory and Matlab Code
Share Now...

QPSK

Quadrature Phase Shift Keying (QPSK) is a type of phase shift keying (PSK) in which two bits of data are encoded in each symbol, allowing for higher data rates than simpler modulation schemes like binary phase shift keying (BPSK). In QPSK, the phase of the carrier signal can take on one of four possible values, corresponding to the four possible combinations of two bits of data.

The modulation process in QPSK involves mapping the input bits to one of the four possible phase states. The demodulation process involves determining the phase of the received signal and mapping it back to the original bits.

QPSK is widely used in wireless communications, such as in digital television and satellite communications. It is also less sensitive to noise and interference than other modulation schemes, making it a good choice for applications where the signal-to-noise ratio is low.

Like DPSK, QPSK implementation can be done in software or hardware, and can be extended to other forms of PSK like 8-PSK and 16-PSK, with the main difference being the number of possible phase states used for encoding.

QPSK implementation

QPSK implementation typically involves the following steps:

  1. Bit to symbol mapping: The input data is divided into two-bit symbols, and each symbol is mapped to one of the four possible phase states. This can be done using a look-up table or by using a mathematical function to calculate the phase value for each symbol.
  2. Modulation: The carrier signal is modulated by the phase values obtained in the previous step. This can be done by multiplying the carrier signal with a complex exponential function, where the phase of the exponential function is equal to the phase of the symbol.
  3. Transmission: The modulated signal is transmitted over a communication channel, such as a wired or wireless link.
  4. Demodulation: The received signal is demodulated to recover the original data. This is typically done by multiplying the received signal with a complex exponential function of the same frequency as the carrier signal, but with a phase of zero. The result is a complex signal, which can be used to determine the phase of the received signal.
  5. Symbol to bit mapping: The demodulated signal is mapped back to the original bits by determining the symbol to which the received phase corresponds. This can be done by using a look-up table or by using a mathematical function to calculate the symbol value for each phase.

It’s worth noting that the implementation of QPSK can be done in software or hardware, and it can be affected by the presence of noise, interference or fading in the channel. To mitigate these effects, different techniques such as channel coding, interleaving, and error correction can be used in conjunction with QPSK.

Software Requirements

  • Matlab

Matlab Code

clc;
clear al;
close all;
Tb=1;
t=0:(Tb/100):Tb;
fc=1;
c1=sqrt(2/Tb)*cos(2*pi*fc*t);
c2=sqrt(2/Tb)*sin(2*pi*fc*t);

subplot(3,2,1);
plot(t,c1);
title('Carrier Signal-1');
xlabel('t ----->');
ylabel('c1(t)');
grid on;

subplot(3,2,2);
plot(t,c2);
title('Carrier Signal-2');
xlabel('t ----->');
ylabel('c2(t)');
grid on;

N=16;
m=rand(1,N);

t1=0;
t2=Tb;
for i=1:2:(N-1)
t=[t1:(Tb/100):t2];

if m(i)>0.5
m(i)=1;
m_s=ones(1,length(t));
else
m(i)=0;
m_s=-1*ones(1,length(t));
end
odd_sig(i,:)=c1.*m_s;

if m(i+1)>0.5
m(i+1)=1;
m_s=ones(1,length(t));
else
m(i+1)=0;
m_s=-1*ones(1,length(t));
end
even_sig(i,:)=c2.*m_s;

Qpsk =odd_sig + even_sig;

subplot(3,2,3);
stem(m);
title('Binary Data of Message Signal');
xlabel('n ----->');
ylabel('b(n)');
grid on;

subplot(3,2,4);
plot(t,Qpsk(i,:));
title('QPSK Modulated Signal');
xlabel('t ------>');
ylabel('s(t)');
grid on;
hold on;
t1=t1+(Tb+0.01);
t2=t2+(Tb+0.01);
end
hold off;

t1=0;
t2=Tb;
for i=1:N-1
t=[t1:(Tb/100):t2];

x1=sum(c1.*Qpsk(i,:));
x2=sum(c2.*Qpsk(i,:));

if (x1>0 && x2>0)
demod(i)=1;
demod(i+1)=1;
elseif (x1>0 && x2<0)
demod(i)=1;
demod(i+1)=0;
elseif (x1<0 && x2<0)
demod(i)=0;
demod(i+1)=0;
elseif (x1<0 && x2>0)
demod(i)=0;
demod(i+1)=1;
end

end

subplot(3,2,5);
stem(demod);
title('QPSK Demodulated Signal');
xlabel('n ------>');
ylabel('b(n)');
grid on;

Output

QPSK

More Matlab Projects

Learn how to get ready for placement and crack interviews trick



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. 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: 57