viernes, 19 de agosto de 2016

Leer, graficar y reproducir archivos de sonido

La siguiente rutina lee un archivo de audio de nombre diapazon.wav, realiza una gráfica teniendo en cuenta la frecuencia de muestreo Fs  con la que fue registrada y luego reproduce el sonido.

Descargue el archivo de sonido aquí. Lógicamente, usted puede crear su propio archivo de sonido.


%---INICIO
close all
clc
clear all
%--(1). Lectura
[FILE,RUTA] = uigetfile('*.wav'); %para escoger la ruta del archivo a leer
NOM=[RUTA,'/',FILE];
[y, Fs] = audioread(NOM); %lee el archivo
% Fs-->frecuencia de muestreo del microfono utilizado (muestras por segundo)
%  y-->datos registrados
%--(2). Gráfica del sonido (oscilación temporal)
dt= 1/Fs; %--tiempo entre cada muestra
L=length(y); %--numero de muestras registradas
t=dt*linspace(0,L-1,L); %---dominio del tiempo
f=figure;
plot(t,y)
grid on
%--(3). Reproducción
h = uicontrol('Position',[300 100 200 40],'String','Reproducir',...
              'Callback','uiresume(gcbf)');%--crea el botón para reproducir
uiwait(gcf); % espera hasta que se presione el botón
delete(gco)
sound(y,Fs) % reproduce el sonido
%-------FIN

RESULTADO

Figura 1. Oscilación temporal registrada de la onda de sonido
 
Figura 2. Zoom de la figura 1 en los primeros 10 milisegundos