Home > voicebox > sone2phon.m

sone2phon

PURPOSE ^

PHON2SONE convert SONE loudness values to PHONs p=(s)

SYNOPSIS ^

function p=sone2phon(s)

DESCRIPTION ^

PHON2SONE convert SONE loudness values to PHONs p=(s)
Inputs:    s is a matrix of sone values

Outputs:   p is a matrix, the same size as s, of phon 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.

CROSS-REFERENCE INFORMATION ^

This function calls: This function is called by:

SOURCE CODE ^

0001 function p=sone2phon(s)
0002 %PHON2SONE convert SONE loudness values to PHONs p=(s)
0003 %Inputs:    s is a matrix of sone values
0004 %
0005 %Outputs:   p is a matrix, the same size as s, of phon 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: sone2phon.m 3295 2013-08-02 14:03:11Z 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=1/(log(10)*0.1*0.27); % 0.27 is the exponent from [1] and [2]
0042     d=exp(2.4/b); % 2.4 dB is teh hearing threshold from [2]
0043     a=exp(40/b)-d; % scale factor to make p=40 give s=1
0044 end
0045 if nargout>0
0046 
0047     p=b*log(a*s+d);
0048 else
0049     if nargin<1 || isempty(s)
0050         pp=linspace(5,90,100)'; % phon values
0051         ss=phon2sone(pp);
0052     else
0053         ss=s;
0054     end
0055     semilogx(ss,sone2phon(ss));
0056     axisenlarge(-1);
0057     xticksi;
0058     ylabel('phon = dB SPL @ 1 kHz');
0059     xlabel('sone');
0060 end

Generated on Tue 19-Sep-2017 12:07:31 by m2html © 2003