0% found this document useful (0 votes)
193 views

Matlabcode PCM&QPSK 1

This document describes the process of pulse code modulation (PCM) and quadrature phase-shift keying (QPSK) modulation. For PCM, it generates an analog signal, samples it, quantizes the sample values, encodes the quantized values into binary digits, and demodulates the signal. For QPSK, it separates the binary input into odd and even bit streams, multiplies the odd bits with a cosine wave and even bits with a sine wave, and sums the results to generate the QPSK modulated signal.

Uploaded by

sheethal rokhade
Copyright
© © All Rights Reserved
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
193 views

Matlabcode PCM&QPSK 1

This document describes the process of pulse code modulation (PCM) and quadrature phase-shift keying (QPSK) modulation. For PCM, it generates an analog signal, samples it, quantizes the sample values, encodes the quantized values into binary digits, and demodulates the signal. For QPSK, it separates the binary input into odd and even bit streams, multiplies the odd bits with a cosine wave and even bits with a sine wave, and sums the results to generate the QPSK modulated signal.

Uploaded by

sheethal rokhade
Copyright
© © All Rights Reserved
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
You are on page 1/ 4

////PULSE CODE MODULATION///

clc;
close all;
clear all;
n=input('Enter n value for n-bit PCM system : ');
n1=input('Enter number of samples in a period : ');
L=2^n;

% % Signal Generation
% x=0:1/100:4*pi;
% y=8*sin(x); % Amplitude Of signal is 8v
% subplot(2,2,1);
% plot(x,y);grid on;

% Sampling Operation
x=0:2*pi/n1:4*pi; % n1 nuber of samples have tobe selected
s=8*sin(x);
subplot(3,1,1);
plot(s);
title('Analog Signal');
ylabel('Amplitude--->');
xlabel('Time--->');
subplot(3,1,2);
stem(s);grid on; title('Sampled Sinal'); ylabel('Amplitude--->');
xlabel('Time--->');

% Quantization Process
vmax=8;
vmin=-vmax;
del=(vmax-vmin)/L;
part=vmin:del:vmax; % level are between vmin and vmax with difference
of del
code=vmin-(del/2):del:vmax+(del/2); % Contaion Quantized valuses
[ind,q]=quantiz(s,part,code); % Quantization process
% ind contain index number and q contain quantized values
l1=length(ind);
l2=length(q);

for i=1:l1
if(ind(i)~=0) % To make index as
binary decimal so started from 0 to N
ind(i)=ind(i)-1;
end
i=i+1;
end
for i=1:l2
if(q(i)==vmin-(del/2)) % To make quantize value
inbetween the levels
q(i)=vmin+(del/2);
end
end
subplot(3,1,3);
stem(q);grid on; % Display the Quantize
values
title('Quantized Signal');
ylabel('Amplitude--->');
xlabel('Time--->');
% Encoding Process
figure
code=de2bi(ind,'left-msb'); % Cnvert the decimal to binary
k=1;
for i=1:l1
for j=1:n
coded(k)=code(i,j); % convert code matrix to a coded row
vector
j=j+1;
k=k+1;
end
i=i+1;
end
subplot(2,1,1); grid on;
stairs(coded); % Display the encoded signal
axis([0 100 -2 3]); title('Encoded Signal');
ylabel('Amplitude--->');
xlabel('Time--->');

% Demodulation Of PCM signal

qunt=reshape(coded,n,length(coded)/n);
index=bi2de(qunt','left-msb'); % Getback the index in decimal
form
q=del*index+vmin+(del/2); % getback Quantized values
subplot(2,1,2); grid on;
plot(q); % Plot Demodulated
signal
title('Demodulated Signal');
ylabel('Amplitude--->');
xlabel('Time--->');

//////QPSK MODULATION//////

clc;clear all;close all;


% data input
d=input('ENTER INPUT THE BIT STREAMS ');
ln=length(d);
x=0:1/100:ln*2*pi;
cc=cos(x);
cs=sin(x);
k=length(cc);
k1=k/ln;
% input data odd/even test
if(mod(ln,2)~=0)
d(ln+1)=0;
ln=ln+1;
end
for i=1:ln
if(d(i)==0)
d(i)=-1;
i=i+1;
end
end
% To make odd bit streams and even bit streams
i=1;j=1;
while (i<ln) && (j<ln)
dd1(j)=d(i);
dd1(j+1)=d(i);
dd2(j)=d(i+1);
dd2(j+1)=d(i+1);
j=j+2;
i=i+2;
end
% to make bit streams eqv to sinusoidal waveform
t=1;
for i=1:ln
for j=1:k1
dd(t)=d(i);
d1(t)=dd1(i);
d2(t)=dd2(i);
t=t+1;
j=j+1;
end
i=i+1;
end
subplot(3,1,1);
stairs(dd);
axis([0 t -2 2]);
title('INPUT BIT STREAMS');
ylabel('Amplitude--->');
xlabel('Time--->');
subplot(3,1,2);
stairs(d1);
axis([0 t -2 2]);
title('ODD BIT STREAMS WITH TWICE CLOCK PERIOD');
ylabel('Amplitude--->');
xlabel('Time--->');
subplot(3,1,3);
stairs(d2);
axis([0 t -2 2]);
title('EVEN BIT STREAMS WITH TWICE CLOCK PERIOD');
ylabel('Amplitude--->');
xlabel('Time--->');
figure
subplot(2,1,1);
plot(cc);
axis([0 k -2 2]);
title('COSINE WAVEFORM');
ylabel('Amplitude--->');
xlabel('Time--->');
subplot(2,1,2);
plot(cs);
axis([0 k -2 2]);
title('SINE WAVEFORM');
ylabel('Amplitude--->');
xlabel('Time--->');
len=length(d1);
if(k<len)
len=k;
end
% odd streams multiplied with cosine waveform
% even streams multiplied with sine waveform
for i=1:len
qcc(i)=cc(i)*d1(i);
qcs(i)=cs(i)*d2(i);
i=i+1;
end
figure
subplot(3,1,1);
plot(qcc);
axis([0 len -2 2]);
title('COSINE MULTIPLIED WITH ODD BIT STREAM WAVEFORM');
ylabel('Amplitude--->');
xlabel('Time--->');
subplot(3,1,2);
plot(qcs);
axis([0 len -2 2]);
title('SINE MULTIPLIED WITH EVEN BIT STREAM WAVEFORM');
ylabel('Amplitude--->');
xlabel('Time--->');
% QPSK output from summer
qp=qcc+qcs;
subplot(3,1,3);
plot(qp);
axis([0 len -2 2]);
title('QPSK WAVEFORM');
ylabel('Amplitude--->');
xlabel('Time--->');

You might also like