I'm trying to develop a prototype at the moment that includes a sensor to detect how fast someone is typing on a keyboard. Essentially this sensor is a microphone that will be able to detect keyboard taps and then count the number of taps in a certain time interval. So far I've just been using the instantaneous energy of the signal, and then counting the high energy impulses. The issue with this is that every sound is recorded, meaning that someone talking over the keyboard taps results in a false reading.
I need to try and design a filter that will only pass the keyboard taps and block any of the other sounds it might hear. I've read about matched filters, but am struggling on how to actually create one. I know I'll need to convolve some characteristic 'keyboard tap' signal with the microphone recording, which should give me a signal with impulses at the start of each of the taps.
I've been using matlab to try and analyse these signals, but now need to turn that into a matched filter, which has left me pretty stumped! Any help on how to design one and any pointers on convolving signals on Arduino would be really appreciated!!!
***I'm trying to design an intensity tracker for PC gamers btw