Breaking News

Performing Pulse Code Modulation and Demodulation using MATLAB Code

This is a MATLAB code for performing Pulse Code Modulation (PCM) on an analog signal. The code generates an analog signal, samples it, quantizes it, encodes it, and finally demodulates it back to obtain the original analog signal. Here is the complete code:

function pcm()
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:2*pi/n1:4*pi;               
% n1 number of samples have to be selected
s=4*sin(x);
subplot(4,1,1);
plot(s);
title('Analog Signal');
ylabel('Amplitude--->');
xlabel('Time--->');

subplot(4,1,2);
stem(s);grid on;  
title('Sampled Signal');  
ylabel('Amplitude--->'); 
xlabel('Time--->');

 %  Quantization Process

 vmax=10;
 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 values 

 [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 
  
 end   
  for i=1:l2
     if(q(i)==vmin-(del/2))    
                      
             % To make quantize value in between the levels

         q(i)=vmin+(del/2);
     end
 end    


 subplot(4,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');        % Convert 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

        k=k+1;
    end

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');         % Get back the index in decimal form
 q=del*index+vmin+(del/2);            % Get back Quantized values
 subplot(4,1,4); 
 plot(q);                                            % Plot Demodulated signal
 title('Demodulated Signal');
 ylabel('Amplitude--->');
 xlabel('Time--->');
end

Read more ...

What do you mean by Constellation Diagrams in Communication Systems?

A constellation diagram is a graphical representation of a signal modulated by a digital modulation scheme such as quadrature amplitude modulation or phase-shift keying(QAM/QPSK). It shows the signal constellation, which is a set of complex numbers that represent the possible signal values in a modulation scheme.

In a constellation diagram, each point represents a symbol, and the location of the point in the complex plane represents the phase and amplitude of the corresponding signal. The horizontal axis represents the in-phase (I) component of the signal, and the vertical axis represents the quadrature (Q) component of the signal.

The constellation diagram is a useful tool for analyzing the performance of a communication system. Measured constellation diagrams can be used to recognize the type of interference and distortion in a signal. It can be used to visualize the effects of noise and other impairments on the transmitted signal. By analyzing the distribution of points in the constellation diagram, engineers can evaluate the quality of the signal and make adjustments to improve the performance of the system.
Read more ...
Designed By