Abstract:
Applications involving processing of data from external analog sources (sensors) often require some kind of digital filtering of the data prior to using the data to respond to some external event. In these cases 8- and 16-bit Microcontrollers (MCU) comes into the picture: They are inexpensive, efficient and have all the required I/O features and communication modules needed.
The Atmel AVR microcontrollers are excellent for signal processing applications due to their powerful architecture, strong instruction set and built-in multi-channel 10-bit Analog to Digital Converter (ADC). The megaAVR® series further have a hardware multiplier, which is important in signal processing applications.
This thesis describes the process of designing a digital filter and the implementation of an FIR filter using an Atmega16 microcontroller, which is one of Atmega Atmel AVR series family of microcontrollers.
The thesis in the first chapters explains the digital filters theory in brief, their main classifications according to the method of the digital implementation, their general equation formula for both FIR and IIR filters and describes the designing stages with the aid of a software package (MATLAB7).
In the last three chapters the thesis establishes in details the information needed for the implementation of digital filters in general on AVR microcontrollers firstly, and then focuses on the process of implementing a specific FIR filter on Atmega16 from scratch. A program has been written and a circuitry has been built, then results of the implementation are analyzed to support the theory.