I have microphones measuring sound over time at many different positions in space. The sounds being recorded all originate from the same position in space but due to the different paths from the source point to each microphone; the signal will be (time) shifted and distorted. A priori knowledge has been used to compensate for the time shifts as good as possible but still some time shift exist in the data. The closer the measurement positions are the more similar the signals are.

I am interested in automatically classifying the peaks. By this I mean that I am seeking an algorithm that "looks" at the two microphone signals in the plot below and "recognize" from position and waveform that there are two main sounds and report their time positions:

sound 1: sample 17 upper plot, sample 19 lower plot,
sound 2: sample 40 upper plot, sample 38 lower plot

In order to do this I was planning to do a Chebyshev expansion around each peak and use the vector of Chebyshev coefficients as input to a cluster algorithm (k-means?).

As an example here are parts of the time signals measured at two nearby positions (blue) approximated by 5 term Chebyshev series over 9 samples (red) around two peaks (blue circles): enter image description here

The approximations are quite good :-).

However; the Chebyshev coefficients for the upper plot are:

Clu = -1.1834   85.4318  -39.1155  -33.6420   31.0028
Cru =-43.0547  -22.7024 -143.3113   11.1709    0.5416

And the Chebyshev coefficients for the lower plot are:

Cll = 13.0926   16.6208  -75.6980  -28.9003    0.0337
Crl =-12.7664   59.0644  -73.2201  -50.2910   11.6775

I would like to have seen Clu ~= Cll and Cru ~= Crl, but this does not seem to be the case :-(.

Maybe there is another orthogonal basis that is more suited in this case?

Any advice on how to proceede (I am using Matlab) ?

Thank in advance for any answers!

  • 1
    $\begingroup$ It appears you're inherently making the assumption that the "shape" of the peak, when expressed in the vector space of Chebyshev polynomial coefficients, is continuous (i.e. a small change in the shape of one portion of the peak will effect a small change in the coefficients). Do you have reason to believe this is the case? It sounds like you've chosen your tool without making sure it solves the problem at hand. $\endgroup$
    – Jason R
    Jun 10, 2012 at 15:10
  • $\begingroup$ To be clear, in what manner are you attempting to "classify" the peaks? Are you trying to associate measurements from your various sensors that correspond to identical peaks? Do you have some other means in which you could measure the relative time delay a priori and then use that information for classification? $\endgroup$
    – Jason R
    Jun 10, 2012 at 15:13
  • $\begingroup$ Hi Jason R. I have updated my question to make things a bit clearer. $\endgroup$
    – Andy
    Jun 10, 2012 at 15:51
  • $\begingroup$ I am actually trying to reproduce the steps in the paper "Automated Structural Interpretation Through Classification of Seismic Horizons" (Borgos et al). I have tried to explain the problem in more general terms. $\endgroup$
    – Andy
    Jun 10, 2012 at 15:56
  • $\begingroup$ @Andy Can you please explain how those co-efficients are corresponding to the red lines shown here? They do not seem to correlate... $\endgroup$
    – Spacey
    Jun 10, 2012 at 19:00

1 Answer 1


It looks like you have a single source, x[n], and multiple microphone signals $y_{i}[n]$. Assuming that your propagation path from the source to the microphones is reasonably linear and time invariant, you and simply model the path as a transfer function. So basically you have $$ y_{i}[n] = h_{i}[n]\ast x[n] $$ where $h_{i}[n]$ is the impulse response of the transfer function from the source to microphone "i". These transfer functions have different amplitude and phase responses. If they are different enough, the individual microphone signals will be quite different as well and there is no reason to believe that the peaks will actually show up at the same spot. In most acoustic environments, they will be "different" if the microphones are more than a quarter wavelength apart for the frequencies of interest (or where there is non-trivial energy in the spectrum).

If you can measure the transfer functions, you can filter each mic signal with the inverse of that transfer function. This should make the mic signals much more similar and reduce the effect of the filtering.

An alternative would be to combine all mic signals into a beamformer that optimizes pickup from the source but rejects everything else. This should also provide a fairly "clean" version of the source signal.


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.