What is dBFS in the Impulse Response Measurer App?

7 views (last 30 days)
Recently I performed some IR measurement with the Impulse Response Measurer App. A problem arises when I want to also measure the SPL at the microphone, because the output from the App is only the impulse response, the recorded signal is not saved. Therefore, I try to measure the SPL by calibrating the microphone with MATLAB calibrateMicrophone function. Then, I can play the sine sweep, record it (I'm using audioPlayerRecorder) and use the microphone's calibration factor to compute the SPL.
My question is, how can I controll, in MATLAB, the level of the input signal when I use audioPlayerRecorder to make the recording, so the loudspeaker produces the same volume as when I use the Impulse Response Measurer App? I keep the gain of my amplifier constant, but I put the "Excitation Level" in the App to -6 dBFS. What does it do to the input signal? I learn from Wikepedia that "The level of 0dBFS is assigned to the maximum possible digital level. For example, a signal that reaches 50% of the maximum level has a level of −6dBFS, which is 6dB below full scale." Does that mean a sine sweep signal at -6 dBFS will have 0.5 as the maximum amplitude in MATLAB?
Thanks in advance for any kind explanation!

Accepted Answer

Jimmy Lapierre
Jimmy Lapierre on 25 Aug 2022
Edited: Jimmy Lapierre on 25 Aug 2022
Hi Yuqing,
If you use the Export button, you will get a table of your measurements including the recording.
You can get an excitation that matches the level of the app using the ExcitationLevel property:
outputLevelInDBFS = -6;
exc = sweeptone(sweepDur, irDur, FS, 'ExcitationLevel', outputLevelInDBFS )
Full scale in MATLAB is +/- 1, so -6 dBFS level is: 0.5012 = db2mag(-6) = 10^(-6/20)

More Answers (0)


Find more on Audio I/O and Waveform Generation in Help Center and File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!