Está en la página 1de 7

18/6/2014

Inicio

El sonido

MATLAB

Anlisis de datos

El sonido

Introduccin
Transformada rpida
de Fourier (FFT)
El sonido
Estadstica del viento
Estadstica de las olas
del mar
Anlisis armnico de
las mareas

Umbral de audicin
El umbral de audicin se define como la intensidad del sonido ms bajo que el odo humano puede percibir y tambin, la
intensidad del sonido ms elevado que el odo humano puede tolerar.
Se han tomado los datos de la tabla 1 (Minimum audible field thresholds) del documento titulado Hearing thresholds, para
representarlos grficamente en escala semilogartmica. En el eje X, la frecuencia en Hz y en el eje Y, la intensidad del
sonido en escala decibelios (dB).
f=[100,125,160,200,250,315,400,500,630,800,1000,1250,1600,2000...
,2500,3150,4000,5000,6300,8000,10000];
dB=[25.1,20.7,16.8,13.8,11.2,8.9,7.2,6.0,5.0,4.4,4.2,3.7,2.6,...
1.0,-1.2,-3.6,-3.9,-1.1,6.6,15.3,16.4];
semilogx(f,dB,'-o','markersize',4,'markerfacecolor','r')
xlabel('Frecuencia (Hz)')
ylabel('Intensidad del sonido (dB)')
title('Umbral de audicin')
grid on

Analizamos el mnimo del umbral de audicin, el intervalo de frecuencias entre 2000 y 5000 Hz. Aadimos el siguiente
cdigo al script anterior que realice las siguientes tareas
1. Que interpole mediante splines los datos de comprendidos entre las frecuencias 2000 a 5000 Hz.
2. Que represente los datos y la interpolacin en este intervalo de frecuencias
http://www.sc.ehu.es/sbweb/energias-renovables/MATLAB/datos/sonido/sonido.html

1/7

18/6/2014

El sonido

3. Que calcule la frecuencia para la cual se produce el mnimo


....
figure
fm=linspace(2000,5000);
dBm=interp1(f,dB,fm,'spline'); % interpolar cerca del mnimo
k=find(f>=2000 & f<=5000);
hold on
semilogx(f(k),dB(k),'-o','markersize',4,'markerfacecolor','r')
semilogx(fm,dBm,'r')
hold off
legend('Lineal','spline',0)
xlabel('Frecuencia (Hz)')
ylabel('Intensidad del sonido (dB)')
title('Umbral de audicin')
grid on

Se ha interpolado mediante spline los datos de la tabla (en color rojo) para obtener la frecuencia para la cual el umbral de
acudicn presenta un mnimo.
>> [dBmin,kmin] = min(dBm)
dBmin = -4.1444
kmin =
55
>> fm(kmin)
ans = 3.6364e+003

El mnimo se produce para la frecuencia 3636.4 Hz, valor que tambin podemos obtener en la ventana grfica utilizando
Data Cursor.

Medida de la intensidad del sonido


La intensidad del sonido se mide en W/m2. Sin embargo a efectos prcticos el sonido se mide en la escala decibelios que
se define del siguuiente modo
I
dB = 10log10 (

I0

12

) I 0 = 10

Para comprender la diferencia entre la escala fsica y la escala prctica se ha realizado el siguiente experiemento. Se
http://www.sc.ehu.es/sbweb/energias-renovables/MATLAB/datos/sonido/sonido.html

2/7

18/6/2014

El sonido

coloca el sensor PASPORT Sound Level Sensor de PASCO. Este sensor mide el sonido en tres escalas siendo
relevantes dos de ellas: decibelios y W/m2. Colocamos el sensor prximo a una fuente de sonido, en este caso un
diapasn de 440 Hz. La intensidad del sonido producido al golpear el diapasn permenece al principio constante,
despus disminuye exponencialmente como podemos comprobar en la parte inferior de la grfica (en color azul) que
hemos obtenido con el programa DataStudio.

La escala decibelios es logartmica y la intensidad del sonido disminuye linealmente con el tiempo, tal como podemos
apreciar en la grfica superior de color rojo. .
Comprobamos la correspondencia entre las dos escalas, por ejemplo a 1000 W/m2 le corresponde una medida de 90
dB.
Exportamos los datos tomados por el sensor a un fichero de texto. Con el Bloc de Notas de Windows eliminamos la
cabecera (dos lneas). Seleccionamos en el men Edicin/Reemplazar y sustitumos la coma (que separa la parte entera
de los decimales) por un punto. Guardamos el fichero sonido.txt y lo colocamos en una carpeta accesible a MATLAB.
Seleccionamos en el men de MATLAB, File/Import Data... e importamos el fichero sonido.txt con los datos.
Apreciamos dos columnas en la primera el tiempo medido en segundos y en la segunda la intensidad del sonido medido
en W/m2.

