To simulate the filtering processes of the cochlea a digital signal should be segregated into an arbitrary number of narrowband signals. In subsequent stages, the software should be able to process the narrowband signals in real time. This requires a high degree of parallelism that is unsufficiently supported by currently available CPUs.
The processing units of graphic adapters provide a cost-efficient alternative to arrays of multiple CPUs. In addition, Nvidia has released the API CUDA allowing to 'abuse' the GPU for general purpose parallel number crunching. In addition it can be implemented in C++ which our robotics framework Fawkes is based on.
The goal of the project will be to get familiar with CUDA and our sound localization system and to use the aquired knowledge to implement a gammatone filterbank to segregregate a stereo signal captured by two microphones into narrow frequency bands. The narrow band signals should then each be assigned to a different GPU thread. The different threads filter the signal to extract localization information using already existent filters. The results should then be summed over the frequency bands to get a unified map of localization estimates. At the end, the performance of the system is going to be verified on a service robot in an office environment.
This thesis is a part of the HeRBiE project.
- Working knowledge of C++
- Interest in digital signal processing
- Interest in GPU programming
- Interest in robotics