Our Goal ...to use an Atmel processor to experiment with signal detection using audio signals. Our targeted functionality was to determine the two-dimensional position (direction relative to the microphones) of a simple, predetermined or learned audio signal by sampling the outputs of two microphones.
This project was attempted on an Atmel Mega163 processor. Several limitations needed to be considered in our design and algorithms. Due to these limitations, we needed an appropriate code.
Fourier analysis and digital filtering were considered, but they fell out of the practical scope of the processor. In addition, the signal amplitude was constantly varying (and normalization is computationally expensive), and there was a tremendous amount of radiated and conducted noise (most likely due to all the other crazy projects in progress in the class), not to mention noise introduced by our ADC (analog to digital converter). We needed an algorithm that could function under noisy condition, varying signal amplitude, and low computational requirements. We used correlation with some additional detection algorithms.
The processor will receive real-time audio samples of the environment through two (2) microphones connected to the A/D ports. The reference signal must be programmed by playing the signal and pressing the "learn" button. The LEDs will blink then the signal is stored.
Optionally, if the reference signal is sensed, it will determine the direction of the signal by calculating the delay of this signal from the multiple sources. The direction will be displayed on the LEDs relative to the two microphones.