As can be seen in the screenshots given in the results section, the setup and program work at least some of the time. As was noted in the introduction, there is a small degree of ambiguity resulting from the two-dimensional nature of the array in that the array and algorithm will not be able to distinguish at all, theoretically, between a source above the array and an identical source at a location that is the original source reflected across the plane of the array. Practically, this should not matter at all if the array is mounted on a wall or on the ground, but should the need arise, the problem can be eliminated completely by taking the array to three dimensions.
As the arccosine function was used in the computation of one of the angles, accuracy is much worse as the angle approaches ±pi/ 2 due to the slope of the arccosine function going to infinity in that region. The shortcuts we took were probably detrimental to the accuracy of the project, but once again, they were necessary to have it run at all on what we had to work with. Scanning with only three microphones instead of with all eight does not fully utilize the noise-reducing capability of the delay and sum technique, but it does conserve a great deal of computing power. The simplification made by assuming that the three microphones used to scan could be broken up into pairs will sometimes yield ”Not a Number” as one of the angles because the resulting delays are not physically realizable.
When it works, the simplification cuts computation for that portion of the program from complexity O(n^2) to O(n). The reason for this is that the ”safe” way to scan using the three microphones would be to check each valid pair of delays, where valid would mean that the delays between the microphones was physically realizable, and then take the pair corresponding to the maximum power whilst the ”quick” way to do so that we ended up using was to compute the delay for one pair, compute the delay for the other pair, and then assume that the two delays as a pair were physically realizable. This works if the maximum power is located at one of the valid pairs of delays (as, in most cases where there is a well defined signal, it will be) and fails if it is not, but is in return far faster, much as the reduction in computational complexity would suggest.






