Showing posts with label delta modulation decoder. Show all posts
Showing posts with label delta modulation decoder. Show all posts

Thursday, November 7, 2013

Delta Modulation Encoder and Decoder

In Delta Modulation, the quantizer is a 1-bit (two level) quantizer with magnitudes +δ and -δ . A block diagram of a delta modulation system is shown in following figure. Delta modulation transmits only one bit per sample. As seen from block diagram, the present value is compared with the previous value and according to sign of this difference the staircase approximated signal is whether decreased by δ or incread by δ. δ is called step size. By this operation the input signal is approximated with a staircase signal. After this to indicate this decreses or increses a zero is send for decresing by δ and a one is send for increasing by δ.



Advantages of Delta Modulation

The delta modulation has the following advantages over PCM:

1. Delta modulation transmits only one bit.
2. The transmitter and receiver is very simple to implement.

Disadvantages of Delta Modulation

The following are the disadvantages of delta modulation:
1. Granular Noise.
2. Over-slope noise distortion.


Delta Modulator Encoder and Decoder Implementation and Analysis

I implemented delta modulator encoder and decoder using matlab. My matlab codes and results are given in the below.

Note: The required comments are given within the code.



clc             % clear command window
clear all       % clear variables
close all       % close all opened figures
 
t=[0:0.01:1]    % time matrix
m=sinc(2*pi*t)  % the original signal firstly we tried with sinc function
subplot(3,1,1)  % to plot following 3 figures in one window
hold on         % plot on this figure  
 
 
 
plot(m,'*black')            % plotting the original signal 
title('sinc function')      % title of first figure as 'sinc function' 
xlabel('time')              % x axes label as time
ylabel('amplitude')         % y axes label as amplitude
d=2*pi/100                  % step size as d = 2*pi/100;
for n=1:1:100               % taking 100 samples
if n==1                     % if n is equal 1 do the followings.
e(n)=m(n)                   
eq(n)=d*sign(e(n))
mq(n)=0;                    % we give its initial value as zero. 
else                        % if n is not equal one do the followins.
e(n)=m(n)-mq(n-1)           % compare the present value of original signal with the previous value of quantized signal
eq(n)=d*sign(e(n))          % multiply with d and sign of difference.
mq(n)=mq(n-1)+eq(n)         % add this to the previous value of quantized signal to find the present value of it.
end                         % finish the inner loop
 
end                         % finish the outer loop
 
 
enData = [0];               % encoded data initial value is zero. 
enData(1) = mq(1);          % encoded data first value is equal fist value of quantized signal. 
 
%%%% In this part we control the quantized values whether its increases or
%%%% decreses and we set logic 1 for increased values, we set logic 0 for
%%%% decreased values.
for i =1:99                    
    if mq(i)

I run the above script and obtained the following results in the figures. The first figure shows a sinc function which is approximated with delta modulation technique, and the second figure shows a sinusoidal function which is approximated with delta modulation technique.

delta modulation encoder and decoder

Read More