# How to find SPL of a WAV file given a calibration tone in WAV format

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.

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.

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.

Edit:

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.

• so, what is your question? Commented Jun 20, 2017 at 21:26
• 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 ? Commented Jun 20, 2017 at 21:33
• 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? Commented Jun 20, 2017 at 21:41
• 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. Commented Jun 20, 2017 at 21:48
• "dB" is always a relative measure. You look at two values, and compare them, and then you get dB. Commented Jun 21, 2017 at 6:23