http://www.sc.ehu.es/sbweb/energias-renovables/MATLAB/datos/sonido/sonido.html

3/7

18/6/2014

El sonido

Elaboramos un script que realice las siguientes tareas:


1. Importar las dos columnas de datos con el comando load,
2. Extraer la primera columna de los datos de tiempo y guardarla en el vector tt.
3. Tomar del vector tt los datos de tiempo mayores o iguales que 2 segundos y establecer como origen de tiempo t=0
dicho instante creando un nuevo vector de tiempos t.
4. Extraer la segunda columna que corresponde a los datos de las intensidades y tomar solamente aquellas que
correspondan a tiempos mayores o iguales que dos segundos.
5. Convertir la intensidad del sonido de W/m2 a decibelios
6. Representar grficamente, el tiempo en el eje X y la intensidad medida en decibelios en el eje Y.
7. Ajustar los datos a una lnea recta mediante la funcin MATLAB, polyfit o bien, de forma interactiva seleccionado en
el men de la ventana grfica Tools/Basic Fitting, y activando la casilla linear
8. Representar dicha recta
load sonido.txt;
tt=sonido(:,1);
inten=sonido(:,2);
t=tt(tt>=2)-2;
dB=10*log10(inten(tt>=2)/1e-6);
hold on
plot(t,dB,'b')
p=polyfit(t,dB,1)
y=p(1)*t+p(2);
plot(t,y,'r')
hold off
grid on
legend('datos','ajuste lineal')
xlabel('Tiempo (s)')
ylabel('Intensidad (dB)')
title('Intensidad del sonido')

http://www.sc.ehu.es/sbweb/energias-renovables/MATLAB/datos/sonido/sonido.html

4/7

18/6/2014

El sonido

La intensidad del sonido decrece exponecialmente con el tiempo, de la forma I=I0exp(-t). Tomando logaritmos
decimales y multiplicando por 10.
I
10log10 (

12

) = 10log
(
10

10

I0
12

) (10log
e) t
10

10

La pendiente de la recta es 10log10e, 1.5077, siendo la constante de amortiguamiento del sonido, como podemos
ver en la ventana de comandos.
p=

-1.5077

89.0760

Anlisis de Fourier del sonido del diapasn


El diapasn es un dispositivo metlico (generalmente de acero) en forma de horquilla utilizado principalmente como
referencia para la afinacin de instrumentos musicales.
En el laboratorio de Fsica de la Escuela de Ingeniera de Eibar, disponemos de un diapasn con caja de resonancia
hecha de madera que viene marcado como 440 Hz. Colocamos un micrfono concectado a un ordenador, ponemos en
marcha el programa Windows, Grabadora de sonidos situado Programas/Accesorios/Entretenimiento.

Golpeamos el diapasn con la varilla que acompaa al dispositivo y grabamos el sonido pulsando en el botn con el
crculo de color rojo. Detenemos la grabacin al cabo de 9.5 s, seleccionamos Archivo/Guardar como... para guardar el
sonido en formato WAV en un fichero denominado diapason. Durante la grabacin no se ha podido evitar la inclusin
de otros sonidos provenientes del exterior.
Situamos el fichero en una carpeta accesible a MATLAB. La funcin wavread carga el fichero diapason y devuelve la
amplitud de la seal en y, y la frecuencia de muestreo en Fs en Hz. Con estos datos representamos la seal en el tiempo.
http://www.sc.ehu.es/sbweb/energias-renovables/MATLAB/datos/sonido/sonido.html

5/7

18/6/2014

El sonido
[y,Fs,bits] = wavread('diapason');
%Representa la seal en el tiempo
figure
N=length(y);
t=(1:N)/Fs; %tiempo
plot(t,y)
xlabel('Tiempo(s)')
ylabel('Amplitud')
title('Diapasn de 440 Hz')

Aadimos al script las siguientes lneas para realizar la Transformada Rpida de Fourier, FFT y representar la seal en el
dominio de frecuencias.
....
%representa la seal en frecuencia
figure
g=abs(fft(y));
g=g(1:N/2);
%Toma solamente N/2 datos
f=Fs*(0:N/2-1)/N; %Frecuencias
plot(f,g)
xlim([0 1000])
xlabel('Frecuencia (Hz)')
ylabel('Amplitud')
title('Diapasn de 440 Hz')

http://www.sc.ehu.es/sbweb/energias-renovables/MATLAB/datos/sonido/sonido.html

6/7

18/6/2014

El sonido

Con Data Cursor obtenemos la frecuencia del pico muy elevado, 449.1 Hz

Energas Renovables EUIT I de Eibar

http://www.sc.ehu.es/sbweb/energias-renovables/MATLAB/datos/sonido/sonido.html

7/7

También podría gustarte