Detecting the original bandwidth of upsampled recordings 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!