Huffman-coded Audio

Posted on Feb 7, 2014

This project uses a magnetic reed switch, a NerdKit, and set of computer speakers to frighten unsuspecting visitors at the door. In covering constructing this project, we get a chance to go over some pretty neat engineering concepts: digital audio, data compression using Huffman codes, and outputing audio via PWM with analog filtering. To detect whether the door was opened or closed,

Huffman-coded Audio
Click here to download the full size of the above Circuit.

we used a magnetic reed switch, like the kind used in wired alarm systems. This one from Amazon illustrates the basic concept. One part has a magnet, and would be mounted on the moving door or window. The other part has a magnetic-field-sensitive switch, and this one has three screw terminals for the switch contacts. For the switch we purchased, we wired the "COM" common terminal to ground on our breadboard, and connected the "NC" normally closed terminal to our microcontroller pin PC5 (ATmega328P pin #28). For our part, this meant that the switch was closed (connected) when the magnet was nearby. As we discussed in our Digital Calipers DRO video, we can use the microcontroller`s built-in pull-up resistors to easily read from a switch or button with no extra components. As explained in the video, for variable-length codes, we generate a tree of binary ones and zeros corresponding to a sequence of bits, and each "leaf" of the tree corresponds to a symbol being output from the decoder. By visualizing this as a tree, we automatically enforce the constraint that no complete code for a symbol is the contained within the beginning of the code for a different symbol. Huffman coding is the specific way to generate this tree in an optimal way. By optimal, we mean that if we know ahead of time the probability distribution of all of the different symbols occuring in our information stream (and assume them to be independent), we...

Leave Comment

characters left:

Related Circuits

  • New Circuits



    Popular Circuits

    Negative Resistance Oscillator Circuits
    power supply NMOS FET selection for reverse polarity protection
    voltage Calculating current in a simple circuit
    float charger for nimh cells
    ZX Interface 2
    Car and Motorcycle Battery Tester
    Basic Tilt Sensor Tutorial Circuit
    Single-junction transistor sine wave oscillator circuit
    A non-contact automatic flashing lights circuit
    555 flow-control circuit diagram of a lantern