V_PHON2SONE convert PHON loudness values to SONEs s=(p) Inputs: p is a matrix of phon values Outputs: s is a matrix, the same size as p, of sone values The phon scale measures perceived loudness in dB; at 1 kHz it is identical to dB SPL relative to 20e-6 Pa sound pressure. The sone scale is proportional to apparent loudness and, by definition, equals 1 at 40 phon. The form of the loudness curve is taken from [1]. The hearing threshold at 1 kHz for 18 to 25 year olds with normal hearing is taken from [2]. Refs: [1] J. Lochner and J. Burger. Form of the loudness function in the presence of masking noise. The Journal of the Acoustical Society of America, 33: 1705, 1961. [2] ISO/TC43. Acoustics Normal equal-loudness-level contours. Standard ISO 226:2003, Aug. 2003.
0001 function s=v_phon2sone(p) 0002 %V_PHON2SONE convert PHON loudness values to SONEs s=(p) 0003 %Inputs: p is a matrix of phon values 0004 % 0005 %Outputs: s is a matrix, the same size as p, of sone values 0006 % 0007 % The phon scale measures perceived loudness in dB; at 1 kHz it is identical to dB SPL 0008 % relative to 20e-6 Pa sound pressure. The sone scale is proportional to apparent loudness 0009 % and, by definition, equals 1 at 40 phon. The form of the loudness curve is taken from [1]. 0010 % The hearing threshold at 1 kHz for 18 to 25 year olds with normal hearing is taken from [2]. 0011 % 0012 % Refs: [1] J. Lochner and J. Burger. Form of the loudness function in the presence of masking noise. 0013 % The Journal of the Acoustical Society of America, 33: 1705, 1961. 0014 % [2] ISO/TC43. Acoustics Normal equal-loudness-level contours. 0015 % Standard ISO 226:2003, Aug. 2003. 0016 0017 0018 % Copyright (C) Mike Brookes 2012-2013 0019 % Version: $Id: v_phon2sone.m 10865 2018-09-21 17:22:45Z dmb $ 0020 % 0021 % VOICEBOX is a MATLAB toolbox for speech processing. 0022 % Home page: http://www.ee.ic.ac.uk/hp/staff/dmb/voicebox/voicebox.html 0023 % 0024 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 0025 % This program is free software; you can redistribute it and/or modify 0026 % it under the terms of the GNU General Public License as published by 0027 % the Free Software Foundation; either version 2 of the License, or 0028 % (at your option) any later version. 0029 % 0030 % This program is distributed in the hope that it will be useful, 0031 % but WITHOUT ANY WARRANTY; without even the implied warranty of 0032 % MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 0033 % GNU General Public License for more details. 0034 % 0035 % You can obtain a copy of the GNU General Public License from 0036 % http://www.gnu.org/copyleft/gpl.html or by writing to 0037 % Free Software Foundation, Inc.,675 Mass Ave, Cambridge, MA 02139, USA. 0038 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 0039 persistent a b d 0040 if isempty(a) 0041 b=log(10)*0.1*0.27; % 0.27 is the exponent from [1] and [2] 0042 d=exp(b*2.4); % 2.4 dB is the hearing threshold from [2] 0043 a=1/(exp(b*40)-d); % scale factor to make p=40 give s=1 0044 end 0045 if nargout>0 0046 s=a*(exp(b*p)-d); 0047 else 0048 if nargin<1 || isempty(p) 0049 pp=linspace(5,90,100)'; % phon values 0050 else 0051 pp=p; 0052 end 0053 semilogy(pp,v_phon2sone(pp)); 0054 v_axisenlarge(-1); 0055 v_yticksi; 0056 xlabel('phon = dB SPL @ 1 kHz'); 0057 ylabel('sone'); 0058 end