Where is the data for Equal-loudness contour?
Nov 17, 2011 at 10:52 PM Thread Starter Post #1 of 7

kingpage

1000+ Head-Fier
Joined
Apr 26, 2010
Posts
1,182
Likes
44
I'm planning to do some rough frequency response testing. But I'd need the latest (2003) Equal-loudness contour table for that. Does anyone know where to get it for free? It doesn't have to be too detailed, but it should have the numbers for all major frequencies.
 
Thanks you.
 
Nov 18, 2011 at 8:45 AM Post #2 of 7
http://www.mathworks.com/matlabcentral/fileexchange/7028
 
The function is available in a Matlab file. I don't have Matlab at home. Could anyone help output a spreadsheet for me?
 
Nov 21, 2011 at 8:17 PM Post #3 of 7
If you edit the .m file (iso226.m) you'll see that there is a simple set of 2 equations that are used to calculate SPL at frequencies, given an input SPL @ 1kHz.
 
I ran it for 1 to 90 dB (the limits of the data) in 1 dB increments and put them in a spreadsheet. Unfortunately I can't seem to attach anything (says I don't have permissions.)
 
If you are actually using the data, you might want to run the equations themselves at the frequencies you're interested in, to get a more accurate number. Contours just give you a general trend. You can edit the file with wordpad or something similar... you don't need Matlab to do that.
 
I'll try to upload the spreadsheet from home later on. I could e-mail it too.
 
Nov 21, 2011 at 10:25 PM Post #4 of 7
http://www.megaupload.com/
 
This is a no-registration upload site.
 
Thanks in advance.
 
Nov 22, 2011 at 8:52 PM Post #5 of 7
http://www.megaupload.com/?d=KW8CVRE2
 
Mar 7, 2013 at 7:41 AM Post #7 of 7
There is a table here in CSV format for 0 to 90 phons in 1 phon steps. I generated it using the following Python script that was created from the Matlab file linked above (I do not have Matlab):
 
Code:
 #!/usr/bin/python import math f = [20, 25, 31.5, 40, 50, 63, 80, 100, 125, 160, 200, 250, 315, 400,   \      500, 630, 800, 1000, 1250, 1600, 2000, 2500, 3150, 4000, 5000,     \      6300, 8000, 10000, 12500] af = [0.532, 0.506, 0.480, 0.455, 0.432, 0.409, 0.387, 0.367, 0.349,    \       0.330, 0.315, 0.301, 0.288, 0.276, 0.267, 0.259, 0.253, 0.250,    \       0.246, 0.244, 0.243, 0.243, 0.243, 0.242, 0.242, 0.245, 0.254,    \       0.271, 0.301] Lu = [-31.6, -27.2, -23.0, -19.1, -15.9, -13.0, -10.3, -8.1, -6.2,      \       -4.5, -3.1, -2.0, -1.1, -0.4, 0.0, 0.3, 0.5, 0.0, -2.7, -4.1,     \       -1.0, 1.7, 2.5, 1.2, -2.1, -7.1, -11.2, -10.7, -3.1] Tf = [78.5, 68.7, 59.5, 51.1, 44.0, 37.5, 31.5, 26.5, 22.1, 17.9, 14.4, \       11.4, 8.6, 6.2, 4.4, 3.0, 2.2, 2.4, 3.5, 1.7, -1.3, -4.2, -6.0,   \       -5.4, -1.5, 6.0, 12.6, 13.9, 12.3] s = "\"\"" for freq in f:   s += "," + str(freq) print s for phon in range(0, 91):   s = str(phon)   Ln = phon   for i in range(0, len(f)):     Af = 0.00447 * (10.0 ** (Ln / 40.0) - 1.15)         \          + (10.0 ** (((Tf[i] + Lu[i]) / 10.0) - 9.0) / 2.5) ** af[i]     Lp = ((10.0 / af[i]) * math.log10(Af)) - Lu[i] + 94.0     s += ",%.2f" % Lp   print s
 

Users who are viewing this thread

Back
Top