Home > voicebox > phon2sone.m

phon2sone

PURPOSE ^

PHON2SONE convert PHON loudness values to SONEs s=(p)

SYNOPSIS ^

function s=phon2sone(p)

DESCRIPTION ^

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.

CROSS-REFERENCE INFORMATION ^

This function calls: This function is called by:

SOURCE CODE ^

0001 function s=phon2sone(p)
0002 %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: phon2sone.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=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 teh 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,phon2sone(pp));
0054     axisenlarge(-1);
0055     yticksi;
0056     xlabel('phon = dB SPL @ 1 kHz');
0057     ylabel('sone');
0058 end

Generated on Fri 22-Sep-2017 19:37:38 by m2html © 2003