Updated 05 May 2018
NOTE: this function is now available from the IoSR Matlab Toolbox as iosr.auditory.iso226.
ISO 226:2003 Normal equal-loudness-level contours
[spl,f] = iso226(phon)
[spl,f] = iso226(phon,fq)
... = iso226(phon,fq,sq)
... = iso226(phon,,sq)
[SPL,F] = ISO226(PHON) returns the sound pressure level
(SPL) (dB) of pure tone frequencies F (Hz) at the
loudness level(s) PHON. The values are calculated
according to ISO 226:2003 using the reference
frequencies specified in the standard. According to the
standard, PHON is only valid at all frequencies if
20<=PHON<80 (although the function will return SPL
values outside of this range).
PHON may be an array of any size; SPL and F will be of
size [1,29,M,N,P,...] where M,N,P,... are the dimensions
[SPL,F] = ISO226(PHON,FQ) returns the SPL of the pure
tone frequencies in FQ at the specified loudness
level(s). According to the standard, FQ is only valid
below 12.5 kHz (although the function will extrapolate
SPL values outside of this range).
FQ may be an array of any size; SPL and F will be of
size [Q,R,S,...,M,N,P,...] where Q,R,S,... are the
dimensions of FQ.
... = iso226(phon,fq,sq) specifies whether singleton
dimensions will be removed from the output. With
sq=false, singleton dimensions will be retained
(default), else they will be removed.
... = iso226(phon,,sq) uses the standard reference
frequencies for SPL calculations.
% Plot equal-loudness contours between 20 and 80 phon
% Calculate SPLs
phons = 20:10:80;
[spl,f] = iso226(phons,,true);
title('Equal loudness contours for different loudness levels (in phons)')
Christopher Hummersone (2020). ISO 226:2003 Normal equal-loudness-level contours (https://www.github.com/IoSR-Surrey/MatlabToolbox), GitHub. Retrieved .
Thank you. Very useful.
Tremendously helpful. Thanks!
Extremely tidy code, very clearly documented and commented. It is a pleasure to read through and follow. Easy to use, comes complete with working examples.
This is a superb addition to MATLAB File Exchange, and should be an example for any beginners.
Minor point: note spelling: differnt -> different. Use a spellchecker!
Migrated to GitHub.
Corrected spelling in help, thanks to Stephen Cobeldick.
Added sq option for removing singleton dimensions from output.