My ultimate aim is to find the Sound Pressure level of a digital WAV audio file and represent this (say, in MATLAB) as a dB SPL re 20 uPa on y-axis and frequency on x-axis.

As this link mentions:

Calibration Signal Recording – Record a WAV file with a tone or signal of a known level using the same recording input gain setting that were used to record the WAV file. Sound Quality Analyzer will use the calibration recording to generate the proper normalization term for the WAV file to be analyzed.

Now, let'say I have a calibration tone which I know has a 94 dB SPL at 1 KHz frequency, how can I use this information to scale the pressure values my audio file to finally get to a dbSPL.

enter image description here

In the above equation, I know Po = 20 uPa (threshold of hearing). So if I am able to find the scaled P values of the audio file, I can use this equation to find the dBSPL.


So the question boils down to this:

  1. There is a noise.wav that needs to be analysed.
  2. There is a calibration.wav that is recorded with 94 dB SPL at 1 KHz. This is the known calibration tone from a calibrator. The settings on the calibrator say 94 dB, 1KHz. Is this 94 dB SPL re 20 uPA? How do we find the SPL of this recording to get a normalization factor for the noise.wav to be analyzed? I am assuming the actual SPL of the recording will be different than what the calibrator says.
  3. How will you use the normalization factor obtained above to calibrate and find the SPL of the original noise.wav? If noise.wav is a 1 minute recording - do we need to take n number of samples (window the signal), calculate the SPL re 20 uPa of each window and further normalize the SPL value obtained from the term obtained above?

Here, I am assuming that the WAV files (noise and calibration tone) are not recorded with a calibrated sound level meter but rather, say, a mobile phone. So, essentially what I am trying to get at is to replicate the functionality of calibrating a sound level meter given these two recordings.

  • 1
    $\begingroup$ so, what is your question? $\endgroup$ Jun 20, 2017 at 21:26
  • $\begingroup$ For a given WAV file (noise with some narrow band tones), I need to plot the SPL (dB) vs frequency. The amplitude values of this WAV file (in MATLAB) are scaled between -1 to 1 and the duration of this WAV file is 20s. The other reference calibration WAV file I have is a pure tone of 94 dB at 1000 KHz. Do I need to play this file from calibrator and record it in exact same conditions when the original WAV recording was made? And then, import this file in MATLAB and find the SPL at 1 KHz frequency ? $\endgroup$ Jun 20, 2017 at 21:33
  • $\begingroup$ Also, using the above formula I would get the instantaneous (RMS?) SPL values. Do I need to do a frame-by-frame processing to find the SPL of each frame in order to be able to get results like this? $\endgroup$ Jun 20, 2017 at 21:41
  • $\begingroup$ You already have a reference recording of 94 dBSPL, so measure the digital signal level of the reference, and then measure the other recording and see how many dB above or below the reference it is. $\endgroup$
    – endolith
    Jun 20, 2017 at 21:48
  • 1
    $\begingroup$ "dB" is always a relative measure. You look at two values, and compare them, and then you get dB. $\endgroup$ Jun 21, 2017 at 6:23

1 Answer 1


The calibration file and the file you want to analyze should be captured on the same equipment and the same conditions. A reference will be obtained in a free space environment, no echoes, and far field. If you have a room impulse response, you can usually do a reasonable correction but the collection equipment should be nearly the same. Most cheap SPL meters are usually A weighted.

There are also different ways conventions on how to report SPL. In Underwater Acoustics, we usually report dB ref 1 micro pascal in a 1 Hz band, so you need to correct your levels by the ENBW of the filter (fft bin)

There's a section in Kinsler and Fry's Fundamentals of Acoustics on converting levels for different frequency bands. Noise adds as 10log and signal adds as 20 log. I recommend you look at the book.


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.