acousticLoudness() function incorrect?
5 ビュー (過去 30 日間)
古いコメントを表示
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 件のコメント
Mathieu NOE
2024 年 8 月 29 日
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)
回答 (2 件)
Jimmy Lapierre
2024 年 9 月 3 日
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 件のコメント
参考
カテゴリ
Help Center および File Exchange で Measurements and Spatial Audio についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!