Eco en tiempo real

Anuncio
Electrónica y Redes de Información
Eco en tiempo real
Procesamiento Digital de Señales
El presente documento realiza un análisis de los principales efectos
acústicos. Además se presenta un ejemplo de la aplicación de eco en
tiempo real a una señal de voz utilizando Matlab 7.0
Carlos G. Encalada B.
Escuela Politécnica Nacional
10 de diciembre de 2007
Eco en tiempo real
Introducción.
Es importante tener en cuenta las perturbaciones que puede
sufrir una señal de audio, dependiendo del ambiente en la
que se encuentre. Con el conocimiento apropiado de estas
perturbaciones se puede diseñar y construir lugares idóneos
para la óptima percepción de las señales audibles.
En este documento se presentarán las principales
características de varias de estas perturbaciones. El análisis
del eco y la reverberación será más extenso, además se
presentará el código implementado para introducir eco en
tiempo real en una señal de voz utilizando Matlab.
~2~
Eco en tiempo real
Efectos acústicos.
Existen una gran cantidad de efectos acústicos, los cuales pueden afectar tanto la
amplitud, tiempo o frecuencia de la señal. Entre los principales tenemos:
Efecto Doppler.
El efecto Doppler en ondas sonoras se refiere al cambio de frecuencia que sufren las
ondas cuando la fuente emisora de ondas y/o el oyente se encuentran en movimiento
relativo al medio. La frecuencia aumenta cuando la fuente y el receptor se acercan y
disminuye cuando se alejan.
Absorción.
Cuando una onda sonora llega a una pared rígida (ideal) se refleja totalmente ya que la
pared no se mueve y no absorbe energía de la onda. Las paredes reales no son nunca
completamente rígidas, por lo que pueden absorber parte de la energía de las ondas
incidentes.
Difracción.
La difracción consiste en que una onda puede rodear un obstáculo o propagarse a
través de una pequeña abertura. Aunque este fenómeno es general, su magnitud
depende de la relación que existe entre la longitud de onda y el tamaño del obstáculo
o abertura.
~3~
Eco en tiempo real
Cuando el tamaño de la abertura (obstáculo) es comparable a la longitud de onda, los
efectos de la difracción son grandes y la onda no se propaga simplemente en la
dirección de los rayos rectilíneos, sino que se dispersa como si procediese de una
fuente puntual localizada en la abertura.
Interferencia.
Esto puede explicarse por el principio de superposición. Un ejemplo común de
interferencia de ondas sonoras podemos encontrarlo cuando dos diapasones (u otras
fuentes sonoras de una sola frecuencia) cuyas frecuencias solo difieren ligeramente, se
golpean de manera simultánea. El sonido así producido fluctúa en intensidad,
alternando entre tonos fuertes y silencio virtual. Dichas fluctuaciones regulares se
denominan pulsaciones.
Reflexión y refracción
Cuando una onda incide sobre una superficie límite de dos medios, de distintas
propiedades mecánicas, ópticas, etc, parte de la onda se refleja, parte se disipa y
parte se transmite. La velocidad de propagación de las ondas, v, cambia al pasar de un
medio a otro, pero no cambia la frecuencia angular w.
~4~
Eco en tiempo real
La reflexión del sonido comúnmente se llama eco. El eco es más notable cuando el
medio sobre el cual incide la onda sonora es rígido. En este caso toda la energía de la
onda incidente se refleja.
Sin un oyente está situado entre dos paredes y emite un sonido, éste se reflejara de
una pared, irá a la otra, se volverá a reflejar, y así continuara. Es decir, ocurre un eco
múltiple que se llama reverberación.
~5~
Eco en tiempo real
Eco y reverberación.
Es importante comprender que el eco y la reverberación a pesar de estar
estrechamente ligados son dos efectos distintos. El eco es la reflexión simple de una
señal, mientras que la reverberación se refiere a una reflexión continua de las ondas
sonoras.
Eco.
Es el más serio de los defectos acústicos. El Eco se produce cuando existe una
reflexión de sonido que llega al escucha con la suficiente amplitud y retraso respecto
del sonido directo, de tal forma que se perciben como dos sonidos diferentes.
El eco es un efecto sonoro que se produce cuando un sonido rebota contra una
superficie lejana y llega por duplicado al receptor con un cierto retardo. Este efecto se
puede reproducir artificialmente, mezclando el sonido original consigo mismo pero
retardado y levemente atenuado. Se modela fácilmente, configurando para cada
repetición, el retardo y la atenuación. Una manera para reproducir este efecto en el
laboratorio está usar un bucle de realimentación:
El oído logra distinguir entre dos sonidos iguales si estos llegan separados en un
tiempo mínimo de 0.1 s para sonidos musicales y 0.07 s para sonidos secos (palabra),
en base a esto se determina la mínima distancia a la que debe encontrarse un oyente
de una pared rígida para distinguir el eco de sus sonidos.
Sea d = OP la distancia requerida. El sonido tiene que ir de O a P y de P a O en el
tiempo t = 0.1s para que el oyente pueda distinguir entre el sonido incidente (emitido
por él mismo) y el reflejado o eco. Es decir, el sonido tiene que recorrer la distancia 2d
en el tiempo t= 0.1 seg. Su velocidad es, entonces:
v
2d
t
2d
0.1s
la velocidad del sonido en el aire es de 331.46m/s, por tanto la ecuación anterior
queda de la forma 331 .46 m / s 02.1ds . Despejando d, tenemos que 2d= 331.46m/s x 0.1
seg. = 33.146 m
d = 16.57 m (11.34 m para sonidos secos)
Si el oyente se coloca a una distancia menor a 16.57m, no podrá distinguir entre el
sonido emitido por él y el eco.
~6~
Eco en tiempo real
Eco flutter (de flauta o flotante).
Efecto sonoro muy característico que se produce entre dos paredes lisas, paralelas y
reflectantes. Estas paredes pueden estar muy juntas o separadas por varios metros y
entre ellas el sonido se refleja sobre cada una de las paredes para dar una serie de
ecos muy aproximados en los que la intensidad del sonido disminuye lentamente.
La onda queda atrapada entre las superficies lisas reflectantes y su energía va
reflejándose llegando a crear un sonido diferente al emitido originalmente. Y cambia
porque ciertas frecuencias se interfieren anulándose y otras se interfieren sumándose
en las diferentes reflexiones que se producen dentro del recinto. Es como un filtro que
refuerza ciertas frecuencias y otras las hace desaparecer.
~7~
Eco en tiempo real
Reverberación.
Se produce reverberación cuando las ondas reflejadas llegan al oyente antes de la
extinción de la onda directa, es decir, en un tiempo menor que el de persistencia
acústica del sonido. Este fenómeno es de suma importancia, ya que se produce en
cualquier recinto en el que se propaga una onda sonora. El oyente no sólo percibe la
onda directa, sino las sucesivas reflexiones que la misma produce en las distintas
superficies del recinto.
El físico W. C. Sabine definió técnicamente la reverberación como el tiempo que
transcurre desde el instante en que una fuente sonora se interrumpe hasta que su
energía decae a 1/1.000.000 de su fuerza original. Esta caída de energía es
cuantificada como nivel de presión sonora, que en escala logarítmica corresponde a 60
decibelios, por eso se abrevia como TR-60.
En cuanto a la percepción del oído, correspondería al tiempo que tarda un sonido en
desaparecer y fundirse entre los sonidos ambientales dentro de un espacio cerrado.
Controlando adecuadamente este efecto, se contribuye a mejorar las condiciones
acústicas de los locales tales como teatros, salas de concierto y, en general, todo tipo
de salas. La característica que define la reverberación de un local se denomina tiempo
de reverberación. Se define como el tiempo que transcurre hasta que la intensidad del
sonido queda reducida a una millonésima de su valor inicial.
~8~
Eco en tiempo real
Tiempos de reverberación óptimos para diferentes usos de los locales (medidos en
segundos):
Locutorio de radio de 0.2 a 0.4
Sala para la voz de 0.7 a 1.0
Cine de 1.0 a 1.2
Teatro de 0.9
Teatro de ópera de 1.2 a 1.5
Sala de conciertos de cámara de 1.3 a 1.7
Sala para música barroca y clásica de 1.6 a 1.8
Sala de conciertos de música sinfónica de 1.8 a 2.0
Iglesia o Catedral de 2.0 a 4.0 como óptimo pero llegando hasta 8 segundos en
ciertas catedrales.
La gráfica muestra el TR para palabra (zona inferior), el TR para música (zona superior)
y la zona intermedia con un TR óptimo para ópera o espacios que requieran música y
voz.
El TR-60 es uno de los principales parámetros de la calidad acústica de una sala. Su
valor depende de numerosos factores: el coeficiente de absorción de los materiales de
la sala, su volumen, su superficie y la forma geométrica de ésta.
~9~
Eco en tiempo real
Eco en tiempo real utilizando Matlab.
Para realizar este ejemplo se utilizo la versión 7.0 del programa, además el equipo
contaba con un micrófono para captar la voz y unos parlantes para apreciar el efecto
programado.
Para la implementación de la aplicación se utilizaron referencias bibliográficas tanto
de internet como de las ayudas propias de Matlab.
Funciones utilizadas.
wavrecord: Permite grabar un sonido utilizando un dispositivo de entrada de audio
conectado a la PC.
Sintaxis:
y = wavrecord(n,Fs)
y = wavrecord(...,ch)
y = wavrecord(...,'dtype')
Descripción:
y = wavrecord(n,Fs): graba n muestras de una señal de audio, muestreada a la
frecuencia Fs. El valor por defecto de Fs es 11025 Hz.
y = wavrecord(...,ch): utilize un número ch de canales de entrada desde el
dispositivo de audio. El valor de ch puede ser 1 (monoaural) o 2
(estereofónico), el valor por defecto es 1.
y = wavrecord(...,'dtype') ): Utiliza el tipo de dato especificado por ‘dtype’ para
grabar el sonido. Los posibles valores para ‘dtype’ son:
'double' (default value), 16 bits/sample
'single', 16 bits/sample
'int16', 16 bits/sample
'uint8', 8 bits/sample
wavplay: Permite reproducir un sonido utilizando un dispositivo de salida de audio
conectado a la PC.
Sintaxis:
wavplay(n,Fs)
wavrecord(...,’mode’)
Descripción:
wavplay(n,Fs): reproduce la señal de audio almacenada en el vector y en el
dispositivo de salida de audio. La frecuencia de muestreo se especifica con Fs,
su valor por defecto es 11025 Hz. Esta función soporta únicamente señales de
audio de 1 o 2 canales.
wavplay(...,’mode’): especifica la forma como wavplay interactúa con la línea de
comandos, deacuedo al valor de ‘mode’. El valor de ‘mode’ puede ser:
~ 10 ~
Eco en tiempo real
‘async’ (valor por defecto): proporciona acceso instantáneo a la línea de
comandos tan pronto como el sonido empieza a reproducirse en el
dispostivo de salida.
‘sync’: No se tiene acceso a la línea de comandos hasta que el sonido
termine de reproducirse.
hold: Mantiene el gráfico actual en la figura.
Sintaxis:
hold on
hold off
hold all
hold
hold(axes_handles,…)
Descripción:
hold: la función hold determina si los nuevos objetos gráficos son adicionados al
gráfico o remplazan los objetos en el gráfico.
hold on: conserva la gráfico en curso y ciertas propiedades del eje con el
propósito de que los comandos de creación de gráficos siguientes se añadan al
gráfico existente
hold off: reinicia las propiedades a sus valores por defecto antes de dibujar los
nuevos gráficos. hold off es el valor por defecto.
hold on: conserva el gráfico actual, el color y estilo de línea en curso con el
propósito de que los nuevos comandos no reinicien los valores de ColorOrder y
LineStyleOrder.
hold on: aplica la función hold al eje identificado por axes_handle.
linspace: Genera vectores espaciados linealmente.
Sintaxis:
y = linspace(a,b)
y = linspace(a,b,n)
Descripción:
La función linspace genera vectores espaciados linealmente. Es similar al operador “:”,
pero otorga control directo sobre el número de puntos.
y = linspace(a,b): generar una y de vector fila de 100 puntos linealmente espaciados entre
a y b, (incluidos).
y = linspace(a,b,n): generar un vector fila de n puntos linealmente espaciados entre a y b,
(incluidos).
~ 11 ~
Eco en tiempo real
Notas.
Las frecuencias de muestreo estándar para dispositivos de audio para PC son 8000,
11025, 2250 y 44100 muestras por segundo.
Las señales estereofónicas retornan una matriz de dos columnas. La primera columna
corresponde a la entrada del canal derecho.
Para realizar el procesamiento en tiempo real y presentar la forma de onda
correspondiente se utilizó la función hold para graficar cada instante de la señal
(0.1seg)
Interfaz implementada.
La interfaz implementada consta de dos pantallas:
Pantalla de bienvenida: Aquí se presenta información general acerca del proyecto y
un enlace a la pantalla principal.
Pantalla principal: Esta pantalla proporciona todas las opciones para el manejo de la
aplicación.
~ 12 ~
Eco en tiempo real
Menu Iniciar: Despliega dos opciones para escuchar la voz ingresada por
micrófono:
Normal: no realiza ningún tratamiento a la señal y la reproduce
idénticamente en los parlantes. Además grafica la forma de onda de la
señal en el eje correspondiente
Con eco: añade eco a la señal, sumándole la misma señal reducida un
50% y desplazada 0,15 seg.
Menu Salir: Presenta una caja de dialogo en la que se puede elegir entre
regresar a la pantalla de bienvenida o cerrar la aplicación.
~ 13 ~
Eco en tiempo real
Botón Stop: Detiene la adquisición de datos y reinicializa la aplicación.
Nota: En el Apéndice A se encuentra el código fuente de las pantallas creadas.
Funciones creadas.
Para proporcionar un funcionamiento modular de la aplicación se desarrollaron las
siguientes funciones:
normal.m: Permite escuchar la señal de voz sin ningún efecto y grafica su forma de
onda en el eje respectivo.
%Función para reproducir en tiempo real una señal de voz
%proveniente del micrófono
function normal(handles)
try
set(handles.btnStop,'Enable','on')
set(handles.txtOriginal,'Enable','on')
set(handles.menSalir,'Enable','off')
FS=44100;
TM=.1;
while 1<2
Y=wavrecord(TM*FS,FS);
hold (handles.original, 'off')
X=linspace(0,length(Y)/FS,length(Y));
axes(handles.original)
plot(0,-1)
hold (handles.original, 'on')
plot(TM,1)
plot(X,Y)
pause(.5*TM)
wavplay(Y,FS);
end
catch
set(principal,'Visible','on')
try
set(figure1,'Visible','off')
catch
end
end
conEco.m: Permite escuchar la señal de voz más eco y grafica su forma de onda en el
eje respectivo.
%Función para reproducir en tiempo real una señal de voz
%proveniente del micrófono, agregandole eco.
function conEco(handles)
try
set(handles.btnStop,'Enable','on')
set(handles.txtEco,'Enable','on')
set(handles.menSalir,'Enable','off')
~ 14 ~
Eco en tiempo real
FS=44100;
TM=.1;
while 1<2
Y=wavrecord(TM*FS,FS);
y1=[Y;zeros(6500,1)];
y2=0.5*[zeros(6500,1);Y];
y3=y1+y2;
hold (handles.original, 'off')
X=linspace(0,length(y3)/FS,length(y3));
axes(handles.modificada)
plot(0,-1)
hold (handles.original, 'on')
plot(TM,1)
plot(X,y3)
pause(.5*TM)
wavplay(y3,FS);
end
catch
set(principal,'Visible','on')
try
set(figure1,'Visible','off')
catch
end
end
borrar.m: Función utilizada para reinicializar los controles el momento de mostrar la
pantalla.
function borrar(handles)
try
clc
set(handles.original,'XColor','w')
set(handles.original,'YColor','w')
set(handles.modificada,'XColor','w')
set(handles.modificada,'YColor','w')
set(handles.txtOriginal,'Enable','off')
set(handles.txtEco,'Enable','off')
catch
end
salida.m: Permite escuchar la señal de voz sin ningún efecto y la grafica en el eje
respectivo.
function salida()
ans=questdlg('¿Qué acción desea realizar?','Cerrar', ...
'Ir a la pantalla de bienvenida','Salir totalmente', ...
'Ir a la pantalla de bienvenida');
if strcmp(ans,'Ir a la pantalla de bienvenida')
set(principal,'Visible','off')
set(bienvenida,'Visible','on')
clc, clear
elseif strcmp(ans,'Salir totalmente')
set(principal,'Visible','off')
clc, clear
end
~ 15 ~
Eco en tiempo real
Funcionamiento de la aplicación.
Una vez que se elige la opción de adquisición (normal o con eco) se puede empezar a
hablar por el micrófono para escuchar la voz por los parlantes.
Adicionalmente se presenta la forma de onda de la señal en el eje correspondiente.
Gráfica de la señal sin eco.
Inicio del eco
Gráfica de la señal sin eco.
El momento que se quiera detener la adquisición basta con pulsar en el botón Stop.
~ 16 ~
Eco en tiempo real
Aplicaciones.
El estudio e implementación de los diferentes efectos sonoros puede verse reflejado
en diferentes ámbitos, como:
Reflexión: En las salas de conciertos se sitúan placas reflectoras detrás de la orquesta
(tornavoces) y también se sitúan paneles reflectores en el techo para reflejar y dirigir
el sonido hacia los oyentes.
Refracción: El aire sobre una superficie nevada forma capas de diferentes
temperaturas, estando las más frías próximas a la tierra en donde la velocidad de
propagación es menor. Las ondas sonoras son constantemente refractadas hacia el
suelo, creándose un canal sonoro que permite oír sonidos producidos a gran distancia.
Absorción: En una sala con muchas superficies planas reflectoras, es difícil de
entender lo que se dice debido a la gran cantidad de ondas reflejadas. Fara reducir
estas reflexiones es corriente colocar sobre las paredes y techo materiales
absorbentes.
Difracción: El fenómeno de la difracción nos permite escuchar música en un concierto
incluso cuando una persona alta sentada del ante de nosotros nos impide ver a los
intérpretes. También nos permite oír una conversación a través de una puerta abierta,
aun que no veamos a las personas que están hablando.
Eco: Una aplicación real del eco se encuentra en el sonar, el cual puede medir la
profundidad del mar, produciendo ondas sonoras bajo la superficie del agua, y
detectando el tiempo que tarda en registrar el eco.
~ 17 ~
Eco en tiempo real
Anexo 1.
Pantalla de bienvenida.
function varargout = bienvenida(varargin)
% BIENVENIDA M-file for bienvenida.fig
%
BIENVENIDA, by itself, creates a new BIENVENIDA or raises the existing
%
singleton*.
%
%
H = BIENVENIDA returns the handle to a new BIENVENIDA or the handle to
%
the existing singleton*.
%
%
BIENVENIDA('CALLBACK',hObject,eventData,handles,...) calls the local
%
function named CALLBACK in BIENVENIDA.M with the given input arguments.
%
%
BIENVENIDA('Property','Value',...) creates a new BIENVENIDA or raises the
%
existing singleton*. Starting from the left, property value pairs are
%
applied to the GUI before bienvenida_OpeningFunction gets called. An
%
unrecognized property name or invalid value makes property application
%
stop. All inputs are passed to bienvenida_OpeningFcn via varargin.
%
%
*See GUI Options on GUIDE's Tools menu. Choose "GUI allows only one
%
instance to run (singleton)".
%
% See also: GUIDE, GUIDATA, GUIHANDLES
% Copyright 2002-2003 The MathWorks, Inc.
% Edit the above text to modify the response to help bienvenida
% Last Modified by GUIDE v2.5 07-Dec-2007 20:24:15
% Begin initialization code - DO NOT EDIT
gui_Singleton = 1;
gui_State = struct('gui_Name',
mfilename, ...
'gui_Singleton', gui_Singleton, ...
'gui_OpeningFcn', @bienvenida_OpeningFcn, ...
'gui_OutputFcn', @bienvenida_OutputFcn, ...
'gui_LayoutFcn', [] , ...
'gui_Callback', []);
if nargin && ischar(varargin{1})
gui_State.gui_Callback = str2func(varargin{1});
end
if nargout
[varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:});
else
gui_mainfcn(gui_State, varargin{:});
end
% End initialization code - DO NOT EDIT
% --- Executes just before bienvenida is made visible.
function bienvenida_OpeningFcn(hObject, eventdata, handles, varargin)
% This function has no output args, see OutputFcn.
% hObject handle to figure
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
% varargin command line arguments to bienvenida (see VARARGIN)
% Choose default command line output for bienvenida
~ 18 ~
Eco en tiempo real
handles.output = hObject;
% Update handles structure
guidata(hObject, handles);
% UIWAIT makes bienvenida wait for user response (see UIRESUME)
% uiwait(handles.figure1);
% --- Outputs from this function are returned to the command line.
function varargout = bienvenida_OutputFcn(hObject, eventdata, handles)
% varargout cell array for returning output args (see VARARGOUT);
% hObject handle to figure
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
% Get default command line output from handles structure
varargout{1} = handles.output;
addpath('Complementos')
A=imread('eco.jpg');
axes(handles.axes1)
imshow(A)
% --- Executes on button press in btnEntrar.
function btnEntrar_Callback(hObject, eventdata, handles)
% hObject handle to btnEntrar (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
set(bienvenida,'Visible','off')
set(principal,'Visible','on')
~ 19 ~
Eco en tiempo real
Pantalla principal.
function varargout = principal(varargin)
% PRINCIPAL M-file for principal.fig
%
PRINCIPAL, by itself, creates a new PRINCIPAL or raises the existing
%
singleton*.
%
%
H = PRINCIPAL returns the handle to a new PRINCIPAL or the handle to
%
the existing singleton*.
%
%
PRINCIPAL('CALLBACK',hObject,eventData,handles,...) calls the local
%
function named CALLBACK in PRINCIPAL.M with the given input arguments.
%
%
PRINCIPAL('Property','Value',...) creates a new PRINCIPAL or raises the
%
existing singleton*. Starting from the left, property value pairs are
%
applied to the GUI before principal_OpeningFunction gets called. An
%
unrecognized property name or invalid value makes property application
%
stop. All inputs are passed to principal_OpeningFcn via varargin.
%
%
*See GUI Options on GUIDE's Tools menu. Choose "GUI allows only one
%
instance to run (singleton)".
%
% See also: GUIDE, GUIDATA, GUIHANDLES
% Copyright 2002-2003 The MathWorks, Inc.
% Edit the above text to modify the response to help principal
% Last Modified by GUIDE v2.5 07-Dec-2007 22:58:27
% Begin initialization code - DO NOT EDIT
gui_Singleton = 1;
gui_State = struct('gui_Name',
mfilename, ...
'gui_Singleton', gui_Singleton, ...
'gui_OpeningFcn', @principal_OpeningFcn, ...
'gui_OutputFcn', @principal_OutputFcn, ...
'gui_LayoutFcn', [] , ...
'gui_Callback', []);
if nargin && ischar(varargin{1})
gui_State.gui_Callback = str2func(varargin{1});
end
if nargout
[varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:});
else
gui_mainfcn(gui_State, varargin{:});
end
% End initialization code - DO NOT EDIT
% --- Executes just before principal is made visible.
function principal_OpeningFcn(hObject, eventdata, handles, varargin)
% This function has no output args, see OutputFcn.
% hObject handle to figure
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
% varargin command line arguments to principal (see VARARGIN)
% Choose default command line output for principal
handles.output = hObject;
% Update handles structure
~ 20 ~
Eco en tiempo real
guidata(hObject, handles);
% UIWAIT makes principal wait for user response (see UIRESUME)
% uiwait(handles.figure1);
% --- Outputs from this function are returned to the command line.
function varargout = principal_OutputFcn(hObject, eventdata, handles)
% varargout cell array for returning output args (see VARARGOUT);
% hObject handle to figure
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
% Get default command line output from handles structure
varargout{1} = handles.output;
addpath('Funciones')
borrar(handles)
% -------------------------------------------------------------------function menNormal_Callback(hObject, eventdata, handles)
% hObject handle to menNormal (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
normal(handles)
% -------------------------------------------------------------------function menEco_Callback(hObject, eventdata, handles)
% hObject handle to menEco (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
conEco(handles)
% -------------------------------------------------------------------function menIniciar_Callback(hObject, eventdata, handles)
% hObject handle to menIniciar (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
% -------------------------------------------------------------------function menSalir_Callback(hObject, eventdata, handles)
% hObject handle to menSalir (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
salida()
% --- Executes on button press in btnStop.
function btnStop_Callback(hObject, eventdata, handles)
% hObject handle to btnStop (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
close
~ 21 ~
Eco en tiempo real
Referencias bibliográficas.
http://www.monografias.com/trabajos15/acustica/acustica.shtml
http://www.ehu.es/acustica/bachillerato/feaces/feaces.html
http://sistemas.itlp.edu.mx/tutoriales/instalaciones/tema_42.htm
http://arantxa.ii.uam.es/~taao1/practica/practica_Op1.html
http://acusticaweb.com/index.php?option=com_content&task=view&id=112&Itemid=
79
http://cantera.reduaz.mx/~gmiram/Lab7PDS.pdf
MATLAB Function Reference
~ 22 ~
Eco en tiempo real
Contenido.
Introducción ................................................................................................................ 2
Efectos acústicos......................................................................................................... 3
Efecto Doppler .......................................................................................................... 3
Absorción .................................................................................................................. 3
Difracción .................................................................................................................. 3
Interferencia .............................................................................................................. 4
Reflexión y refracción ................................................................................................ 4
Eco y reverberación .................................................................................................... 6
Eco ............................................................................................................................ 6
Eco flutter (de flauta o flotante) .................................................................................. 7
Reverberación ........................................................................................................... 8
Eco en tiempo real utilizando Matlab...................................................................... 10
Funciones utilizadas ................................................................................................ 10
wavrecord................................................................................................... 10
wavplay ...................................................................................................... 10
hold............................................................................................................. 11
linspace ............................................................................................................... 11
Interfaz implementada ............................................................................................. 12
Pantalla de bienvenida ............................................................................... 12
Pantalla principal ....................................................................................... 13
Funciones creadas ................................................................................................... 14
normal.m .................................................................................................... 14
conEco.m ................................................................................................... 14
borrar.m .................................................................................................... 15
salida.m ..................................................................................................... 15
Funcionamiento de la aplicación ............................................................................. 16
~ 23 ~
Eco en tiempo real
Aplicaciones.............................................................................................................. 17
Anexo 1 ...................................................................................................................... 18
Pantalla de bienvenida ............................................................................................ 18
Pantalla principal..................................................................................................... 20
Referencias bibliográficas ....................................................................................... 22
~ 24 ~
Descargar