A sound spectrogram is a visual representation of the frequency components contained in an audio signal. The device that generates the spectrogram is called spectrograph. In a spectrogram, the horizontal axis is time and the vertical axis represents frequency. The spectrogram is color coded or gray-scaled to represent the relative intensity of the sound in each frequency region and time. Some of the applications of spectrograms are speech analysis and enhancement, studying bird and animal calls, music formation, etc. During pre-computer era, the spectrograms were generated using analog techniques that involved a series of bandpass filters. With the advent of digital signal processing, the most common approach of doing sound spectrography these days is through Fast Fourier Transform (FFT) of the time domain audio signal. Varun, Hyun, and Madhuri are EE students at Cornell and they have implemented a FFT-based real-time sound spectrography using two Atmega1284 processors as their final project for the ECE4760 Digital Systems Design Using Microcontrollers class. The two processors have different responsibilities. The first one is a dedicated audio processor, which receives the input audio signal from a 3.5mm audio jack or microphone, digitize it, and convert it into frequency domain using a 128-point FFT. The second processor is in charge of receiving the FFT data from the Audio processor and generating and outputting a real-time 4-bit grayscale histogram on a TV screen in real-time. Tact switch inputs are also implemented to allow the user to control play/stop, or to change the scrolling speed and the vertical scaling of the display.
Real-time sound spectrography using Atmega1284
Here is their demo video.
This Arduino-powered vocal effects generator box shifts and distorts incoming audio signals to produce a wide variety of vocal effects. It samples an incoming audio signal from a microphone at 40KHz sampling rate, digitally process the audio, and finally outputs it as an 8-bit audio at 40KHz.
Microchip’s PIC18 family of microcontrollers are popularly known for their logic and controlling functions. In addition, these microcontrollers have builtin hardware multipliers and multiple file pointers. These features, along with the built-in analog-to-digital converter (ADC), make PIC18 microcontrollers a competent choice for applications where logic and controlling functions are combined with signal processing applications. This application note demonstrates how the PIC18 family of microcontrollers can be used to implement digital FIR and IIR filters.
Implementing digital filters with PIC18F MCU
UNI-DS6 is an universal development board from mikroElektronika for experimenting with a wide range of microcontrollers including PIC, AVR, dsPIC, ARM, and 8051. I am going to use this board to educate myself about Microchip’s dsPIC Digital Signal Controllers (DSCs). The dsPIC DSCs are 16-bit high performance microcontrollers and more powerful than regular PIC devices. They are special because they combine the best features of microcontrollers with the computational capabilities of a Digital Signal Processor (DSP), and they are capable of doing complex mathematical operations involving Fourier transforms. I am going to describe briefly about the features of UNI-DS6 board first, and then will write the “Hello World” application to test the board with dsPIC30F6014A DSC.
UNI-DS6 Development Board from mikroElektronika