I'm sorry if this question has already been answered, but I couldn't find anything. I'm working on a program for noise detection and need to locate the position of impulsive noise. The following image shows a part of the spectrogram of a file which contains a beeping noise at about 2 kHz.

Beeping noise I already tried analyzing the samples via the derivative method mentioned in this paper, where the average derivative over the whole file is compared to that of the samples. The problem here is that the speech is very loud and no fast increase in volume can be seen.

I also tried to calculate the RMS for each window of the FFT magnitudes to create a threshold for measurement, but that does not seem to work either. Spectral leakage seems to make the detection quite hard despite using a window function.

I hope someone here can recommend a method to locate impulsive noise in high frequencies that I may have overlooked.

  • $\begingroup$ The term impulsive noise in audio signal processing is typically used to describe click and crackle sounds that can, e.g., be found on grooved recording media such as shellac and vinyl discs. (Your linked paper also adresses the latter, by the way.) The beeping noise here is probably better described as tonal noise. $\endgroup$ – applesoup Feb 12 at 20:22
  • $\begingroup$ You write that an analysis of the short-term Fourier transform (STFT) does not yield any usable results due to the spectral leakage of neighboring frequency bins. Have you tried increasing the length of the STFT? Maybe subtracting the median-filtered version of the STFT leads to an improved detectability. Furthermore, do you know the frequency of the beeps? $\endgroup$ – applesoup Feb 12 at 20:24
  • $\begingroup$ "High frequencies" is also relative - in audio signals, $2\,\text{kHz}$ usually falls in the so-called high mid range. $\endgroup$ – applesoup Feb 12 at 20:28
  • $\begingroup$ An increase in window size yielded no better results. I will try the median filtering. And yes, 2 kHz is not that high. I only wanted to make clear that I am not trying to locate noise that overlaps with the frequency range of speech. $\endgroup$ – BpZ Feb 12 at 20:57
  • $\begingroup$ I see, and I don't want to sound picky, but a fundamental difficulty of your problem is that $2\,\text{kHz}$ overlaps very much with the frequency range of speech, where, e.g., fricatives and sibillants can contain frequencies above $10\,\text{kHz}$. Otherwise, you could simply apply a threshold to the output power of a narrow bandpass filter with a center frequency of $2\,\text{kHz}$. $\endgroup$ – applesoup Feb 12 at 21:07

Your Answer

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

Browse other questions tagged or ask your own question.