acousticLoudness() function incorrect?
6 views (last 30 days)
Show older comments
I decided to verify acousticLoudness function using ISO532-1 test method using ISO provided test signals and compare to stated sone levels.
According to ISO532-1 test signal wav data should be calibrated: " For the calibration of the WAVE files, 0 dB (relative to full scale) shall correspond to a sound pressure level of 100 dB." The calibration factor works out to be =2. This could be immediately verified by comparing test frequency amplitude after calibration with file name e.g. "Test signal 6 (tone 250 Hz 30 dB - 80 dB).wav". The max amplitude is 0.2 Pa (80dB).
I used these function parameters to calculate loudness of time varying noise signals:
LoudnessISO532=acousticLoudness(signal,48000,'SoundField','free','TimeVarying',true);
acousticLoudness() produces loudness nearly twice the value of the ISO calculation. I discovered, however, that if I do not calibrate the wav file, function produces correct results.
Thus, it seems to me, to obtain correct results, calibrated SPL (Pa) signal should be reduced by half.
Did anybody try to verify the function using ISO532-1 test wav files? Did you calibrate them?
Thanks!
1 Comment
Mathieu NOE
on 29 Aug 2024
acording to the doc , you can use a reference pressure and a calibration factor - I am not sure to read in your post how you used them, seems to me you did a manual correction but not used the function the way it's documented.
Call acousticLoudness with no output arguments to plot the specific loudness. Assume a calibration factor of 0.15 and a reference pressure of 21 micropascals. To determine the calibration factor specific to your audio system, use the calibrateMicrophone function.
calibrationFactor = 0.15;
refPressure = 21e-6;
acousticLoudness(audioIn,fs,calibrationFactor,'PressureReference',refPressure)
Answers (2)
Jimmy Lapierre
on 3 Sep 2024
No need to modify your "signal". You can use calibrateMicrophone with a 1kHz tone that you specify the SPL level, and that will give you a calibration value for all the acoustic* functions and splMeter. In real life, you play a 1 kHz tone a place a SPL meter next to the microphone to measure the level and you give that to the calibration function.
To answer your other question, yes, the acousticLoudness function is tested against all the ISO test vectors. The default calibration works for those files.
In case it helps, here's how you can try ISO 532-1:2017, Annex B, section B.3 :
[xtest,FS] = audioread("02_250Hz_80dB.wav");
[sone,spec] = acousticLoudness(xtest,FS,'SoundField','free');
0 Comments
See Also
Categories
Find more on Measurements and Spatial Audio 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!