Theory of operation
Compress audio using adaptive differential pulse code modulation (ADPCM).
analog time ADPCM
3 2 1 -1 -2 -3
time
2008 Wayne Wolf Overheads for Computers as Components 2nd ed.
ADPCM coding
Coded in a small alphabet with positive and negative values.
{-3,-2,-1,1,2,3}
integrator
encoder
samples
inverse quantizer decoder
2008 Wayne Wolf Overheads for Computers as Components 2nd ed.
integrator
Requirements
Inputs Outputs Telephone: voice samples, ring. User interface: microphone, play messages button, record OGM button. Telephone: voice samples, onhook/off-hook command. User interface: speaker, # messages indicator, message light. Default mode: detects ring, signals offhook, pays OGM, records ICM Playback: play all messages, wait 5 seconds for new playback. OGM editing: OGM up to 10 sec. About 30 minutes voice (@ 8kHz). Consumer product range ($50) AC plug Comparable to desk phone.
Overheads for Computers as Components 2nd ed.
Functions
Comments on analysis
DRAM requirement influenced by DRAM price. Details of user interface protocol could be tested on a PC-based prototype.
Microphone*
Line-in* Line-out* Buttons* Speaker*
2008 Wayne Wolf
Controls
1 1 1 11
Record
1 1
* Outgoing* message *
1
1 1 1
Playback
1
Incoming* message
Lights
Line-in*
sample() ring-indicator()
Line-out*
sample() pick-up()
Speaker* sample()
Message classes
Message
length start-adrs next-msg samples Incoming-message msg-time
Overheads for Computers as Components 2nd ed.
Operational classes
Controls operate()
Record record-msg()
Playback playback-msg()
Software components
Front panel module. Speaker module. Telephone line module. Telephone input and output modules. Compression module. Decompression module.
Overheads for Computers as Components 2nd ed.
Erase
Record-msg/playback-msg behaviors
nextadrs = 0 msg.samples[nextadrs] = sample(source) F End(source) T record-msg
2008 Wayne Wolf Overheads for Computers as Components 2nd ed.
nextadrs = 0
Hardware platform
CPU. Memory. Front panel. 2 A/Ds:
subscriber line, microphone.
2 D/A:
subscriber line, speaker.
2008 Wayne Wolf Overheads for Computers as Components 2nd ed.