I would like to ask what could be the easiest way to detect the presence and beginning (no more, no less) of under-damped harmonic signal in a collect of ultrasound data. I have some acquired data which is presented in 2-D image form, where vertical axis are related with time. Under-damped harmonic signal, which I need to detect, looks like here, but of course it is noised.

I would like to detect presence of this kind of signal automatically. Currently I've developed algorithm, which calculates short-time Fourier transform for every vertical line of image, collect values of five the most often frequencies for every short-time window, and chooses the vertical line with the most harmonically nature - with the most repeated frequencies. Unfortunately in this solution every time one of the line is chosen. I can use some kind of threshold for sure, but i don't think so it's good solution. However, it isn't the most important problem - my algorithm calculate which line has under-damped harmonic signal, no where it starts. Second problem is that this solution is too slow for my purpose - 20 times per second.

I have tried to make my own research but solutions like Kalman filter, or estimation by least squares method, in my opinion, it's like attempting to kill ant by tank - I need smaller caliber method. Currently I don't need to know features of signal like values of angular frequencies and amplitudes.

Any ideas signal-processing community? Thanks in advance.

  • 2
    $\begingroup$ Have you looked into methods of correlation detection and/or wavelet transforms? It seems like you could find or develop a wavelet or wavelet like signal that matches the properties of the damped sine wave and run correlations across the image using different scaled versions of the wavelet. You will still have to develop thresholds to establish when the signal is considered present. I assume you would do this empirically. $\endgroup$ – user2718 Apr 10 '13 at 11:58
  • $\begingroup$ O, that's good idea, but my knowledge about wavelets is a little bit small - I understand idea, but don't really know how to bite problem of developing them. Anyway, at first I have to refresh my knowledge about them and then I will try to use few kinds of well known families of wavelets and implement your idea. Thanks! $\endgroup$ – Specku Apr 10 '13 at 12:37
  • $\begingroup$ If you have time, can you post a brief comment on you're final solution? $\endgroup$ – user2718 Apr 11 '13 at 23:05
  1. First, de-noise the waveform using a technique suitable for non-stationary signals. Admittedly, the spectrum of the signal doesn't change too much over time. There are efficient iterative de-noising algorithms for this purpose, such as basis pursuit de-noising [1]. But even a simple low-pass filter may be sufficient depending on how bad the non-stationarity is.

  2. Since your record is mostly oscillatory, the underdamped signal effectively begins when the successive peaks of your signal are lower in amplitude. With your de-noised smoothed signal, attempt to pick up local extrema. This can be done in real-time by looking at the first derivative or discrete difference. Once you have extracted the extrema, using the values of the extrema, you can construct the signal envelope. Empirically, you can decide that if the envelope is decaying, then it signifies the starting point for under-damped behavior.

Fourier and short-time Fourier transforms may not be as effective in this problem since you are looking for the exponential decay feature, which is a temporal signature.

[1] Chen, Scott Shaobing, David L. Donoho, and Michael A. Saunders. "Atomic decomposition by basis pursuit." SIAM journal on scientific computing 20.1 (1998): 33-61.


Your Answer

