<HTML>
<HEAD>
   <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
   <META NAME="GENERATOR" CONTENT="Mozilla/4.04 [en] (X11; I; SunOS 5.5.1 sun4u) [Netscape]">
   <TITLE>Differential Pulse Code Modulation</TITLE>
</HEAD>
<BODY BGCOLOR="#FFFFFF" LINK="#FF0000" VLINK="#000080" ALINK="#0000FF">
<!body bgcolor=ggccaa>
<CENTER>
<H1>
<E><FONT COLOR="#000000">Differential Pulse Code Modulation (DPCM)</FONT></E></H1></CENTER>

<uL>
<LI>
<FONT COLOR="#000000"><B>How to use Differential Pulse Code Modulation files?</B></FONT></LI>
</uL>

<ol>
<li><FONT COLOR="#000000"> Down load the Differential Pulse Code Modulation files (tar or zip)
<li> Extract the files (Example: <B>tar xvf dpcm.tar</B> or <B>unzip dpcm.zip</B>)
<li> For sample usage, run <B>dpcm_demo</B> file at the MATLAB prompt
</FONT>
</ol>


<P><FONT COLOR="#000000"><A HREF="http://www.ece.drexel.edu/commweb/dpcm/dpcm.tar">Click here to down 
load the DPCM files (dpcm.tar). </A></FONT> <BR><FONT COLOR="#000000">or</FONT>
 <BR>
<FONT COLOR="#000000"><A HREF="http://www.ece.drexel.edu/commweb/dpcm/dpcm.zip">Click
here to down load the DPCM files (dpcm.zip).</A></FONT>

<P><FONT COLOR="#000000">In PCM, each sample of the waveform is encoded
independently of all the other samples. However, most source signals including
speech sampled at the Nyquist rate or faster exhibit significant correlation
between successive samples. In other words, the average change in amplitude
between successive samples is relatively small. Consequently an encoding
scheme that exploits the redundancy in the samples will result in a lower
bit rate for the source output.</FONT>

<P><FONT COLOR="#000000">A relatively simple solution is to encode the
differences between successive samples rather than the samples themselves.
The resulting technique is called differential pulse code modulation (DPCM).
Since differences between samples are expected to be smaller than the actual
sampled amplitudes, fewer bits are requrired to represent the differences.
In this case we quantize and transmit the differenced signal sequence</FONT>
<CENTER></CENTER> <BR>

<CENTER><FONT COLOR="#000000">e(n)= s(n)- s(n - 1),</FONT></CENTER>


<P><FONT COLOR="#000000">where s(n) is the sampled sequence of s(t).</FONT>
<BR><FONT COLOR="#000000">A natural refinement of this general approach
is to predict the current sample based on the previous M samples utilizing
linear prediction (LP), where LP parameters are dynamically estimated.
Block diagram of a DPCM encoder and decoder is shown below. Part (a) shows
DPCM encoder and part (b) shows DPCM decoder at the receiver.</FONT>
<TABLE>
<TR>
<TD><IMG SRC="http://www.ece.drexel.edu/commweb/dpcm/dpcm.gif" HEIGHT=350 WIDTH=704 ALIGN=CENTER></TD>
</TR>
</TABLE>


<P><FONT COLOR="#000000">The "dpcm_demo" shows the use of DPCM to approximate
a input sine wave signal and a speech signal that were sampled at 2 KHz
and 44 KHz, respectively. The source code file of the MATLAB code and the
output can be viewed using MATLAB.</FONT>

<P><FONT COLOR="#000000">To view these you need to download the zipped
MATLAB files and sound file into a directory, unzip them (example: "unzip
fname.zip" on unix), then run demo file on MATLAB. To run the demo file,
type "dpcm_demo" at the MATLAB prompt. (Remember the change directory into
the same directory that the files were placed in.)</FONT>

<P><FONT COLOR="#000000">An alternative solution is to employ logarithmic
compressor and a variable step size that adapts itself to the short-term
characteristics of the signal, yields adaptive DPCM (ADPCM).</FONT>

<P><FONT COLOR="#000000">&nbsp;<A HREF="http://www.ece.drexel.edu/commweb/index.html">Click
here to return to the Main Page.</A></FONT>
</BODY>
</HTML>




