How do I find signal-sections with a re-appearing particular shape in a noisy signal?

I want to detect tap-events (user tapped a device) using the 100Hz 3-axis accelerometer data provided by the device. This detection needs to be done on the PC retrospectively, not in the device.

A typical tap-event has a distinct shape, approx. like this:

enter image description here

Naturally the signal can have different amplitudes and be noisy. I need an algorithm to detect sections of the accelerometer signal with similar shapes.

From reading this forum I see hints pointing to convolution, matched filters or cross correlation. As these are all new to me: Before I start digging deeper into one of those topics, I'd like to ask the pros here, which direction to head first. (just to avoid useless effort)

As a side-note (may help later in the process): Tapping will always happen on the same side of the device, so I know the event is mainly seen on channel Z, channel X and Y show the tap very small only.


1 Answer 1


Please consider the following, if you are not familiar with some of the techniques you described

  • A simple vectorial amplitude + detrend + threshold would be enough to catch most of the taps over a triaxial accelerometer under smooth movements. Do not try to explore other techniques before this.
  • A tap from one axis would have that axis amplitudes highlighted. But remember the device structure is solid, and transmits vibrations from the tap point into the accelerometer through different mechanical impedances, which you normally will not know.
  • Since taps come from a known direction, you would expect a fast positive trend (the tap), plus a slot negative trend (the support of the device). Those trends can be detected with an integrator, or a low pass filter.
  • If you have the assumption of expect some predefined waveform shapes, you could have a good suited application for wavelets and similar techniques. Only if you have previous functional background on them, to disregard these techniques if too cumbersome.
  • Note some taps could not have an expected waveform shape. Some parameter identification could be useful at some extent for capturing simple dynamics.
  • Finally, when you have positive results with any strategy, you would find very useful to apply a learning or training algorithm to optimize your method. Having your model and parameter space well built, applying some Newton Raphson, Neural Net or any similar methods will surely improve it.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.