I have a set of recordings sampled at 16khz, but some of them are upsampled from 11khz and some from 8khz. Quite some of the recordings are noisy. What is the best way to classify the recordings according to the original bandwidth?

I know some people are using GMM classifiers for detection. A paper on the subject is DETECTING BANDLIMITED AUDIO IN BROADCAST TELEVISION SHOWS

I've come to the following algorithm: calculate energy for 40 frequency bins for the full range from 0 to 8khz for 10ms frames, then normalize by maximum energy, then calculate maximum of normalized energy over sequence of frames. Bandwidth is detected by comparing maximum normalized energy in high-order bins compared to maximum normalized energy in middle bins.

Any better ideas?


A recording originally at 8kHz and digitally upsampled to 16kHz will have almost no energy in the 4-8kHz range (whatever is here is due to imperfections in the filters used for the upsampling process). I would just use a 4kHz and 5.5kHz high pass; and use a threshold on the signal energy at the output of these filters.

... Unless your recordings are affected by noise, distortion etc. after they have been upsampled to 16kHz. Is that the case? If so, please update your question and tell the whole story about your signals!

  • $\begingroup$ Thanks for the answer. Low energy in high bands alone doesn't mean the signal was upsampled, it might be just that signal was like that (like speech contained only vowels) or channel transfer function was like that. $\endgroup$ – Nikolay Shmyrev Jun 1 '13 at 22:25
  • 2
    $\begingroup$ There will still be a bit of energy from noise - but very close to none if the signal has been digitally upsampled. Could you link to some of your files? $\endgroup$ – pichenettes Jun 1 '13 at 23:08

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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