ACCESS IC LAB Graduate Institute of Electronics Engineering, NTU Adaptive Differential Pulse Adaptive Differential Pulse Code Modulation Code Modulation Instructor: Chia-Tsun Wu. 11/18/2004
Jan 07, 2016
ACCESS IC LAB
Graduate Institute of Electronics Engineering, NTU
Adaptive Differential Pulse Code Adaptive Differential Pulse Code ModulationModulation
Instructor: Chia-Tsun Wu.
11/18/2004
ACCESS IC LAB Graduate Institute of Electronics Engineering, NTU
P2
OutlineOutline
File format for voice data filesADPCM encoding algorithmADPCM decoding algorithmStep size determinationInitial and reset conditionsADPCM CODEC C example code LAB
ACCESS IC LAB Graduate Institute of Electronics Engineering, NTU
P3
File format for voice data filesFile format for voice data files
ACCESS IC LAB Graduate Institute of Electronics Engineering, NTU
P4
ADPCM encoding algorithmADPCM encoding algorithm
ACCESS IC LAB Graduate Institute of Electronics Engineering, NTU
P5
ADPCM encoding algorithmADPCM encoding algorithm
let B3 = B2 = B1 = B0 = 0if (d(n) < 0)
then B3 = 1d(n) = ABS(d(n))if (d(n) >= ss(n))
then B2 = 1 and d(n) = d(n) - ss(n)if (d(n) >= ss(n) / 2)
then B1 = 1 and d(n) = d(n) - ss(n) / 2if (d(n) >= ss(n) / 4)
then B0 = 1L(n) = (10002 * B3) + (1002 * B2) + (102 * B1) + B0
ACCESS IC LAB Graduate Institute of Electronics Engineering, NTU
P6
ADPCM decoding algorithmADPCM decoding algorithm
ACCESS IC LAB Graduate Institute of Electronics Engineering, NTU
P7
ADPCM decoding algorithmADPCM decoding algorithm
d(n) = (ss(n)*B2) + (ss(n)/2*B1) + (ss(n)/4*BO) + (ss(n)/8)
if (B3 = 1)
then d(n) = d(n) * (-1)
X(n) = X(n-1) + d(n)
ACCESS IC LAB Graduate Institute of Electronics Engineering, NTU
P8
Step size determinationStep size determination
ACCESS IC LAB Graduate Institute of Electronics Engineering, NTU
P9
Initial and reset conditionsInitial and reset conditions
Step size ss(n) = 16Estimated waveform value X = 0 (half scale)No DC offset input
ACCESS IC LAB Graduate Institute of Electronics Engineering, NTU
P10
ADPCM CODEC C example codeADPCM CODEC C example code
Please refer to reference [2]
ACCESS IC LAB Graduate Institute of Electronics Engineering, NTU
P11
Two examplesTwo examples
Example 1:Speech: 8 bits resolutions, 22.5K sample rateADPCM encode to 2 bits per sample
Example 2:Music: 8 bits resolutions, 22.5K sample rateADPCM encode to 2 bits per sample
ACCESS IC LAB Graduate Institute of Electronics Engineering, NTU
P12
DistortionsDistortions
Source
ADPCM encode
ACCESS IC LAB Graduate Institute of Electronics Engineering, NTU
P13
Distortions cont’Distortions cont’
ACCESS IC LAB Graduate Institute of Electronics Engineering, NTU
P14
LABLAB Lab 1: Write a 16 to 4 or 12 to 4 ADPCM CODEC
Sample rate: 8KHz for speech Resolutions: 16 or 12 bits Encode to 4 bits
Lab 2: Write a 16 to 4 or 12 to 4 ADPCM CODEC Sample rate: 44.1K for music Resolutions: 16 bits Encode to 4 bits
Lab 3: Write a 8 to 2 ADPCM CODEC Sample rate: 8KHz for speech Resolutions: 8 bits Encode to 2 bits
Bonus: try to explain and optimal your algorithm to reduce distortions or noise. (need more analysis)
ACCESS IC LAB Graduate Institute of Electronics Engineering, NTU
P15
ReferenceReference
http://resource.intel.com/telecom/support/appnotes/adpcm.pdf
http://strawberry.resnet.mtu.edu/pub/Microchip/Dsk1/10/appnote/category/pic16/