I am currently working on a project which involves measuring the sound produced by the onset of a vapour bubble in boiling water. All the experiments went perfectly well and I'm now trying to obtain a frequency spectrum from the signal.

The sound-pulses produced by the bubbles only last about 40 ms max, simply too short to obtain a decent frequency resolution. That is why I'm measuring a numerous amount of almost identical pulses over a period of 5 seconds. The signal is being sampled at a rate of 100 kHz, which results in 500.000 samples. The interval between the sound-pulses is 95 ms ish as can be seen in the figure of the signal below:


EDIT: Added an additional figure of the signal: Signal2

When I create the frequency spectrum of the entire signal, I get this comb-like frequency spectrum with an interval of about 10 Hz between the peaks (which corresponds to the 95 ms time interval, but I would then rather expect a peak at 10 Hz in the spectrum):


I can't really get much information from this spectrum. I do know for instance that there should be a peak at around 167 Hz by looking at the time-domain (there's a small sine wave visible with about 6 ms peak to peak). The envelope of the spectrum does resemble the spectrum of a single sound pulse as shown below (but way less accurate):


The matlab code I used for the fourier transform was:

y_fft = abs(fft(y-mean(y)));
y_fft = y_fft(1:Nsamps/2);
f = Fs*(0:Nsamps/2-1)/Nsamps; %Prepare freq data for plot

Does anyknow how to get a usefull spectrum in this situation or please tell me what I'm doing wrong?

Thanks in advance,


  • 1
    $\begingroup$ For me everything seems to be ok. The periodicity of the signal is 95ms which corresponds to 10.52Hz. Therefore, you should expect your frequency transform sampled at every 10.52Hz. I dont know what is the logic for peak at 167Hz, it corresponds to around 6ms. However, I do see a peak around that frequency. If you try to find the max of the frequency transform you'll find the peak at around 167Hz. $\endgroup$
    – learner
    May 25 '14 at 18:04
  • 1
    $\begingroup$ Can you explain - what is goal of calculation of frequency spectrum? What is the purpose of your research? $\endgroup$
    – SergV
    May 26 '14 at 3:11
  • $\begingroup$ if the question was still of importance i could pass it through a sample accurate spectrogram that i wrote and send the result. Very short sounds have a tendency not to be of a single frequency at all, because frequency implies a similar wave continuing for a certain period of time. water and physical pops and clicks almost always have very little periodic information in them unless they resonate on something, instead they tend to be noise, which has a broad frequency signature, and the highest frequency mark in the result will be the duration that the sound impulse lasted for. $\endgroup$ May 1 '15 at 3:09
  • $\begingroup$ I've seen that kind of dodgy peak result with imprecise FFT. I seem to recall it was either a logarithmic display of the FFT values or a processing error: forums.winamp.com/… i didnt like that fft graph always doing that! $\endgroup$ May 1 '15 at 3:12

Your signals look quite similar to vowel signals - in which a periodic pulse train is filtered by a resonant filter.

I suggest you to look into AR modelling to decompose your signal into a residual, and a set of AR coefficients. The spectrum of the residual will give you the "pulse train" component of your signal (a sharp peak every time a bubble is produced) ; while the frequency response of the all-pole filter associated with the set of AR coefficients will contain information about the sound of each bubble. The 167 Hz peak you are looking will be easy to spot on the later.


That does not appear that wrong at all. As you said, the comb has the expected pattern. Maybe the base frequency is not that strong at all. Are the single pulses similar to each other, or do they maybe change sign occasionally?

If you are trying to measure the bubbling frequency, maybe you should change your approach. For example, you could use a triggering algorithm.

  • $\begingroup$ All the pulses are almost exactly the same (added an additional figure to show that) and don't change signs. When I increase the bubble rate, the frequency between the peaks does indeed become larger, but the expected peak of 167 Hz isn't visible anywhere, whilst it is still very apparant in the time domain. I'm trying to measure the sound produced by the bubble when it is created; during the first stages of it's life, the bubble expands really fast, causing a shockwave. $\endgroup$
    – Marc
    May 25 '14 at 21:12

Your Answer

