Create equal loudness contours and convert phons to sons
Background:
As you may know, we perceive different frequencies with different loudness. For example low frequency 26 Hz may be played at 88 dB to be perceived with a loudness that is equal to playing 1 kHz with 30 dB. This is called the equal contour levels. These contours are in Phons, which is not a linear loudness scale called Sons. In applications where different acoustic frequencies are present, sometime it is necessary to plot the perception related to loudness and not related to dB. Thus it is necessary to search these contours reversely for corresponding value in Sons when the dB value and frequency values are given.
These files are part of my PhD Thesis at University of Zurich
Mechanisms of Music Perception with Cochlear Implants, Sherif Omran, 2011, University of Zurich
License offered under creative common license
Description:
Generate the equal loudness matrix with precision for reverse conversion
of SPL dB to loudness. This script will create a matrix (90 phones levels:
in frequency range from 20Hz-8kHz), each row is an equal loundess contour
with phones value at 1kHz (column 981).
The precision is 1Hz and 1 Phone.
I added a search function within other file called Convert_dB_Sones(power,frequency) that make use of the equal loudness contours.
by: Dr. Sherif Omran
Oct.2018
Example
-------
Output
EqualLoudnessMatrixPhons: Equal Loudness Contours in Phons
EqualLoudnessMatrixSons: Equal Loudness Contours in Sons
fx: frequency range
lrange: row matrix with value in Phons of each contour in
EqualLoudnessMatrixPhons and EqualLoudnessMatrixSons
[phons, sons, fx, lrange]=create_equal_loudness_matrix();
figure (1); for a=lrange(1):10:lrange(end); subplot(2,1,1); plot(fx, phons(a,:)); hold on; subplot(2,1,2); plot (fx,sons(a,:)); hold on; pause; end
License
-------
This code is provided under common creative license
Acknowledgment
-----------------------
Part of the code (isophone contours) is created by Jeff Tackett
Citar como
Sherif Omran (2024). Create equal loudness contours and convert phons to sons (https://www.mathworks.com/matlabcentral/fileexchange/69110-create-equal-loudness-contours-and-convert-phons-to-sons), MATLAB Central File Exchange. Recuperado .
Compatibilidad con la versión de MATLAB
Compatibilidad con las plataformas
Windows macOS LinuxCategorías
Etiquetas
Comunidades de usuarios
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!Descubra Live Editor
Cree scripts con código, salida y texto formateado en un documento ejecutable.
Versión | Publicado | Notas de la versión | |
---|---|---|---|
1.0.4 | Removed a bug in the search algorithm Convert_dB_Phons_Sons function when the given contour dB is above 90 dB SPL, rounded back to the 90 dB contour |
||
1.0.3 | Added Search function and enhancement to the example how to call it |
||
1.0.2 | Added the search function that uses the equal loudness contours |
||
1.0.1 | Description update |
||
1.0.0 |