Adaptive Differential Pulse Code Modulation using PICmicro Microcontrollers
#1

INTRODUCTION
In the past, adding speech recording and playbackcapability to a product meant using a digital signalprocessor or a specialized audio chip. Now, using asimplified Adaptive Differential Pulse Code Modulation(ADPCM) algorithm, these audio capabilities can beadded to any PICmicro device. This application note willcover the ADPCM compression and decompressionalgorithms, performance comparison of all PICmicrodevices, and an application using a PIC16C72 microcontroller.
DEFINITION OF TERMS
step size - value of the step used for quantization of analogsignals and inverse quantization of a number of steps.quantization - the digital form of an analog input signalis represented by a finite number of steps.adaptive quantization - the step size of a quantizer isdramatically changed with time in order to adapt to achanging input signal.inverse quantizer - a finite number of steps isconverted into a digital representation of an analogsignal.
THEORY OF OPERATION
The ADPCM algorithm takes advantage of the highcorrelation between consecutive speech samples,which enables future sample values to be predicted.Instead of encoding the speech sample, ADPCMencodes the difference between a predicted sampleand the speech sample. This method provides moreefficient compression with a reduction in the number ofbits per sample, yet preserves the overall quality of thespeech signal. The implementation of the ADPCMalgorithm provided in this application note is based onthe Interactive Multimedia Association’s (IMA)Recommended Practices for Enhancing Digital AudioCompatibility in Multimedia Systems revision 3.00. TheITU (formerly CCITT) G.721 ADPCM algorithm is wellknown and has been implemented on many digitalsignal processors such as the TMS320 family fromTexas Instruments and the ADSP-2100 family fromAnalog Devices. ITU G.721 uses floating pointAuthor: Rodger RicheyMicrochip Technology Inc.arithmetic and logarithmic functions which are noteasily implemented in the 8-bit microcontroller world.The IMA Reference algorithm significantly reduces themathematical complexity of ITU G.721 by simplifyingmany of the operations and using table lookups whereappropriate.
COMPRESSION
The input, si, to the encoder routine must be 16-bit two’scomplement speech data. The range of allowable valuesfor si is 32767 to -32768. Figure 1 shows a blockdiagram for ADPCM compression and Appendix A hasa listing of the function ADPCMEncoder(). Thepredicted sample, sp, and the quantizer step size indexare saved in a structure for the next iteration of theencoder. Initially, the quantizer step size index and thepredicted sample (sp) are set to zero. The encoderfunction takes a 16-bit two’s complement speechsample and returns an 8-bit number containing the4-bit sign-magnitude ADPCM code.
FIGURE 1: ADPCM ENCODER BLOCKDIAGRAM
The predicted sample, sp, is subtracted from the linearinput sample, si, to produce a difference, d. Adaptivequantization is performed on the difference, resulting inthe 4-bit ADPCM value, t. The encoder and decoderboth update their internal variables based on thisADPCM value. A full decoder is actually embeddedwithin the encoder. This ensures that the encoder anddecoder are synchronized without the need to send anyadditional data. The embedded decoder is shownwithin the dotted lines of Figure 1. The embeddeddecoder uses the ADPCM value to update the inversequantizer, which produces a dequantized version, dq, ofthe difference, d. The implementation of the ADPCMalgorithm presented in this application note uses a fixedpredictor instead of an adaptive predictor whichreduces the amount of data memory and instructioncycles required


Download full report
http://ww1.microchipdownloads/en/AppNotes/00643b.pdf
Reply

Important Note..!

If you are not satisfied with above reply ,..Please

ASK HERE

So that we will collect data for you and will made reply to the request....OR try below "QUICK REPLY" box to add a reply to this page
Popular Searches: flowcode for picmicro servo motor, digital pulse counter using microcontrollers, biomedical projects using microcontrollers, adaptive pi in plc code, ppt presentation on pulse modulation, biomedical projects using microcontrollers**nload, pulse position modulation matlab code,

[-]
Quick Reply
Message
Type your reply to this message here.

Image Verification
Please enter the text contained within the image into the text box below it. This process is used to prevent automated spam bots.
Image Verification
(case insensitive)

Possibly Related Threads...
Thread Author Replies Views Last Post
  adaptive missle guidance full report computer science technology 1 4,565 10-12-2012, 03:28 PM
Last Post: seminar details
  Fast Adaptive Bilateral Filter for Edge Enhancement And Noise Removal seminar class 0 2,022 02-05-2011, 02:13 PM
Last Post: seminar class
  A 1-V 36 uW low noise adaptive interface IC for portable biomedical applications Wifi 1 2,053 30-10-2010, 01:09 PM
Last Post: Wifi

Forum Jump: