Suppose I have the following signal (Spectrogram):

enter image description here

I have three types of elements that I want to identify within this signal:

1) Noise  2) Call-1 3) Call-2

I have prior training of what each of the elements looks like and can obtain training for the duration of each call, and, the frequency ranges that each call will be present at. The task is to make a classifier for each of the training samples, and then iterate through the signal and detect the probability of each classifier.

The question is: At what data do I need for the classifier? For example, can I take training data and perform cross-correlation on the signal to detect which is the most likely classifier at the particular point in the signal.. Or look at the frequencies that are known through training and detect whether it is noise, or, an actual signal?

  • $\begingroup$ Hey, welcome to DSP.se. Your question seems very nice, but it also seems your question is indeed a duplicate of your previous question. If you obtained some new information about the problem, you can and should edit your old question, instead of posting a new one. Hope you get your answer, and have fun :) $\endgroup$
    – penelope
    Feb 4, 2014 at 19:58

1 Answer 1


I believe Singular value decomposition might help extract information. This might give you some insight: . Speech recognition using svd

. Tutorial

  • $\begingroup$ I don't see how this would help? Wouldn't it be better to cluster the signal at each bin (energy or spectral density) and match each of the clusters? $\endgroup$
    – Phorce
    Jan 31, 2014 at 20:14
  • $\begingroup$ I'm also not allowed to use PCA / ICA.. mhm $\endgroup$
    – Phorce
    Jan 31, 2014 at 20:16
  • $\begingroup$ Please could you try to explain how SVD would work here? I tried in Python (using scipy) but, just got 3 random matrix's $\endgroup$
    – Phorce
    Feb 1, 2014 at 23:21

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