Apliacacion de series de Fourier
-
Upload
joorge-ivaan-b-n -
Category
Documents
-
view
234 -
download
0
Transcript of Apliacacion de series de Fourier
-
7/24/2019 Apliacacion de series de Fourier
1/19
Matemticas Avanzadas
Para IngenieraSistema de reconocimiento de voz
2/12/2015
CETI (Colomos)
5B
Luis Enrique Prez Murillo 13310279Marco Antonio Lopez Madera 13310194
Jorge Ivn Becerra Npoles 13310035
-
7/24/2019 Apliacacion de series de Fourier
2/19
INTRODUCCIN
El Sistema de Reconocimiento es muy importante debido a que el habla es una de
las partes ms importantes de la expresin humana, es algo que nos diferencia del
resto de seres vivos en planeta, ya que sin el habla el pensamiento mismo del
hombre no sera posible. No se trata simplemente de un sistema para transmitirinformacin, aunque sea claro, una de sus funciones. Dada la importancia del
habla, el presente trabajo de final de la materia de Matemticas Avanzadas del
curso agosto-diciembre del 2015 pretende crear una interaccin entre una de las
expresiones esenciales del hombre con la computadora, creando as un Sistema
de Reconocimiento de Voz. El procesamiento digital de seales de voz tiene una
gran variedad de aplicaciones, existe una base para el tratamiento digital de
seales, que puede ser implementada para lograr obtener lo que nos interese
segn la aplicacin. El Sistema de Reconocimiento de Voz es una de las
aplicaciones del procesamiento digital de seales de voz. El sistema consiste en
obtener una seal de voz que permita reconocer qu vocal o nmero se est
hablando. Consta de una interfaz grfica que permite la interaccin del usuario pormedio de un micrfono con la computadora, la que procesa automticamente los
datos adquiridos. Basado en los resultados de este sistema, se puede ver como se
plantea la base del procesamiento digital de seales de voz y queda a la libre
imaginacin como puede ser utilizado para otras aplicaciones, adems del de
reconocimiento de voz.
La voz humana se produce por medio del aparato fonatorio. Este est formado por
los pulmones como fuente de energa, en forma de flujo de aire, la laringe que
contiene las cuerdas vocales, la faringe, las cavidades oral y nasal y una serie de
elementos articulatorios: los labios, los dientes, el alveolo, el paladar, el velo del
paladar y la lengua, al cerrarse la glotis, las cuerdas vocales comienzan a vibrar
de modo audible, producindose un sonido tonal, es decir peridico. La frecuencia
de este sonido depende de varios factores, entre otros del tamao y la masa de
las cuerdas vocales, de la tensin de las cuerdas vocales, de la tensin que se les
aplique y de la velocidad del flujo del aire proveniente de los pulmones.
Para la elaboracin de este proyecto final fue necesario tener conocimientos o
adquirir conocimiento de un software especial, conocido como MATLAB,es el
lenguaje de alto nivel y un entorno interactivo utilizado por millones de ingenieros y
cientficos de todo el mundo . Se le permite explorar y visualizar las ideas ycolaborar en todas las disciplinas , incluyendo la seal y el procesamiento de
imgenes , comunicaciones, sistemas de control , y las finanzas computacional
.
1
-
7/24/2019 Apliacacion de series de Fourier
3/19
TRANSFORMADA RAPIDA DE FOURIER
Las Transformadas Rpidas de Fourier son algoritmos especializados que
permiten a un procesador digital hacer el clculo de la Transformada Discreta deFourier de una forma eficiente, en lo que respecta a carga computacional y tiempo
de procesamiento. Se busca realizar la representacin de una seal originalmente
adquirida en el dominio del tiempo (serie de tiempo), como funcin del dominio de
la frecuencia. Dado que el proceso inverso tambin se puede implementar
mediante este algoritmo, se concluye que la FFT permite saltar de un dominio
cualquiera al otro. Por tratarse de un algoritmo desarrollado para un procesador
digital, se debe pensar en el carcter discreto de las dos representaciones, pues
un sistema de clculo artificial tiene recursos limitados de memoria y capacidad de
cmputo y desde esta perspectiva no se puede pensar en procesar las secuenciasinfinitas datos propias del tiempo o de la frecuencia continuas.
Es una de las herramientas principales de anlisis con que se cuenta hoy en los
medios de ciencia y tecnologa. Su poder radica en la posibilidad establecer
relaciones entre puntos de vista muy diferentes relativos a un mismo problema.
As, al visualizar un fenmeno tanto en trminos de la funcin asociada, como de
su transformada de Fourier, se tiene frecuentemente un procedimiento de anlisis
til para resolver un problema determinado.
La FFT es un algoritmo que permite calcular la transformada discreta de fourier
(DFT) y su inversa.
2
https://es.wikipedia.org/wiki/Transformada_de_Fourier_discreta -
7/24/2019 Apliacacion de series de Fourier
4/19
La formula esta dada por:
EXPLICACIN DEL REA DE CONOCIMIENTOProcesamiento de Seales DigitalesEl procesamiento digital de seales (DSP) es la manipulacin matemtica de una
seal de informacin para modificarla o mejorarla en algn sentido. Este est
caracterizado por la representacin en el dominio del tiempo discreto, en el
dominio frecuencia discreta, u otro dominio discreto de seales por medio de una
secuencia de nmeros o smbolos y el procesado de esas seales.
Esto se puede conseguir mediante un sistema basado en un procesador o
microprocesador que posee un juego de instrucciones, un hardware y un software
optimizados para aplicaciones que requieran operaciones numricas a muy alta
velocidad.
Se puede procesar una seal para obtener una disminucin del nivel de ruido,
para mejorar la presencia de determinados matices, como los graves o los agudos
y se realiza combinando los valores de la seal para generar otros nuevos. As, el
DSP se utiliza en el procesamiento de msica (por ejemplo MP3), de voz (por
ejemplo,
reconocimiento de voz) en
telfonos celulares, de imgenes (en la
transmisin de imgenes satelitales) y vdeo (DVD).
FonticaLa fontica es el estudio de los sonidos fsicos del discurso humano. Es la rama de
la lingstica que estudia la produccin y percepcin de los sonidos de una lengua
con respecto a sus manifestaciones fsicas. Sus principales ramas son: fontica
experimental, fontica articulatoria, fonemtica, fontica acstica y fontica
auditiva. constituye uno de los mbitos de la lingstica que ms se ha beneficiado
de los avances informticos dado su carcter experimental. Disponer de potentes
herramientas de anlisis ha favorecido el desarrollo de teoras cuyo fin principal es
explicar la comunicacin mediante el habla entre los seres humanos.
3
https://es.wikipedia.org/wiki/Lenguaje#Lenguaje_ac.C3.BAsticohttps://es.wikipedia.org/wiki/Sat%C3%A9lite_artificialhttps://es.wikipedia.org/wiki/Telefon%C3%ADa_m%C3%B3vilhttps://es.wikipedia.org/wiki/Reconocimiento_de_vozhttps://es.wikipedia.org/wiki/MP3https://es.wikipedia.org/wiki/M%C3%BAsicahttps://es.wikipedia.org/wiki/Softwarehttps://es.wikipedia.org/wiki/Hardwarehttps://es.wikipedia.org/wiki/Microprocesadorhttps://es.wikipedia.org/wiki/Dominio_de_la_frecuenciahttps://es.wikipedia.org/wiki/Dominio_del_tiempo -
7/24/2019 Apliacacion de series de Fourier
5/19
El estudio experimental del habla desde las diferentes perspectivas de la fontica
(articulatorio, acstico, perceptivo) condiciona y determina la eleccin de las
tcnicas de anlisis adecuadas. Tcnicas que determinarn los parmetros que
caracterizan a los sonidos , as como los patrones entonativos y rtmicos.
Desde el punto de vista acstico el estudio del habla requiere de un profundo
anlisis en los dominios de la frecuencia,amplitud y tiempo que configuran la onda
sonora portadora del habla.
En la determinacin de los formantes tambin es posible utilizar el anlisis
espectral mediante el que obtenemos una representacin de la onda sonora en el
dominio de la frecuencia y amplitud. El espectro de un sonido es la funcin
resultante de aplicar el algoritmo denominado Transformada rpida de Fourier
(FFT,Fast Fourier Transform)que descompone la onda sonora en sus armnicos.
Este procedimiento no proporciona informacin acerca de la evolucin frecuencialen el tiempo y por tanto no permite analizar transiciones . Sin embargo permite
obtener informacin sobre la distribucin de energa en la escala de frecuencias.
En el espectro, los formantes aparecen como agrupacin de armnicos.La
frecuencia del formante se toma en el punto medio de la agrupacin mientras que
la intensidad corresponde al armnico con mayor amplitud.
El armnico de frecuencia ms baja que se observa en el espectro corresponde a
la frecuencia fundamental (Fo), que tiene como correlato articulatorio la frecuenciade vibracin de las cuerdas vocales.
Formantes
La principal categora acstica para caracterizar las vocales son los formantes, en
especial los dos primeros.
Los dos formantes se relacionan con las dimensiones del movimiento lingual.
El primer formante con la dimensin alto-bajo y el segundo con la dimensin
anterior-posterior.
4
-
7/24/2019 Apliacacion de series de Fourier
6/19
los siguientes valores promedio para los formantes 1 y 2 en informantes
femeninos:
Hombres Mujeres
Vocal F1 F2 F1 F2
i 265 Hz 2318 Hz 241 Hz 2835 Hz
e 454 Hz 1995 Hz 492 Hz 2252 Hz
a 657 Hz 1215 Hz 664 Hz 1168 Hz
o 475 Hz 888 Hz 511 Hz 981 Hz
u 294 Hz 669 Hz 243 Hz 629 Hz
Esquema de la trayectoria de F1 y F2 en las cinco vocales del espaol.
Asi pues, los formantes nos ayudan poder realizar la identificacin de las vocales o
los nmeros de una manera ms sencilla.
DomticaSe llama domtica al conjunto de sistemas capaces de automatizar una vivienda,
aportando servicios de gestin energtica, seguridad, bienestar y comunicacin, y
5
https://es.wikipedia.org/wiki/Viviendahttps://es.wikipedia.org/wiki/Regulaci%C3%B3n_autom%C3%A1ticahttps://es.wikipedia.org/wiki/Sistema -
7/24/2019 Apliacacion de series de Fourier
7/19
que pueden estar integrados por medio de redes interiores y exteriores de
comunicacin, cableadas o inalmbricas, y cuyo control goza de cierta ubicuidad,
desde dentro y fuera del hogar. Se podra definir como la integracin de la
tecnologa en el diseo inteligente de un recinto cerrado.
Desarrollo:
Bsicamente este es el funcionamiento de nuestro reconocedor de voz, por medio
de un diagrama a bloques el cual primeramente, toma una muestra de voz por
medio de un micrfono para despus establecer ciertas caractersticas de
comparacin para mandarlas a la siguiente etapa y poder compararla con nuestras
diferentes patrones anteriormente pregrabados, despus una vez que se calcula
el error entre las dos comparaciones toma una decisin. Para tomar esa decisin y
mostrarla fue necesario comparar la muestra de voz con todo nuestra base de
datos de espectros pregrabados.
6
-
7/24/2019 Apliacacion de series de Fourier
8/19
En el desarrollo de este proyecto se presenta la siguiente interfaz,la cual consta de
tres partes principales y se describen a continuacin:
1. Axes 1 : parte en la cual nos mostrar cmo se comporta la grfica de voz que se
haya guardado en ese momento.
2. Panel en esta parte nos muestra los dos botones que tiene nuestro men grfico,
la cual es se divide en:
1. Botn Grabar: este botn llamar a la funcin de grabar, la cual tambin crear unarchivo llamado voz donde contenera la voz grabada por el usuario en la carpeta
voces.
2. Botn reconocer: este botn tiene la funcin de normalizar la voz y de comparar la
voz grabada con la base de datos previamente cargada, adems se analizaran y
compararan el archivo de la voz grabada con los de la bases de datos
3. Text : es donde nos mostrar la vocal o nmero correspondiente obtenida de
comparar la voz grabada con la base de datos establecida.
7
-
7/24/2019 Apliacacion de series de Fourier
9/19
Espectro de las vocales
vocal a vocal e
vocal i vocal o
vocal u
8
-
7/24/2019 Apliacacion de series de Fourier
10/19
Espectro de nmeros
nmero 1 nmero 2
nmero 3 nmero 4
nmero 5
9
-
7/24/2019 Apliacacion de series de Fourier
11/19
nmero 6 nmero 7
nmero 8 nmero 9
nmero 10
10
-
7/24/2019 Apliacacion de series de Fourier
12/19
El programa se divide en 4 Scrips principales
1. Guardar.m:// en este apartado capta la seal de entrada por medio delmicrfono el cual est conectado a la entrada de la computadora paraposteriormente guardar el dato de entrada en un archivo llamadovoz.wav
%1 Grabar
%2 Guardar
Fs=44100 % frecuencia de la voz
y=audiorecorder(Fs,16,1)
disp('Grabando')
recordblocking(y,2)
disp('Fin Grabacin')
myRecording=getaudiodata(y)
play(y)
plot(myRecording)
audiowrite('voces\voz.wav',myRecording,Fs)
2. Normalizar.m// en normalizar el sonido de entrada bsicamentecalculas el tamao de la descomposicin vectorial paraposteriormente comparar dato por dato de esa matriz del vector
% Normalizar
function sonidoN = normalizar(sonido)
maximo = max(abs(sonido))
n = length(sonido) %calcula el tamao del vector
sonidoN = zeros(1,n)for i=1:1:n
sonidoN(i)=sonido(i)/maximo
end
end
3. Reconocer.m// en este apartado se tienen los archivos ya grabados decada uno de los nmeros y vocales, los cuales se mandan anormalizar para hacer la descomposicin vectorial de cada sonido,una vez obtenido esto se le saca la transformada rapida de fourier y
los valores absolutos de cada dato.%reconocer
v1 = audioread('voces\a.wav')
v2 = audioread('voces\e.wav')
11
-
7/24/2019 Apliacacion de series de Fourier
13/19
v3 = audioread('voces\i.wav')
v4 = audioread('voces\o.wav')
v5 = audioread('voces\u.wav')
v6 = audioread('voces\1.wav')
v7 = audioread('voces\2.wav')v8 = audioread('voces\3.wav')
v9 = audioread('voces\4.wav')
v10 = audioread('voces\5.wav')
v11 = audioread('voces\6.wav')
v12 = audioread('voces\7.wav')
v13 = audioread('voces\8.wav')
v14 = audioread('voces\9.wav')
v15 = audioread('voces\10.wav')
%normalizar
vocala = normalizar(v1)vocale = normalizar(v2)
vocali = normalizar(v3)
vocalo = normalizar(v4)
vocalu = normalizar(v5)
num1 = normalizar(v6)
num2 = normalizar(v7)
num3 = normalizar(v8)
num4 = normalizar(v9)
num5 = normalizar(v10)
num6 = normalizar(v11)
num7 = normalizar(v12)
num8 = normalizar(v13)
num9 = normalizar(v14)
num10 = normalizar(v15)
%transformada rapida de fuorier y le sacamos el valor absoluto
transfvocala = abs(fft(vocala))
transfvocale = abs(fft(vocale))
transfvocali = abs(fft(vocali))
transfvocalo = abs(fft(vocalo))transfvocalu = abs(fft(vocalu))
transfnum1 = abs(fft(num1))
transfnum2 = abs(fft(num2))
12
-
7/24/2019 Apliacacion de series de Fourier
14/19
transfnum3 = abs(fft(num3))
transfnum4 = abs(fft(num4))
transfnum5 = abs(fft(num5))
transfnum6 = abs(fft(num6))
transfnum7 = abs(fft(num7))
transfnum8 = abs(fft(num8))transfnum9 = abs(fft(num9))
transfnum10 = abs(fft(num10))
4. Menu_grafico.m// se encuentra la interfaz grfica que se visualiza en elprograma mostrado en la presentacin el cual cada botn o etiquetatiene una funcin en especfico( explicados en la primera parte dedesarrollo) y en esta parte del codigo se hace la comparacin dato pordato de la matriz del vector para poder arrojar una comparacin con elnumero o letra selecccionado
function varargout = menu_grafico(varargin)
% MENU_GRAFICO MATLAB code for menu_grafico.fig
% MENU_GRAFICO, by itself, creates a new MENU_GRAFICO or raises
the existing
% singleton*.
%
% H = MENU_GRAFICO returns the handle to a new MENU_GRAFICO
or the handle to
% the existing singleton*.%
% MENU_GRAFICO('CALLBACK',hObject,eventData,handles,...) calls
the local
% function named CALLBACK in MENU_GRAFICO.M with the given
input arguments.
%
% MENU_GRAFICO('Property','Value',...) creates a new
MENU_GRAFICO or raises the
% existing singleton*. Starting from the left, property value pairs are
% applied to the GUI before menu_grafico_OpeningFcn gets called. An% unrecognized property name or invalid value makes property
application
% stop. All inputs are passed to menu_grafico_OpeningFcn via varargin.
%
13
-
7/24/2019 Apliacacion de series de Fourier
15/19
% *See GUI Options on GUIDE's Tools menu. Choose "GUI allows only
one
% instance to run (singleton)".
%
% See also: GUIDE, GUIDATA, GUIHANDLES
% Edit the above text to modify the response to help menu_grafico
% Last Modified by GUIDE v2.5 23-Nov-2015 10:10:14
% Begin initialization code - DO NOT EDIT
gui_Singleton = 1
gui_State = struct('gui_Name', mfilename, ...
'gui_Singleton', gui_Singleton, ...
'gui_OpeningFcn', @menu_grafico_OpeningFcn, ...
'gui_OutputFcn', @menu_grafico_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 menu_grafico is made visible.
function menu_grafico_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 menu_grafico (see VARARGIN)
% Choose default command line output for menu_grafico
handles.output = hObject
% Update handles structure
14
-
7/24/2019 Apliacacion de series de Fourier
16/19
guidata(hObject, handles)
% UIWAIT makes menu_grafico wait for user response (see UIRESUME)
% uiwait(handles.figure1)
% --- Outputs from this function are returned to the command line.
function varargout = menu_grafico_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
% --- Executes on button press in pushbutton1.
function pushbutton1_Callback(hObject, eventdata, handles)
clear all
guardar
% --- Executes on button press in pushbutton2.
function pushbutton2_Callback(hObject, eventdata, handles)
play(y)
% --- Executes on button press in pushbutton3.
function pushbutton3_Callback(hObject, eventdata, handles)
reconocer
voz_usuario = audioread('voces\voz.wav')
usuario = normalizar(voz_usuario)
transfusuario = abs(fft(usuario))
nu=length(transfusuario)
error(1) = mean(abs(transfvocala - transfusuario))
error(2) = mean(abs(transfvocale - transfusuario))
error(3) = mean(abs(transfvocali - transfusuario))
15
-
7/24/2019 Apliacacion de series de Fourier
17/19
error(4) = mean(abs(transfvocalo - transfusuario))
error(5) = mean(abs(transfvocalu - transfusuario))
error(6) = mean(abs(transfnum1 - transfusuario))
error(7) = mean(abs(transfnum2 - transfusuario))
error(8) = mean(abs(transfnum3 - transfusuario))error(9) = mean(abs(transfnum4 - transfusuario))
error(10) = mean(abs(transfnum5 - transfusuario))
error(11) = mean(abs(transfnum6 - transfusuario))
error(12) = mean(abs(transfnum7 - transfusuario))
error(13) = mean(abs(transfnum8 - transfusuario))
error(14) = mean(abs(transfnum9 - transfusuario))
error(15) = mean(abs(transfnum10 - transfusuario))
min_error = min(error)
disp(min_error)
disp(error)
%comparar y mostrar dependeidno del error
if(min_error == error(1))
set(handles.text2, 'String','A')
end
if(min_error == error(2))
set(handles.text2, 'String','E')
end
if(min_error == error(3))
set(handles.text2, 'String','I')
end
if(min_error == error(4))
set(handles.text2, 'String','O')
end
if(min_error == error(5))
set(handles.text2, 'String','U')
end
if(min_error == error(6))
set(handles.text2, 'String','1')end
if(min_error == error(7))
set(handles.text2, 'String','2')
end
16
-
7/24/2019 Apliacacion de series de Fourier
18/19
if(min_error == error(8))
set(handles.text2, 'String','3')
end
if(min_error == error(9))
set(handles.text2, 'String','4')
endif(min_error == error(10))
set(handles.text2, 'String','5')
end
if(min_error == error(11))
set(handles.text2, 'String','6')
end
if(min_error == error(12))
set(handles.text2, 'String','7')
end
if(min_error == error(13))
set(handles.text2, 'String','8')end
if(min_error == error(14))
set(handles.text2, 'String','9')
end
if(min_error == error(15))
set(handles.text2, 'String','10')
end
% --- Executes during object creation, after setting all properties.
function text2_CreateFcn(hObject, eventdata, handles)
% hObject handle to text2 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles empty - handles not created until after all CreateFcns called
17
-
7/24/2019 Apliacacion de series de Fourier
19/19
Conclusion.
En la elaboracin de este proyecto se aprendieron varias cosas, entre ellas fue
darnos idea de algunas posibles aplicaciones de las transformadas de fourier,
adems se adquirieron conocimientos en el software de MATLAB ya que no
poseamos conocimientos de como programar ni usar este software, que ademsresult una herramienta de gran ayuda en la elaboracin y creacin de proyectos
relacionados con las ciencias exactas. Nuestro proyecto adems puede ser escalable
o adaptable, en este caso solo demostramos con las vocales y numeros del 1 al 10,
pero puede reconocer palabras o expresiones, hacindolo ms complejo, entre otras
cosas nos dimos cuenta de la gran importancia que tienen los temas vistos en clase
para solucionar algn problema de la vida diaria, en este caso, la aplicacin de las
Transformadas de Fourier, que nos permite, realizar un procesamiento de seales
digitales para poder hacer un reconocimiento de voz.
Con esto, concluimos que los conocimientos obtenidos de la materia de matemticas
avanzadas no quedan solamente en eso, en conocimientos, si no en herramientas
que nos ayudaran a resolver o ver el comportamiento de algn fenmeno en
especfico.
Referencias.
http://www.mathworks.com/index.html?s_tid=gn_logo
http://www.mathworks.com/videos/creating-a-gui-with-guide-68979.html Proakis, J.G. y D.G. Manolakis. Digital Signal Processing: Principles,
algorithms and applications. Prentice-Hall, Inc. 1996
ftp.udistrital.edu.co/Documentacion/Electronica/Dsp/capitulo6.PDF
http://www.cedom.es/sobre-domotica/que-es-domotica
http://www.domingo-roman.net/vocales_esp_caract_acustica.html
18
http://www.domingo-roman.net/vocales_esp_caract_acustica.htmlhttp://www.cedom.es/sobre-domotica/que-es-domoticahttp://ftp.udistrital.edu.co/Documentacion/Electronica/Dsp/capitulo6.PDFhttp://www.mathworks.com/videos/creating-a-gui-with-guide-68979.htmlhttp://www.mathworks.com/index.html?s_tid=gn_logo