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:
• axisenlarge AXISENLARGE - enlarge the axes of a figure (f,h)
• phon2sone PHON2SONE convert PHON loudness values to SONEs s=(p)
• yticksi YTIXKSI labels the y-axis of a plot using SI multipliers S=(AH)
This function is called by:
• phon2sone PHON2SONE convert PHON loudness values to SONEs s=(p)
• sone2phon PHON2SONE convert SONE loudness values to PHONs p=(s)

## 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.
0023 %
0024 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
0025 %   This program is free software; you can redistribute it and/or modify
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 Mon 06-Aug-2018 14:48:32 by m2html © 2003