This projects presents a couple of signal methods for detecting and localizing an acoustic signal source by using an Arduino Board and 4 microphones. There are two versions : a Python version and a Matlab version which is more complete. It has a matlab GUI.
- Data acquisition by using an Arduino Board and 4 microphones from which 1 microphone is used as reference.
- Signal processing (filtering and interpolation).
- Computing time of arrivals and the delays of the signals for each pair of microphones by using Cross-correlation, Spectogram, Wavelet and Recurrence Plot Analysis methods.
- Using Time Difference of Arrival for computing the coordinates of the signal source.
- Send an alarm for source detection and its coordinates by email on a personal device.
The method is effective but it uses classic signal processing methods. The code needs improvements as well.
In the following, there are some generated artificial signals, affected by noise, and also the results using the methods enumerated above:
Given the microphones positions in space, we can estimate the location of the signal source (in this case using the artificial signals) by using triangulation (TDOA). The red color represents the estimated source position, the purple color represents the real source position. When detected, an e-mail with the estimated source position is transmitted to the owner.
In a real scenario, lots of noise is added to the signals, like the hardware noise, the background noise, so there should be a good pre-processing. More than that, the system is created for one signal source, so more signal sources can lead to undesired results. There are lots of possibilities to enhance this code, which presents only some basic signal processing techniques for source position estimation.