the question might seem dumb but since I tried it out and got values well above 2000 (watts?) it got me thinking... Check this out:

winLen = 10*1e-3;
fftOverlap = 0.5;    
[x, Fs] = audioread('speech_5.wav');
x = x(:,1);
hopSize = winLen * Fs;
nfft = hopSize / fftOverlap;
overlap = nfft - hopSize;
w = hann(nfft);
[S, f, t] = spectrogram(x, w, overlap, nfft, Fs);
S = (abs(S)).^2 + eps; %make it a power spectrogram

If you look into S (the spectrogram) now, you see a lot of values above 1000, in my case (this is clean speech) even 6000. It got me thinking, what kind of unit this is? Intuition says its watts, but 6000 watts of power in a certain frequency in a 10ms time frame seems very unlikely to me... I mean my hair dryer has 2000 watts... Can someone please help me out here?

Additionally, if you see anything in my code that could be improved, please share! I will be more than thankful for any input!


1 Answer 1


The short answer is that without a calibrated data acquisition chain from the original sound as it was picked up from at a microphone and converted to a digital file, it doesn’t have any units. Its just numbers that fit into 16 bits (or 24 or 8) of dynamic range.

The number you have is probably proportional to something in nature if the original sound was natural but something coming out of Garage Band is synthetic.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

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