aquisição e tratamento de dados em um sistema de orientação
TRANSCRIPT
-
Centro Universitrio de Braslia UniCEUB
Faculdade de Cincias Exatas e Tecnologia FAET
Curso de Engenharia da Computao
Projeto Final
Aquisio e Tratamento de Dados em
um Sistema de Orientao Acstica
Aluno: Mateus Silva Teixeira R.A.: 20016207
Professor Orientador: MC. Jos Julim Bezerra Jnior
Braslia/DF
Junho de 2005
-
II
Centro Universitrio de Braslia UniCEUB
Faculdade de Cincias Exatas e Tecnologia FAET
Curso de Engenharia da Computao
Projeto Final
Aquisio e Tratamento de Dados em
um Sistema de Orientao Acstica
Braslia/DF
Junho de 2005
Monografia, sob a orientao do Prof. MC. Jos
Julim Bezerra Jnior avaliado por uma Banca Examinadora
do Curso de Engenharia da Computao da Faculdade de
Cincias Exatas e Tecnologia - FAET do Centro
Universitrio de Braslia - UniCEUB e constituiu requisito
para obteno do Ttulo de Bacharel em Engenharia da
Computao.
-
III
A Sebastio Jos da Silva (in memoriam)
-
IV
Agradecimentos
A Deus, pela vida.
Aos pais, pela oportunidade de poder estudar, e acreditarem nesse ideal.
Aos meus irmos, pelo incentivo aos estudos.
A minha namorada, pelo carinho e afeto.
Aos parentes, pela fora e confiana.
Aos amigos de faculdade. Tivemos muitos momentos de estudos que me ajudaram
bastante. Diverso e muito estudo fizeram parte desse longo perodo.
Aos amigos da banda, pelo apoio, fora e orao.
Ao professores MC. Wladimir Silva Meyer e MC. Jos Julim Bezerra Jnior, pelo
incentivo, confiana e dedicao.
Ao coordenador do curso de Engenharia da Computao, MC. Abiezer Amarlia.
Aos monitores dos laboratrios, pela ajuda, ateno e pacincia.
Ao professor da disciplina de Projeto Final, MC. Francisco Javier, por sempre
incentivar-me a realizar este projeto.
Aos demais professores do Curso de Engenharia da Computao, por todo o
conhecimento transmitido ao longo do curso.
E de modo especial aos grandes amigos: Jlio Csar, Henrique Rodrigues, Adriano
Delfino, Fernanda Sakamoto e Cezrio Neto.
-
V
Resumo
Este projeto consiste no desenvolvimento de um sistema capaz de determinar a
direo angular de uma fonte de udio, podendo posteriormente ser integrado a sistemas de
outras naturezas, como sistemas de segurana e vdeo-conferncia.
O uso da teoria da norma quadrtica, norma 2, nos sinais de udio discretizados,
possibilita estabelecer uma caracterstica destes sinais. Destaca-se, no modelo proposto, o
uso de Rede Neural Artificial na estimao da direo angular da fonte acstica, rede esta
implementada na linguagem C/C++, visando possibilitar sua portabilidade para
plataformas mveis e independentes de um microcomputador.
Palavras-Chaves: Redes Neurais, Algoritmo back-propagation, orientao acstica,
tratamento de sinais.
-
VI
Abstract
This project consisted of the development of a system which is able to determine
the direction of arrival angle of an acoustic source, which may later be integrated to other
types of systems, such a videoconference systems and security systems.
The use of the quadratic norm theory, norm 2, in discrete audio signals, permitted
the handling and use of the signal characteristics. In the proposed model, an artificial
Neural Network was used to estimate the angular direction of the acoustic source, with the
network developed in C/C++, allowing it to be portable to mobile and independent
platforms in personal computers.
Keywords; neural networks, back-propagation algorithms, acoustic orientation, signal
treatment.
-
VII
Sumrio
1 Introduo ........................................................................................................................1
1.1 Motivao .................................................................................................................1
1.2 Objetivos e Consideraes........................................................................................1
1.3 Sinopse dos Captulos ...............................................................................................2
2 Suporte Terico................................................................................................................4
2.1 Redes Neurais ...........................................................................................................4
2.1.1 O que so Redes Neurais Artificiais? ................................................................4
2.1.2 Histrico.............................................................................................................6
2.1.3 Tipos de Rede ....................................................................................................9
2.1.4 A Estrutura da Rede .........................................................................................10
2.1.5 Topologias das Redes Neurais .........................................................................10
2.1.6 Funo de Ativao .........................................................................................11
2.1.7 Processamento de uma Rede Neural................................................................12
2.1.8 Aprendizado.....................................................................................................12
2.1.9 Uso da Rede Neural .........................................................................................15
2.1.10 Perceptron ......................................................................................................15
2.1.11 Perceptrons de Mltiplas Camadas (MLP)....................................................18
2.2 Norma Quadrtica e Funes Utilizadas.................................................................23
3 Determinao da Direo da Fonte de udio ................................................................26
3.1 Gravao dos Sinais................................................................................................26
3.2 Tratamento de Dados ..............................................................................................28
3.2.1 Tratamento dos Sinais Gravados .....................................................................28
3.2.2 Grficos da Funo Norma 2 ...........................................................................29
3.2.3 Resumo do Cdigo para Tratamento dos Dados..............................................31
3.3 Estrutura do Algoritmo de Aplicao .....................................................................33
3.3.1 Principais Funes Utilizadas no Algoritmo (Pseudocdigo) .........................34
3.3.2 Treinamento .....................................................................................................37
3.3.3 Classificao de Novos Padres ......................................................................39
3.4 Configurao do Ambiente de Homologao.........................................................40
3.5 Mtodos Utilizados .................................................................................................41
3.6 Passos para Realizao do Treinamento e Testes para Determinao da Fonte de
udio ...............................................................................................................................41
3.7 Resultados e Consideraes....................................................................................46
-
VIII
4 Concluso.......................................................................................................................48
4.1 Consideraes Finais ..............................................................................................48
4.2 Dificuldades Encontradas .......................................................................................48
4.3 Sugestes para trabalhos futuros.............................................................................49
Anexo A Algoritmos para Tratamento de Sinais..............................................................53
Anexo B Circuito Proposto Anteriormente ......................................................................86
Anexo C Conversor Analgico/Digital.............................................................................90
-
IX
Lista de Figuras
Figura 1.1 Etapas do projeto. ..............................................................................................2
Figura 2.1 Estrutura da clula neural. .................................................................................5
Figura 2.2 Rede de perceptrons proposta por Rosemblatt. .................................................7
Figura 2.3 Exemplo de estrutura de uma rede neural. ......................................................10
Figura 2.4 Rede de mltiplas camadas do tipo Feed-Forward. ........................................11
Figura 2.5 Rede recorrente com realimentao. ............................................................11
Figura 2.6 Aprendizado supervisionado. ..........................................................................14
Figura 2.7 Aprendizado no-supervisionado. ...................................................................14
Figura 2.8 Modelo Perceptron. .........................................................................................15
Figura 2.9
Perceptron com uma camada oculta. ..............................................................17
Figura 2.10 Fluxo do algoritmo back-propagation. .........................................................19
Figura 2.11 Sentido da movimentao na superfcie de erro............................................21
Figura 2.12 Influncia do termo momentum. ....................................................................22
Figura 3.1 Tabuleiro usado na simulao. ........................................................................26
Figura 3.2 Microfone com abertura nas laterais. ..............................................................27
Figura 3.3 Microfone de Lapela. ......................................................................................27
Figura 3.4 Microfone utilizado no projeto........................................................................27
Figura 3.5 Aparelho celular Nokia 1100, usado como fonte de udio para simulao. ...28
Figura 3.6 Grfico da funo norma 2 dos sinais gravados na linha 01...........................29
Figura 3.7 Grfico da funo norma 2 dos sinais gravados na linha 02...........................29
Figura 3.8 Grfico da funo norma 2 dos sinais gravados na linha 03...........................30
Figura 3.9 Grfico da funo norma 2 dos sinais gravados na linha 04...........................30
Figura 3.10 Fluxograma do algoritmo de tratamento de dados. .......................................32
Figura 3.11 Fluxograma da funo principal. ...................................................................34
Figura 3.12 Fluxograma da funo ativa. .........................................................................35
Figura 3.13 Fluxograma da funo testa rede...................................................................35
Figura 3.14 Fluxograma da funo treinamento. ..............................................................36
Figura 3.15 Tela de apresentao da aplicao.................................................................41
Figura 3.16 Tela principal.................................................................................................42
Figura 3.17 Tela de simulao. .........................................................................................42
Figura 3.18 Escolhendo a linha a ser treinada. .................................................................43
Figura 3.19 Selecionando os dados para serem treinados.................................................43
Figura 3.20 Escolhendo ngulos a serem treinados. .........................................................44
-
X
Figura 3.21 Escolhendo amostras dos ngulos a serem treinadas. ...................................44
Figura 3.22 Informando que a matriz de teste foi alimentada com sucesso. ....................45
Figura 3.23 Escolhendo o nmero do treino e a quantidade de iteraes (pocas). .........45
Figura 3.24 Escolhendo amostra para avaliar. ..................................................................46
Figura 3.25 Resultado da simulao. ................................................................................46
Figura B.1 Esquema geral do circuito. .............................................................................86
Figura B.2 Conjunto 01: subtrator operacional. ...............................................................87
Figura B.3 Conjunto 02: amplificador inversor................................................................87
Figura B.4 Conjunto 03: divisor de tenso. ......................................................................88
Figura B.5 Conjunto 04: amplificador somador. ..............................................................89
Figura C.1 Conversor analgico humano. ........................................................................91
Figura C.2 Conversor analgico digital de 8 bits, ADC0804. ..........................................91
Figura C.3 Caractersticas da pinagem do conversor ADC0804. .....................................92
Figura C.4 Configurao usada com o conversor ADC0804. ..........................................92
-
XI
Lista de Tabelas
Tabela 3.1 Comprimento mximo e mnimo dos sinais em cada linha. ...........................31
Tabela 3.2 Dados para treinamento da rede neural...........................................................38
Tabela C.1 Converso volts para binrio no ADC0804. ..................................................91
-
XII
Lista de Smbolos e Siglas
ASCII American Standard Code for Information Interchange
BIT Binary Digit
Menor unidade de informao
DARPA Defense Advanced Research Projects Agency
fs Freqncia do sinal
GB Giga Byte
GHz Giga Hertz
GMDH "Group Method Data Handling"
GRNN "General Regression Neural Networks"
IEEE Institute of Electrical and Electronics Engineers
INNS International Neural Networks Society
MB Mega Byte
MHz Mega Hertz
MLP Multi-layer Perceptron
Perceptron multi-camadas
PC Personal Computer
Computador Pessoal
PNN "Probabilistic Neural Networks"
RAM Radom-Access Memory
RNA Rede Neural Artificial
.txt Formato de arquivo texto que suporta somente caracteres
-
1
1
Introduo
1.1
Motivao
A aquisio e o tratamento de dados de udio tem sido cada vez mais assunto de
grandes pesquisas. Dentre estas linhas de pesquisa, destaca-se a coleta de um sinal de
udio, onde, atravs do tratamento desse sinal, pode-se determinar de qual direo o sinal
foi emitido.
Como aplicabilidade, essa determinao pode ser utilizada em um ambiente de
vdeo-conferncia, pois sabendo a direo da fonte de udio, tem-se a possibilidade de
encontrar, mais precisamente, o locutor. Em sistemas de segurana, tambm se pode fazer
uso dessa soluo.
O uso de Redes Neurais Artificiais tem como objetivo, fazer com que o computador
se comporte de forma semelhante ao ser humano, pois, crianas de 03 ou 04 anos tm a
capacidade de distinguir perfeitamente uma cor da outra, mas um computador, que efetua
grandiosos clculos matemticos, muitas vezes no tem a capacidade de definir tais
situaes. Ou seja, o objetivo principal das redes neurais generalizar resultados a partir de
conhecimento anterior que se tem do problema, conhecimento este utilizado para treinar a
rede. [Siqueira, 2004]
1.2
Objetivos e Consideraes
O trabalho proposto tem como objetivo determinar de qual direo angular uma
fonte de udio emitiu um som, utilizando Redes Neurais Artificiais para generalizar as
informaes, considerando que:
os sinais tero a mesma intensidade e freqncia;
os sinais esto sendo comparados utilizando a mesma distncia entre a
fonte de udio e o microfone;
os sinais foram gravados e tratados para posteriormente serem treinados e
testados na Rede Neural;
o resultado ser mostrado entre 0 e 90.
Para realizao do trabalho tem-se 4 (quatro) etapas:
-
2
Figura 1.1
Etapas do projeto.
Como mostra a Figura 1.1, ser realizada a aquisio dos dados com a utilizao de
um microfone. Aps, os dados sero discretizados e tratados pelo software Matlab1. Depois
de tratados os dados, uma aplicao criada em C/C++2 baseada em Redes Neurais ir
determinar de qual direo o sinal foi gerado. E por ltimo, ser mostrado de qual direo
angular, aproximadamente, foi gerado o sinal de udio.
1.3 Sinopse dos Captulos
O Captulo 2, suporte terico, trata da histria dos estudos sobre Redes Neurais,
tipos, estruturas, topologias, aprendizagem, e sobre o algoritmo back-propagation. A
norma quadrtica e as funes utilizadas tm como objetivo preparar os dados para serem
utilizados na aplicao
O Captulo 3 tem como objetivo demonstrar de que forma realizada a aquisio
acstica para que se possa realizar o tratamento dos dados, as etapas e estrutura do
prottipo utilizado na validao da estrutura proposta para a determinao da direo da
fonte acstica, as principais funes utilizadas, como realizado o treinamento e a
classificao de novos padres, material e passos para o uso da aplicao criada que tem
1 Matlab: software matemtico otimizado para executar clculos cientficos e de engenharia. 2 C/C++: linguagem de programao.
-
3
como finalidade determinar, por simulao, qual direo angular foi gerado o sinal de
udio. Neste captulo encontram-se tambm os passos para realizar a simulao utilizando
a aplicao criada.
Por fim, no Captulo 4, tm-se as consideraes finais, os resultados obtidos,
dificuldades encontradas para realizao do projeto e as sugestes para trabalhos futuros.
-
4
2
Suporte Terico
Este captulo tem como objetivo apresentar, de forma sucinta, o que so as redes
neurais, suas principais caractersticas, aplicabilidades, tipos, como funcionam, etc.
A aplicao far uso de uma rede neural utilizando o algoritmo back-propagation
com o objetivo de treinar a rede para determinar a direo da fonte de udio, e
posteriormente, a rede ser capaz de determinar a direo dessa fonte para novas situaes,
ou seja, que no foram treinadas.
A norma quadrtica e as funes utilizadas tm como finalidade tratar e preparar os
dados para que a aplicao, criada em C/C++ baseada no algoritmo back-propagation,
possa fazer uso dessas informaes para determinar a direo da fonte de udio.
2.1 Redes Neurais
2.1.1 O que so Redes Neurais Artificiais?
O crebro humano considerado o mais fascinante processador baseado em
carbono existente, sendo composto por aproximadamente 10 bilhes de neurnios. Todas
as funes e movimentos do organismo esto relacionados ao funcionamento destas
pequenas clulas. Os neurnios esto conectados uns aos outros atravs de sinapses, e
juntos formam uma grande rede, chamada Rede Neural. As sinapses transmitem estmulos
atravs de diferentes concentraes de Na+ (Sdio) e K+ (Potssio), e o resultado disto
pode ser estendido por todo o corpo humano. Esta grande rede proporciona uma fabulosa
capacidade de processamento e armazenamento de informao.
O sistema nervoso formado por um conjunto extremamente complexo de
neurnios. Nos neurnios a comunicao realizada atravs de impulsos, quando um
impulso recebido, o neurnio o processa, e passado um limite de ao, dispara um
segundo impulso que produz uma substncia neurotransmissora o qual flui do corpo celular
para o axnio (que por sua vez pode ou no estar conectado a um dendrito de outra clula).
O neurnio que transmite o pulso pode controlar a freqncia de pulsos aumentando ou
diminuindo a polaridade na membrana ps-sinptica. Eles possuem um papel essencial na
determinao do funcionamento, comportamento e do raciocnio do ser humano. Ao
contrrio das redes neurais artificiais, redes neurais naturais no transmitem sinais
negativos, sua ativao medida pela freqncia com que emitem pulsos, freqncia esta
-
5
de pulsos contnuos e positivos [Braga, Carvalho, Ludernir, 2000] [Tatibana, Kaetsu,
2004].
Os principais componentes dos neurnios so:
Dentritos, que tm por funo, receber os estmulos transmitidos pelos outros
neurnios;
Corpo de neurnio, tambm chamado de soma, que responsvel por coletar e
combinar informaes vindas de outros neurnios;
Axnio, que constitudo de uma fibra tubular que pode alcanar at alguns
metros, e responsvel por transmitir os estmulos para outras clulas. [Tatibana,
Kaetsu, 2004]
Figura 2.1 Estrutura da clula neural.
A rea de Redes Neurais Artificiais (RNAs), tambm conhecida como
conexionismo ou sistemas de processamento paralelo ou distribudo, teve seus estudos
iniciados por McCulloch e Pitts (1943).
Este modelo de computao no-algortmica, caracterizado por sistemas que, em
certos nveis, relembram a estrutura do crebro humano. Por no ser baseada em regras ou
programas, a computao neural se constitui em uma alternativa computao algortmica
convencional.
RNAs so sistemas paralelos distribudos compostos por unidade de processamento
simples (nodos) que calculam determinadas funes matemticas, em sua grande parte, so
-
6
no-lineares. Essas unidades so dispostas em uma ou mais camadas e interligadas por um
grande nmero de conexes, normalmente unidirecionais. Estas conexes, na maioria dos
modelos, esto associadas a pesos, os quais armazenam o conhecimento representado no
modelo e servem para ponderar a entrada recebida por cada neurnio da rede. Enfim, o
funcionamento dessas redes inspirado na estrutura do crebro humano.
Para que as redes neurais venham a ter um bom desempenho, necessria uma fase
de aprendizagem, onde, um conjunto de exemplos apresentado para a rede, a qual extrai
automaticamente as caractersticas necessrias para representar a informao fornecida.
Estas caractersticas so utilizadas posteriormente para gerar respostas para o problema.
Sem dvidas, o atrativo principal da soluo de problemas usando RNAs a
capacidade de aprender atravs de exemplos e de generalizar a informao aprendida. A
generalizao que est associada capacidade de a rede aprender atravs de um conjunto
reduzido de exemplos e posteriormente dar respostas coerentes para dados no-conhecidos,
uma demonstrao de que a capacidade das redes neurais vai muito alm do que
simplesmente mapear relaes de entrada e sada. As RNAs so capazes de extrair
informaes no-apresentadas de forma explicita atravs dos exemplos. [Braga, Carvalho,
Ludernir, 2000] [Haykin, 2001]
2.1.2 Histrico
Os primeiros estudos sobre redes neurais datam de 1943, atravs dos trabalhos e
artigos de McCulloch e Pitts, em que sugeriam a construo de uma mquina baseada ou
inspirada no crebro humano. Muitos outros artigos e livros surgiram desde ento, porm,
por um longo perodo de tempo, pouco resultado foi obtido. At que em 1949, Donald
Hebb escreveu um livro intitulado "The Organization of Behavior" (A Organizao do
Comportamento) que perseguia a idia de que o condicionamento psicolgico clssico est
presente em qualquer parte dos animais pelo fato de que esta uma propriedade de
neurnios individuais. Suas idias no eram completamente novas, mas Hebb foi o
primeiro a propor uma lei de aprendizagem especfica para as sinapses dos neurnios. Este
primeiro e corajoso passo serviram de inspirao para que muitos outros pesquisadores
perseguissem a mesma idia. E, embora muito tenha sido estudado e publicado nos anos
que seguiram (1940-1950), estes serviram mais como base para desenvolvimento posterior
do que para o prprio desenvolvimento.
Implementaes de redes neurais atravs de circuitos analgicos j existiam nos
anos 50. Para reproduzir o comportamento do crebro humano, pensava-se que, bastaria
-
7
construir uma rede neural suficientemente grande. No entanto, uma detalhada anlise
matemtica deixou claro o pouco poder computacional de um dos modelos de rede mais
utilizados naquele perodo, o perceptron, que no capaz, por exemplo, de ser aplicado
com sucesso em problemas de classificao que no fossem linearmente separveis.
Em 1956 no "Darthmouth College" nasceram os dois paradigmas da Inteligncia
Artificial, a simblica e o conexionista.
A Inteligncia Artificial Simblica tenta simular o comportamento inteligente
humano desconsiderando os mecanismos responsveis por tal. J a Inteligncia Artificial
Conexionista acredita que, construindo um sistema que simule a estrutura do crebro, este
sistema apresentar inteligncia, ou seja, ser capaz de aprender, assimilar, errar e aprender
com seus erros.
O primeiro neuro computador a obter sucesso (Mark I Perceptron) surgiu entre
1957 e 1958, criado por Frank Rosemblatt, Charles Wightman e outros. Devido
profundidade de seus estudos, suas contribuies tcnicas e de sua maneira moderna de
pensar, muitos o vem como o fundador da neuro computao na forma em que a temos
hoje. Seu interesse inicial para a criao do Perceptron era o reconhecimento de padres.
Rosemblatt mostrou em seu livro (Principles of Neurodynamics) o modelo dos
"Perceptrons". Nele, os neurnios eram organizados em camada de entrada e sada, onde
os pesos das conexes eram adaptados a fim de se atingir a eficincia sinptica. [Braga,
Carvalho, Ludernir, 2000] [Tatibana, Kaetsu, 2004]
Figura 2.2 Rede de perceptrons proposta por Rosemblatt.
Aps Rosemblatt, Bernard Widrow, com a ajuda de alguns estudantes, desenvolveu
um novo tipo de elemento de processamento de redes neurais chamado de Adaline,
equipado com uma poderosa lei de aprendizado, que diferente do Perceptron que ainda
-
8
permanece em uso. Widrow tambm fundou a primeira companhia de hardware de
neurocomputadores e componentes.
Infelizmente, os anos seguintes foram marcados por um entusiasmo exagerado de
muitos pesquisadores, que passaram a publicar mais e mais artigos e livros que tinham uma
previso pouco confivel para a poca, sobre mquinas to poderosas quanto o crebro
humano que surgiriam em um curto espao de tempo. Isto tirou quase toda a credibilidade
dos estudos desta rea e causou grandes aborrecimentos aos tcnicos de outras reas.
Um perodo de pesquisa silenciosa seguiu-se durante 1967 a 1982, quando poucas
pesquisas foram publicadas devido aos fatos ocorridos anteriormente. Entretanto, aqueles
que pesquisavam nesta poca, e todos os que se seguiram no decorrer desses anos
conseguiram, novamente, estabelecer um campo concreto para o renascimento da rea.
Os anos 80 trouxeram de volta o interesse por essa fascinante rea, principalmente
em funo do aparecimento de novos modelos de redes neurais e de algoritmos de
aprendizado mais poderosos. Na literatura, podem ser encontrados diversos modelos de
redes neurais e algoritmos de aprendizado. Entretanto, este documento ir se basear no
modelo de aprendizado denominado retro-propagao do erro ou error back-propagation.
No item 2.1.11 ir ser detalhando como esse algoritmo funciona.
Muitos pesquisadores foram bastante corajosos e passaram a publicar diversas
propostas para a explorao de desenvolvimento de redes neurais bem como suas
aplicaes. Porm, o fato mais importante deste perodo ocorreu quando Ira Skurnick, um
administrador de programas da DARPA (Defense Advanced Research Projects Agency)
decidiu ouvir os argumentos da neuro computao e seus projetistas e, divergindo dos
caminhos tradicionais dos conhecimentos convencionais, fundou em 1983 pesquisas em
neuro computao. Este ato no s abriu as portas para a neuro computao, como tambm
deu DARPA o status de uma das lderes mundiais em se tratando de "moda" tecnolgica.
Em 1987 ocorreu em So Francisco
Estado Unidos, a primeira conferncia de
redes neurais em tempos modernos, a IEEE International Conference on Neural Networks,
e tambm foi formada a International Neural Networks Society (INNS). A partir destes
acontecimentos, decorreu a fundao do INNS Jornal em 1989, seguido do Neural
Computation e do IEEE Transactions on Neural Networks em 1990.
Desde 1987, muitas universidades anunciaram a formao de institutos de pesquisa
e programas de educao em neuro computao. [Tatibana, Kaetsu, 2004] [Haykin, 2001]
-
9
2.1.3 Tipos de Rede
Existem dois tipos bsicos de rede neurais: supervisionadas e no supervisionadas:
Redes supervisionadas
Constroem modelos, os quais classificam padres ou executam predies de acordo
com outros padres de "entradas" e "sadas" que eles aprenderam.
Este tipo de rede apresenta a resposta mais razovel baseada em uma variedade de
padres de aprendizado. Em uma rede supervisionada, mostra-se rede como fazer
predies, classificaes, ou decises, fornecendo a ela um nmero de classificaes
corretas ou predies das quais ela pode aprender. Redes de Retropropagao, GRNN
("General Regression Neural Networks"), PNN ("Probabilistic Neural Networks"), e
GMDH ("Group Method Data Handling") so exemplos de redes supervisionadas.
[Guahyba, 2004]
Redes no-supervisionadas
Pode classificar um conjunto de padres de treinamento em um nmero
especificado de categorias sem ser mostrado antes como categorizar. A rede faz isto
agrupando os padres de entrada. Ela os agrupa por sua proximidade em um espao
dimensional N, onde N o nmero de "entradas". O usurio diz rede o nmero mximo
de categorias e ela geralmente agrupa os dados em certo nmero de categorias. Entretanto,
a rede pode no ser capaz de separar os padres naquelas muitas categorias opcionais.
Redes Kohonen so exemplos de redes no supervisionadas. [Guahyba, 2004]
Nenhum tipo de rede garante uma resposta absolutamente correta, especialmente se
os padres so de alguma forma incompletos ou conflitantes.
Os resultados devem ser avaliados em termos da porcentagem de respostas corretas
que resultaram do modelo.
A esse respeito, a tecnologia similar ao funcionamento do neurnio biolgico
depois deste ter sido "projetado", e difere significantemente de todos outros programas
convencionais de computador. Redes Neurais podem no trabalhar bem em algumas
aplicaes. Alguns problemas so bem apropriados para a capacidade de reconhecimento
de padres de uma rede neural e outros so mais bem resolvidos com mtodos tradicionais.
[Haykin, 2001] [Braga, Carvalho, Ludernir, 2000]
-
10
2.1.4 A Estrutura da Rede
O bloco de construo bsico da tecnologia de redes neurais o neurnio simulado
(descrito na Figura 2.3 como um crculo). Neurnios independentes so de pouco uso, a
menos que eles estejam interconectados em uma rede de neurnios. A rede processa um
nmero de entradas ("inputs") do "mundo externo" para produzir uma sada ("output"),
que so as classificaes da rede ou predies. Os neurnios so conectados por pesos
(retratados como linhas), os quais so aplicados a valores passados de um neurnio para o
outro.
Figura 2.3 Exemplo de estrutura de uma rede neural.
Um grupo de neurnios chamado de slab. Os neurnios tambm so agrupados
em camadas por suas conexes com o "mundo externo". Por exemplo, se um neurnio
recebe dados de fora da rede, ele considerado como estando na camada de entrada. Se
um neurnio contm as classificaes ou predies da rede, ele est na camada de sada.
Neurnios entre as camadas de entrada e sada esto na(s) camada(s) oculta(s) ou
escondida(s). Uma camada pode conter uma ou mais slabs de neurnios. [Guahyba, 2004]
2.1.5 Topologias das Redes Neurais
Redes Feed-Forward
So redes com uma ou mais camadas de processadores, sendo que o fluxo de dados
sempre em uma nica direo, ou seja, no existe realimentao.
-
11
Figura 2.4 Rede de mltiplas camadas do tipo Feed-Forward.
Redes Recorrentes
So redes com conexes entre processadores da mesma camada e/ou com
processadores das camadas anteriores (realimentao). [Vellasco, 2004]
Figura 2.5 Rede recorrente com realimentao.
2.1.6 Funo de Ativao
A funo de ativao, tambm conhecida como funo restritiva, restringe a
amplitude da sada de um neurnio. Essa funo limita (restringe) o intervalo permissvel
de amplitude do sinal de sada de um valor finito. [Haykin, 2001].
Dentre as funes mais utilizadas, temos: [Meyer, 1997]
Degrau: 0,0
0,1)(
x
xxf
(2.1)
-
12
Degrau Simtrico:
0,1
0,1)(
x
xxf
(2.2)
Linear: xxf )(
(2.3)
Sigmide:
xexf
1
1)(
(2.4)
Tansigmide: xx
xx
ee
eexf )(
(2.5)
2.1.7 Processamento de uma Rede Neural
O processamento de uma Rede Neural pode ser dividido em duas fases:
Learning
processo de atualizao dos pesos sinpticos para aquisio do
conhecimento aquisio de informao.
Recall
processo de clculo da sada da rede, dado certo padro de entrada
recuperao de informao. [Vellasco, 2004]
2.1.8 Aprendizado
Uma rede neural tpica uma Rede de Retropropagao, a qual geralmente tem 3
camadas de neurnios. Valores de entrada na primeira camada so pesados e passados para
a segunda camada. Neurnios na camada oculta "atiram" ou produzem sadas que so
baseadas na soma dos valores pesados passados por elas. A camada oculta passa valores
camada de sada da mesma forma, e a camada de sada produz os resultados desejados
(predies ou classificaes).
A rede "aprende", ajustando os pesos das interconexes entre as camadas. As
respostas que a rede est produzindo so repetidamente comparadas com as respostas
corretas, e cada vez os pesos das conexes so ajustados na direo das respostas corretas.
Eventualmente, se o problema pode ser aprendido, um conjunto estvel de pesos
adaptativamente evolui e ir produzir boas respostas para todas as decises ou predies da
-
13
amostra. O real poder das redes neurais evidente quando a rede treinada capaz de
produzir bons resultados para dados os quais ela nunca "viu" antes.
O maior segredo para construir com sucesso redes neurais saber quando parar de
treinar. Se voc treina muito pouco, a rede no ir aprender os padres. Se voc treinar
muito, a rede ir aprender com o problema ou memorizar os padres de treinamento e no
generalizar bem com novos padres.
Dessa forma, conclu-se que aprendizagem o processo pelo qual os parmetros
de uma rede neural so ajustados atravs de uma forma continuada de estmulo pelo
ambiente no qual a rede est operando, sendo o tipo especfico de aprendizagem realizada
definido pela maneira particular como ocorrem os ajustes realizados nos parmetros.
[Braga, Carvalho, Ludernir, 2000]
Aprendizado supervisionado
Nesse tipo de aprendizado, a rede treinada atravs do fornecimento dos valores de
entrada e de seus respectivos valores desejados de sada, geralmente efetuado atravs do
processo de minimizao do erro calculado na sada. [Vellasco, 2004]
A entrada e sada desejada so fornecidas por um supervisor (professor) externo. O
objetivo ajustar os parmetros da rede, de forma a encontrar uma ligao entre os pares
de entrada e sada fornecidos.
Na Figura 2.6 ilustrado o mecanismo de aprendizado supervisionado. O
professor indica um comportamento bom ou ruim para a rede, visando a direcionar o
processo. A rede tem sua sada corrente (calculada) comparada com a sada desejada,
recebendo informaes do supervisor sobre o erro da resposta final. A cada padro de
entrada submetido rede, compara-se a resposta desejada (que representa uma tima ao
para ser realizada pela rede) com a resposta calculada, ajustando-se os pesos das conexes
para minimizar o erro.
-
14
Figura 2.6 Aprendizado supervisionado.
A desvantagem do aprendizado supervisionado que, na ausncia do professor, a
rede no conseguir aprender novas estratgias para novas situaes no treinadas. Um
exemplo de algoritmo para aprendizado supervisionado o back-propagation. [Braga,
Carvalho, Ludernir, 2000]
Aprendizado no-supervisionado
Como o prprio nome sugere, no aprendizado no-supervisionado no h um
professor ou supervisor para acompanhar o processo de aprendizado. A Figura 2.7 ilustra
este mtodo.
Figura 2.7 Aprendizado no-supervisionado.
O aprendizado no supervisionado no requer o valor desejado de sada da rede. O
sistema extrai as caractersticas do conjunto de padres, agrupando-os em classes inerentes
aos dados. [Braga, Carvalho, Ludernir, 2000]
As redes neurais artificiais caracterizam-se portanto:
pelo grande nmero de elementos de processamento bem simples, inspirado no
funcionamento de um neurnio;
-
15
pelo grande nmero de conexes entre esses elementos de processamento. Cada
conexo tem peso associado, este peso representa quo forte a interao ou
acoplamento entre elementos de processamento e se a sua natureza excitatria ou
inibitria;
pelo controle altamente paralelo e distribudo;
pela capacidade de um aprendizado atravs de observaes de um conjunto de
exemplos;
pela manuteno do desempenho na presena de rudo e capacidade de lidar com
dados incompletos.
2.1.9 Uso da Rede Neural
Algumas utilizaes atualmente empregando as Redes Neurais Artificiais:
diagnstico de doenas, identificao de compostos qumicos, anlise de testes mdicos,
controle de processo, predio de horas de trabalho necessrias para procedimentos
industriais, identificao bacteriana, anlise de custos, diagnstico diferencial, otimizando
resultados de experimentos biolgicos, anlise nutricional, experimentos agrcolas,
gerenciamentos de recursos hdricos, anlise a processamento de sinais, classificao de
dados, controle de processos, anlise de voz, anlise de imagens, etc. [Braga, Carvalho,
Ludernir, 2000] [Haykin, 2001]
2.1.10 Perceptron
Figura 2.8 Modelo Perceptron.
-
16
O modelo Perceptron, utiliza a funo de ativao Degrau, tem a topologia em uma
nica camada. Normalmente, utiliza o aprendizado supervisionado para o treinamento da
rede. Sua regra de propagao baseada na seguinte equao:
jjiij wxnet .
(2.6)
onde:
ix vetor de entrada;
jiw peso atribudo em cada entrada;
j bias, desvio.
Uma das modelagens para o funcionamento de um neurnio consiste em um
elemento de processamento que possu um nmero X de entradas e uma nica sada (sj).
As conexes dos neurnios so conhecidas como sinapses, por onde os sinais
gerados pelas sadas dos neurnios fluem. Cada sinapse possui associada a si um nmero
real conhecido como peso, cujo mdulo representa o ganho que o sinal recebe quando
percorre a sinapse, enquanto o sinal do peso representa a natureza da ligao entre os
neurnios: negativo para ligaes ditas inibitrias e positivas para ligaes ditas
excitatrias.
Como visto anteriormente, uma rede neural consiste em um conjunto de neurnios
conectados por sinapses. Dentre os tipos de redes neurais, neste trabalho, vamos nos deter
a topologia conhecida como Perceptron multi-camadas (Multi-layer Perceptron MLP).
As redes MLPs resolvem problemas mais complexos do que o Perceptron simples e
Adaline, pois as camadas intermedirias simplificam o problema para a camada de sada.
[Vellasco, 2004]
Esse tipo de rede, MLP, possui uma ou mais camadas intermedirias. Na Figura 2.9
ilustrado um perceptron com 3 camadas. Os pontos de entrada no realizam nenhum
processamento, eles simplesmente distribuem o sinal que recebem para os neurnios da
camada posterior. Uma camada conectada apenas s camadas adjacentes a ela, e a sada
de cada neurnio conectada a uma entrada de todos os neurnios na camada posterior,
num arranjo conhecido como camadas completamente conectadas. O fluxo do sinal ocorre
sempre no mesmo sentido, da entrada para a sada. Este um exemplo de rede no-
realimentada.
-
17
Figura 2.9
Perceptron com uma camada oculta.
A camada S a camada de sada da rede neural, enquanto V recebe o nome de
camada escondida e E de camada de entrada. Uma rede pode possuir mais de uma camada
escondida. E entre uma camada e outra, cada neurnio sofre a ao de um peso, W.
Seja M o nmero de neurnios da camada escondida V, e N o nmero de entradas
de uma rede neural. Seja um vetor de entrada E onde cada componente um nmero real
representado por kE , para Nk1 . Se esse vetor E for apresentado rede, cada
unidade na camada escondida jV realiza o seguinte somatrio:
N
k
wkjkj Ewh
1
(2.7)
e produz uma sada:
N
kkjkjj EwGhGV
1
(2.8)
cada unidade na camada de sada realiza o somatrio:
N
kkjk
M
jijjiji EwWVWh
11
(2.9)
e produz o resultado final:
-
18
N
kjkk
M
jijii wEGWGhGS
11
(2.10)
Nota-se que a sada S gerada pela rede para uma entrada E uma funo no
linear de E . O comportamento dessa funo, uma vez fixada a funo de ativao G de
cada neurnio, depende exclusivamente do valor dos pesos das sinapses. [Liporace,
Machado, Barbosa 1994]
importante que a funo de ativao G de cada neurnio seja no linear, j que
isso ir determinar o mapeamento SE realizado pela rede, e assim, capaz de
representar mapeamentos mais complexos do que os representveis por uma funo linear.
O objetivo descobrir uma configurao de pesos que realize este mapeamento. Para tal
procedimento, usaremos o treinamento usando o algoritmo back-propagation, descrito a
seguir. [Liporace, Machado, Barbosa 1994]
2.1.11 Perceptrons de Mltiplas Camadas (MLP)
As redes neurais conhecidas como Perceptrons de Mltiplas Camadas - Multilayer
Perceptron (MLP), consistem de um conjunto de unidades sensoriais (ns de fonte) que
constituem a camada de entrada, uma ou mais camadas ocultas, ou escondidas, e uma
camada de sada. O sinal de entrada vai se propagando para frente atravs da rede, camada
por camada.
Para resolver diversos problemas difceis, os Perceptrons de Mltiplas Camadas
tm sido aplicados com sucesso, sendo utilizado em seu treinamento de forma
supervisionada o algoritmo de retropropagao de erro (error back-propagation).
[Haykin, 2001]
Treinamento de Redes MLP
Dentre os algoritmos existentes para o treinamento de redes neurais de mltiplas
camadas, o mais conhecido o algoritmo de retropropagao de erros, ou simplesmente,
back-propagation. O algoritmo back-propagation um algoritmo do tipo supervisionado
que usa de pares de entrada e sada desejada para, por meio de um mecanismo de correo
de erros, ajustarem os pesos da rede.
-
19
O seu treinamento ocorre em duas fases, em que cada fase percorre a rede em um
sentido de ida e em um sentido de volta, sendo essas fases denominadas de fase forward e
fase backward, respectivamente. Para um dado padro de entrada, a fase forward usada
para definir sua sada na rede. J a fase backward, usa sada fornecida e a sada desejada
para realizar a atualizao dos pesos e de suas conexes.
Na Figura 2.10 ilustrado o fluxo do algoritmo back-propagation, no sentido
forward, os dados vo da entrada para a sada, e no sentido backward, os erros, da sada
para a entrada.
Figura 2.10 Fluxo do algoritmo back-propagation.
Passos da fase forward, de acordo com [Braga, Carvalho, Ludernir, 2000] :
1. Entrada apresentada a primeira camada da rede, camada C0.
2. Para cada camada Ci a comear da camada de entrada:
2.1. Aps os nodos da camada Ci (i > 0) calcularem seus sinais de sada, estes servem
como entrada para a definio das sadas produzidas pelos nodos da camada Ci+1.
3. As sadas produzidas pelos nodos da ltima camada so comparadas s sadas
desejadas.
Passos da fase backward, de acordo com [Braga, Carvalho, Ludernir, 2000] :
1. A partir da ltima camada, at chegar camada de entrada:
1.1. Os nodos da camada atual ajustam seus pesos de forma a reduzir seus erros.
-
20
1.2. Os erros de um nodo das camadas intermedirias so calculados utilizando os erros
dos nodos da camada seguinte conectados a ele, ponderados pelos pesos das
conexes entre eles.
Sendo assim, o algoritmo back-propagation, que utiliza essas duas fases apresentado a
seguir: [Braga, Carvalho, Ludernir, 2000]
1. Inicializar pesos e parmetros.
2. Repetir at os erros serem mnimos ou at a realizao de um dado nmero de ciclos:
2.1. Para cada padro de treinamento X:
2.1.1. Definir sada da rede atravs da fase forward.
2.1.2. Comparar sadas produzidas com as sadas desejadas.
2.1.3. Atualizar pesos dos nodos atravs da fase backward.
O algoritmo back-propagation baseia-se na regra delta, que foi proposta por
Widrow e Hoff, sendo denominada regra delta generalizada, e definida como:
pjpij x
(2.11)
onde,
ij = variao no valor do peso que interliga os neurnios;
= parmetro da taxa de aprendizagem;
pjx = sinal de entrada do neurnio j;
p = gradiente local, definido como: pipi atp , sendo:
pit = valor esperado na sada do neurnio i para um padro p de entrada;
pia = valor calculado na sada do neurnio i para um padro de entrada p.
Com a utilizao desse algoritmo, possvel definir os erros dos nodos das camadas
intermedirias, possibilitando o ajuste de seus pesos. Esse ajuste de peso realizado
usando o mtodo do gradiente.
Taxas de aprendizado esto relacionadas ao passo de incremento (decremento) de
seus pesos. Sendo que um valor inicial definido pelo usurio ou obtido atravs de
algumas variaes do algoritmo back-propagation. [Meyer, 1997]
Atravs da retropropagao do erro quadrtico (Ep) das sadas, obteve-se a equao
(2.11), por meio das seguintes equaes:
-
21
ij
pij
E
(2.12)
ipipip atE
2
(2.13)
Constitui o ncleo da regra de aprendizado, a derivada parcial do erro quadrtico
com relao a cada peso ij
das sinapses que chegam ao neurnio i. Se os pesos sofrem
alterao sob a equao (2.11), esse erro quadrtico se move na superfcie de erro em
direo a um ponto de mnimo, conforme ilustrado na Figura 2.11.
Figura 2.11 Sentido da movimentao na superfcie de erro.
Um dos problemas encontrados nas redes back-propagation que a superfcie de
erro pode tender a um ponto de mnimo local, podendo o algoritmo convergir para um
desses pontos ao invs de convergir para o mnimo geral. Para contornar esse problema,
deve-se reiniciar o treinamento escolhendo outro conjunto de pesos iniciais, sendo que
assim, o ponto de partida na superfcie de erro diferente do primeiro, tendo-se uma maior
chance de evitar-se o ponto determinado ponto de mnimo local. Se o erro quadrtico
atinge valores tolerveis, dizemos ento que a rede aprendeu a reconhecer os padres
que a ela foram apresentados e que est rede j est treinada . [Meyer, 1997]
-
22
Com objetivo de melhorar o desempenho da rede no processo de treinamento e
evitar mnimos locais, a adio de um termo momentum uma das tcnicas mais
freqentes. Est tcnica bastante utilizada por ser simples e efetiva. O termo momentum
representado pela equao (2.14): [Braga, Carvalho, Ludernir, 2000] [Meyer, 1997]
)()(1 nman ijpipiij
(2.14)
Com a incluso do termo momentum, o treinamento acelerado em regies muito
planas da superfcie de erros. Alm disso, suprime oscilaes de pesos em vales e ravinas.
Na Figura 2.12 ilustrado o efeito do uso do termo momentum no caminho seguido pela
rede durante a fase de aprendizado. [Braga, Carvalho, Ludernir, 2000]
Figura 2.12 Influncia do termo momentum.
Durante o treinamento de uma rede MLP possvel ocorrncia de overfitting, ou
seja, a rede em vez de melhorar o seu desempenho, a rede comea a ter a sua generalizao
degrada, a sua taxa de acertos para padres diferentes daqueles utilizados para os ajustes de
pesos piora. Dizemos ento que a rede memorizou os padres de treinamento. As
alternativas mais usadas para reduzir a ocorrncia de overfitting so:
-
23
encerrar o treinamento mais cedo (quando o erro de validao comea a
subir);
podar (punning) os pesos mais cedo.
Modos de Treinamento Seqencial (Estocstico) e por Lote
Na aplicao prtica do algoritmo de retropropagao, o aprendizado se resulta das
vrias apresentaes de um determinado conjunto de exemplos de treinamento para o
perceptron de mltiplas camadas. Como citado em [Haykin, 2001], uma apresentao
completa do conjunto de treinamento inteiro denominado poca.
O processo de aprendizagem mantido em uma base de poca em poca at os
pesos sinpticos e os nveis de bias (desvio) se estabilizarem e o erro mdio quadrado
sobre todo conjunto de treinamento e convergir para um valor mnimo. [Haykin, 2001]
Em um determinado conjunto de treinamento de uma rede back-propagation, a
aprendizagem por retropropagao pode proceder de uma entre duas formas:
1. Treinamento Seqencial: tambm conhecido como estocstico. Neste tipo de
treinamento, a atualizao dos pesos se d aps a apresentao de cada exemplo
que apresentado a rede. Este tipo de treinamento utilizado em problemas em que
temos uma grande quantidade de padres de treino, pois os pesos, por serem
modificados rapidamente, podem levar a uma convergncia mais rpida. [Haykin,
2001] [Meyer, 1997]
2. Treinamento por Lote: no treinamento por lote, o ajuste dos pesos realizado aps
a apresentao de todos os exemplos de treinamento que constituem uma poca.
Este tipo de treinamento exige mais tempo para que os pesos sejam atualizados,
mas mais usado com algoritmos que alteram a taxa de aprendizagem
dinamicamente. [Haykin, 2001]
2.2
Norma Quadrtica e Funes Utilizadas
Para realizar o tratamento dos dados, fez-se necessrio a utilizao do software
Matlab 7.0, onde foi realizada a discretizao dos sinais. O Matlab um software
especializado e otimizado para realizar clculos cientficos e de engenharia. um
programa de fcil utilizao que contm diversas funes matemticas que facilitam vrias
operaes. [Chapman, 2003]
-
24
Dentre as funes que esto sendo usadas nesse projeto, destaca-se:
wavread()3 ;
norma 2;
dec2bin();
A funo wavread() utilizada para realizar a leitura dos sinais de udio, a funo
norma 2 (norm) calcula o comprimento de um vetor; e a funo dec2bin() transforma um
nmero decimal em um nmero binrio. [Matsumoto, 2004]
Com os dados do sinal que foi lido utilizando a funo wavread(), forma-se um
vetor. Portanto, o sinal de udio tratado como um vetor de dimenso nR , em que n
o
nmero de amostras do sinal. Aps a leitura dos sinais, necessrio determinar o
comprimento do vetor. Tal comprimento calculado utilizando-se a funo norma 2.
[Boldrini, Costa, Figueiredo, Wetzler, 1981]
O clculo da norma 2 dado pela expresso abaixo:
22
2
2
121...,..., nn PPPPP
(2.15)
onde,
nPP ,...,1 = elementos do vetor (amostra de dados);
n = quantidade de amostras de dados.
O resultado obtido com o uso da funo norma 2 convertido para binrio atravs
da funo dec2bin(). A transformao para binrio se faz necessrio, pois o algoritmo
criado em C/C++ trabalha com nmeros binrios.
Aps a converso dos dados para binrio, esses valores so armazenados em um
arquivo de extenso .txt para que o algoritmo possa realizar a leitura dos dados e treinar a
rede neural.
Para que possa ser realizada a determinao da direo da fonte de udio, utiliza-se
um programa baseado em Redes Neurais Artificiais , na configurao back-propagation.
Foi necessrio o uso da funo norma 2 para determinar uma caracterstica dos
sinais de udio gravados, nesse caso o comprimento de cada vetor, e assim, poder converte
3 wavread(): funo que realiza a leitura de um sinal .wav no software Matlab.
-
25
esses dados em binrio para que a rede possa determinar a direo angular da fonte de
udio.
Os dados tratados so usados para o treinamento da rede neural, a fim de capacitar a
rede a generalizar resultados para novos dados apresentados.
Este resultado mostrado atravs da aplicao criada para a avaliao dos
resultados, onde um algoritmo foi desenvolvido utilizando a linguagem de programao
C/C++. [Schildt, 1997] [Meyer, 1997]
-
26
3 Determinao da Direo da Fonte de udio
Este captulo tem como escopo a exposio das etapas do projeto, onde foi
realizada a aquisio dos sinais de udio, tratamento dos dados, simulao, treinamento e
testes da aplicao criada com intuito de realizar a determinao da direo da fonte de
udio.
3.1
Gravao dos Sinais
Para elaborao do projeto, fez-se necessrio a gravao de sinais de udio para
realizao de uma simulao. Os sinais foram gravados em um ambiente simulado,
composto por um tabuleiro (Figura 3.1) e um microfone.
Figura 3.1
Tabuleiro usado na simulao.
O tabuleiro foi divido em quatro linhas, distantes a 10 cm, 20 cm, 30 cm e 40 cm do
microfone, e essas linhas dividas em ngulos entre 0 e 90 graus, separados de 5 em 5
graus.
Durante a gravao dos sinais, realizaram-se experimentos com 3 (trs) microfones.
O primeiro microfone (Figura 3.2), com abertura nas laterais dificultou o tratamento dos
dados, pois essas aberturas capturam o rudo externo em vrias direes.
-
27
Figura 3.2
Microfone com abertura nas laterais.
O segundo microfone (Figura 3.3), microfone de Lapela ML-70 Le Son, teve como
problema a sua alta sensibilidade, capturando assim um rudo externo que prejudicaria o
tratamento dos dados.
Figura 3.3
Microfone de Lapela.
J o terceiro microfone (Figura 3.4) testado durante a gravao dos sinais, foi que
apresentou o melhor resultado, e assim o escolhido para ser usado no projeto. O microfone
escolhido possui como caracterstica ser um microfone unidirecional, e sem aberturas
laterais como as existentes no primeiro microfone testado.
Figura 3.4
Microfone utilizado no projeto.
Foram gravados cinco sinais de udio em cada ngulo e em cada linha, totalizando
380 (trezentos e oitenta) sinais de udio.
-
28
Como fonte de udio foi utilizado um aparelho celular Nokia 1100 (Figura 3.5).
Atravs do uso do aparelho celular como fonte de udio, tem-se a possibilidade de garantir
que o sinal ter sempre a mesma intensidade, freqncia e distncia em relao ao
microfone.
Figura 3.5
Aparelho celular Nokia 1100, usado como fonte de udio para simulao.
Os sinais de udio foram gravados pelo software Cool Edit verso 1.53 fornecido
pela Syntrillium Software Corporation. Aps a gravao dos sinais, foi coletada uma parte
desse sinal, 1 (um) segundo, para serem tratados e testados.
3.2
Tratamento de Dados
3.2.1
Tratamento dos Sinais Gravados
Aps a gravao e a extrao de uma parte de cada sinal, com durao de 1 (um)
segundo, esses sinais foram tratados pelo software Matlab 7.0.
Primeiramente, realizou-se a leitura dos sinais de udio utilizando a funo
wavread(). Como o sinal, aps ser lido, est sendo tratado como um vetor, a funo norma
2, descrita no tpico 2.2 calcula o comprimento desse vetor com objetivo de dar uma
caracterstica desse sinal para que a aplicao possa realizar a determinao da direo
angular.
-
29
3.2.2 Grficos da Funo Norma 2
Com o uso da funo norma 2, nota-se que o comprimento do sinal varia de acordo
com o ngulo em que o sinal foi gerado. Atravs dos grficos abaixo, v-se que quanto
maior o ngulo da fonte de udio em relao ao microfone, menor o comprimento do sinal.
Figura 3.6
Grfico da funo norma 2 dos sinais gravados na linha 01.
Figura 3.7
Grfico da funo norma 2 dos sinais gravados na linha 02.
-
30
Figura 3.8
Grfico da funo norma 2 dos sinais gravados na linha 03.
Figura 3.9
Grfico da funo norma 2 dos sinais gravados na linha 04.
Pelos grficos acima, verifica-se que o comprimento do sinal, alm de diminuir
com aumento do ngulo da fonte de udio em relao ao microfone, tambm varia com o
aumento da distncia entre o microfone e a fonte de udio. Com isso, pode-se dizer que, a
norma 2 (comprimento) do sinal est relacionada com a sensibilidade do microfone em
captar os sinais sonoros emitidos.
Na Tabela 3.1 so mostrados os comprimentos mximos e mnimos obtidos com a
gravao dos sinais em cada linha.
-
31
Tabela 3.1 Comprimento mximo e mnimo dos sinais em cada linha.
Linha
Distncia entre fonte de udio e microfone
Comprimento
mximo do sinal
Comprimento
mnimo do sinal 01 10 cm 254.8013 80.5730
02 20 cm 170.2843 50.3649
03 30 cm 126.8136 18.6193
04 40 cm 117.9248 21.2236
Com o aumento da distncia da fonte de udio em relao ao microfone, houve uma
diminuio do comprimento do sinal, pois como mostrado na Tabela 3.1, quando a fonte
de udio estava a 10 cm do microfone, o comprimento mximo foi de 254.8013, e quando
estava a 40 cm, o comprimento mximo foi de 117.9248.
Atravs das Figuras 3.6 a 3.9, tambm se pode notar que existem alguns picos
que podem acarretar divergncias na determinao da fonte de udio, mas nota-se que a
norma 2 tende a diminuir com o aumento do ngulo da fonte de udio em relao ao
microfone. Tais picos devem ter ocorridos devido variao do ambiente e rudos
externos existentes durante a gravao dos sinais.
3.2.3 Resumo do Cdigo para Tratamento dos Dados
A seguir apresentado o fluxograma do algoritmo usado para o tratamento dos
dados.
-
32
Figura 3.10
Fluxograma do algoritmo de tratamento de dados.
O fluxograma acima descreve de forma resumida as etapas de tratamento de dados.
O algoritmo completo encontra-se no Anexo A.
De acordo com a Figura 3.10, nota-se que a valor da funo norma 2 (norm) foi
multiplicado por 50, isso ocorreu porque os valores obtidos com o uso dessa funo eram
baixos, assim multiplicou-se todos os valores do comprimento do sinal com o intuito de
obter-se valores que melhor se ajustasse ao projeto em execuo. Tal procedimento foi
adotado, de multiplicar o valor da norma 2 por uma constante, para que os dados, quando
transformados em binrio, tivessem uma faixa de valores aceitveis para serem tratados
pela aplicao. Essa faixa de valores deve ficar entre 0 e 255, que corresponde em nmero
binrio, 00000000 e 11111111, respectivamente.
Deve-se ressaltar que este algoritmo foi usado para cada linha distante do
microfone, ou seja, por quatro vezes, alterando os dados de entrada (som gravado),
intermedirios (norm e nmero binrio) e os dados de sada (arquivo de extenso .txt com
informaes sobre os sinais gravados).
-
33
Fez-se necessrio a converso dos dados para nmero binrio, pois a primeira
proposta do projeto utilizava um circuito que tinha como objetivo, capturar, tratar e
converter os sinais analgicos para digital utilizando um conversor Analgico/Digital e
enviar esses dados para o PC via porta paralela.
A aplicao foi criada utilizando como entrada os nmeros 0 e 1, e determinou-se
que as entradas da rede teriam 8 bits, pois a quantidade de sadas fornecidas pelo
conversor.
Dessa forma, com a substituio do circuito pela placa de som e os softwares
Matlab e Cool Edit, fez-se necessrio a converso dos dados para binrio com intuito de
utilizar a aplicao criada.
Ressalva-se que, mesmo com as alteraes ocorridas, o objetivo do projeto
permaneceu, o de determinar por simulao a direo angular da fonte de udio.
Informaes sobre o circuito que estava sendo criado e sobre o conversor
analgico/digital esto nos anexos B e C, respectivamente.
3.3
Estrutura do Algoritmo de Aplicao
Aps o tratamento dos dados pelo software Matlab, onde foram gerados arquivos
de extenso .txt com os dados de cada sinal, uma aplicao ir treinar a rede neural e
classificar novos padres apresentados rede. A linguagem de programao adotada foi
C/C++, e o compilador utilizado o Borland C++ Builder 5. [Schildt, 1997]
O algoritmo composto pelos seguintes procedimentos: [Meyer, 1997]
InicializaPeso()
Este procedimento atribui pesos s sinapses da rede. Os pesos
so valores aleatrios variando entre -0,1 e 0,1;
InicializaBias()
Este processo atribui valores s entradas bias (desvio) dos
neurnios. Da mesma forma como o procedimento InicializaPeso(), este
procedimento atribui valores aleatrios entre -0,1 e 0,1;
Treinamento()
Efetua a atualizao dos pesos e bias com base na funo delta
generalizada equao (2.11);
TestaRede()
Aplica um padro rede para fins de classificao;
Ativa()
Para um dado padro de entrada, esse procedimento calcula a sada de
cada neurnio baseada na funo sigmide equao (2.4);
GravaParametros()
Aps o treinamento da rede, este procedimento grava os
arquivos compostos pelos parmetros do estado final da rede;
-
34
LeParametros()
Realiza a leitura dos parmetros dos arquivos gerados pela
funo GravaParametros;
3.3.1 Principais Funes Utilizadas no Algoritmo (Pseudocdigo)
A seguir tm-se os fluxogramas das principais funes utilizadas no algoritmo:
[Meyer, 1997]
Funo Principal():
Figura 3.11 Fluxograma da funo principal.
-
35
Funo Ativa():
Figura 3.12 Fluxograma da funo ativa.
Funo TestaRede():
Figura 3.13 Fluxograma da funo testa rede.
-
36
Funo Treinamento():
Figura 3.14 Fluxograma da funo treinamento.
-
37
3.3.2 Treinamento
Durante a fase de treinamento, foram apresentados N padres representando M
ngulos diferentes e ajustados os parmetros como a taxa de aprendizagem, momentum e
tamanho da camada intermediria.
Para realizao do treinamento, so requeridos os seguintes parmetros:
Nmero mximo de iteraes;
Amostras a serem treinadas;
Nmero do treino.
A rede neural utilizada no projeto do tipo supervisionada, utilizando a funo de
ativao sigmide. O aprendizado do tipo supervisionado e o seu treinamento do tipo
estocstico, ou seqencial.
No treinamento, usou-se uma matriz 35x9 (Tabela 3.2) onde as linhas representam
quantidade de amostras utilizadas no treinamento e as colunas so cada bit que a rede deve
atribuir um peso, sendo que a ltima coluna representa o resultado desejado para sada.
Os dados de entrada para o treinamento foram escolhidos considerando que, essas
amostras so possveis entradas que a rede obter. Assim, com esses exemplos, foi
realizado o treinamento da rede com objetivo de gerar uma matriz de peso para que,
quando fossem realizados os testes, com novos dados inseridos na rede, esses dados
pudessem ser influenciados pelos oriundos do treinamento e assim gerar os resultados de
acordo com o treinamento realizado.
-
38
Tabela 3.2 Dados para treinamento da rede neural.
Padres de entrada para
treinamento
Sada Desejada
0
1
1
1
1
0
0
1
0
0
1
1
1
1
0
0
1
0
0
1
1
1
0
0
1
1
0
0
1
1
1
0
0
1
1
0
0
1
1
1
1
1
1
0
0
0
1
0
1
0
1
1
1
15
0
1
0
1
1
1
0
1
15 0
1
0
1
1
1
1
0
15 0
1
0
1
0
0
1
1
15 0
1
1
0
1
0
1
0
15 0
1
0
0
1
0
1
0
30 0
1
0
0
1
1
1
0
30 0
1
0
0
1
1
0
0
30 0
1
0
0
1
0
1
0
30 0
1
0
0
1
1
0
0
30 0
1
0
0
0
0
1
1
45 0
1
0
0
1
0
1
1
45 0
1
0
0
1
0
0
1
45 0
1
0
0
0
1
0
0
45 0
1
0
0
0
1
1
1
45 0
0
1
1
1
1
1
1
60 0
0
1
1
1
1
1
1
60 0
0
1
1
1
1
1
0
60 0
1
0
0
0
0
0
0
60 0
0
1
1
1
1
1
1
60 0
0
1
0
1
0
0
0
75 0
0
1
0
0
1
1
0
75 0
0
1
0
0
0
1
0
75 0
0
1
0
0
1
1
1
75 0
0
1
0
0
1
1
0
75 0
0
0
1
0
0
1
0
90 0
0
0
1
0
1
1
0
90 0
0
0
1
0
1
1
1
90 0
0
0
1
0
1
1
0
90 0
0
0
1
0
1
1
1
90
Na tabela 3.2, encontra-se os dados referentes a gravao realizada na terceira linha
do tabuleiro, a 30 cm do microfone.
Para cada treinamento, possvel alterar os padres de entrada, permitindo um
novo tipo de generalizao e uma nova matriz de peso. Com a alterao dos padres de
entrada entre um treinamento e outro, tm-se uma diferena entre os pesos da matriz e o
erro mdio quadrtico, que ir variar dependendo do nmero de iteraes que a rede
sofrer.
-
39
Durante a fase de treinamento, uma das dificuldades encontradas foi determinar a
quantidade de iteraes para realizao do treinamento, pois como foi descrito no captulo
2, o treinamento da rede influncia no seu desempenho para fornecer as respostas corretas.
Dessa forma, caso a rede seja pouco treinada, no ir apresentar bons resultados, mas
caso a rede venha a ser muito treinada, a rede tende a memorizar os resultados ao
invs de aprender . Assim, foram realizados diversos testes com a inteno de chegar-se a
uma quantidade de iteraes que fornecesse um bom resultado quando for realizado o teste
da rede com intuito de verificar qual a direo da fonte de udio.
A quantidade de pocas realizadas no treinamento, variou entre 1.000 e 100.000
iteraes. Esses valores foram obtidos aps uma srie de testes realizados.
Para realizao do treinamento, utilizou-se, aproximadamente, 52% das amostras
para treinamento e o restante para validao.
Verificou-se, que para alguns casos, essa quantidade de amostras para o
treinamento foi satisfatria, mas, como sugesto para outros trabalhos, sugere-se a
utilizao de quantidades diferentes de amostras para verificar o comportamento da rede.
Aps uma srie de treinamentos e testes, optou-se por parar o treinamento quando
chega-se a 100.000 pocas, pois com uma faixa para treinamento entre 1.000 e 100.000
pocas, foi possvel verificar o comportamento da rede de acordo com o nmero de pocas
realizadas durante o treinamento.
Com a realizao do treinamento e testes, verificou-se que em alguns ngulos a
rede apresentava um melhor desempenho. Deve-se levar em conta que os rudos externos
existentes nas gravaes esto influenciando no treinamento da rede neural, pois o
tratamento realizado teve como objetivo preparar os dados para serem treinados e
testados pela aplicao, no sendo realizado nenhum tipo de filtragem nos sinais. Dessa
forma, possveis erros e divergncias relacionados a determinao angular ocorrem devido
aos problemas encontrados na gravao dos sinais.
3.3.3 Classificao de Novos Padres
Para classificar novos padres so informados para rede quais so esses novos
dados a serem classificados. A rede realiza a leitura dos parmetros gravados, como por
exemplo, do peso associado ao treino realizado, e executa a funo ativa (Figura 3.12) para
determinar em qual direo localiza-se a fonte de udio.
-
40
Essa direo ser mostrada ao usurio em forma de ngulo aproximado. Assim,
para cada novo padro que a rede tenha que classificar, ser informado ao usurio o ngulo
aproximado de onde foi gerado o sinal de udio.
Considerando o rudo ambiente e o erro aceitvel da rede neural, esses valores
podem variar em uma faixa de acordo com os grficos da funo norma 2 mostrados no
Capitulo 2.
Deve-se ressaltar, que o erro existente na determinao acstica, na prtica pode
no influenciar de uma forma que venha a prejudicar o uso da aplicao, pois como j foi
comentado anteriormente, tem-se como possibilidade a aplicao desse projeto em
sistemas de vdeo-conferncia e sistemas de segurana, e em ambos os sistemas, podem-se
fazer uso de cmeras filmadoras, e ao ngulo de viso de grande parte das cmeras est em
torno de 54. Assim, mesmo que existindo uma divergncia entre o ngulo testado e o
resultado apresentado, essa diferena pode ser compensada pelo ngulo de viso da cmera
filmadora. [Souza, 2002]
3.4
Configurao do Ambiente de Homologao
Para implementao do prottipo e realizao de testes e simulaes, necessitou-se
dos seguintes equipamentos e softwares:
Tabuleiro (Figura 3.1) divido em quatro linhas distantes a 10 cm, 20 cm, 30 cm e
40 cm do microfone;
Microfone (Figura 3.4);
Aparelho celular Nokia 1100 como fonte de udio (Figura 3.5);
Microcomputador com a seguinte configurao:
o Pentium III 750 Mhz;
o 384 MB de memria RAM;
o 50 GB de disco rgido;
Softwares utilizados:
o Sistema Operacional Microsoft Windows XP;
o Cool Edit verso 1.53;
o Matlab 7.0;
o Bloco de notas;
o Borland C/C++ Builder 5.
-
41
3.5
Mtodos Utilizados
Aps a gravao, tratamento, e treinamento dos dados, foi realizada uma simulao
para determinar de qual direo o sinal foi gerado. Para tal objetivo, utiliza-se a aplicao
criada em C/C++ descrita no item 3.3.
O primeiro passo para realizao da simulao consiste em escolher em qual linha
ser comparado os ngulos. Caso ainda no tenha sido realizado o treinamento da rede,
deve-se escolher a quantidade de interaes que se deseja para treinar a rede. Aps o
treinamento, podem-se realizar os testes escolhendo o ngulo a ser verificado e conferir o
resultado apresentado.
O item 3.6 mostra os passos para realizar a simulao que determina a direo da
fonte de udio.
3.6
Passos para Realizao do Treinamento e Testes para Determinao da Fonte de udio
A seguir tm-se os passos para realizar o treinamento e testes da rede neural
utilizando a aplicao criada. So apresentadas as telas, suas funcionalidades e os
procedimentos para desempenhar a simulao.
Figura 3.15
Tela de apresentao da aplicao.
A Figura 3.15 mostra a Tela de Apresentao do programa criado usando a
linguagem de programao C. A Figura 3.16, exibi a Tela Principal.
-
42
Figura 3.16
Tela principal.
Figura 3.17 Tela de simulao.
Clicando em Arquivo, Figura 3.16, e selecionando a opo Simulao, ser
mostrada a Tela de Simulao, Figura 3.17, onde poder ser escolhido se deseja realizar
um novo treinamento ou realizar os testes para verificar de qual direo est localizada a
fonte de udio.
Para realizar um novo treinamento, primeiramente devem-se escolher as dados que
sero treinados. Tal procedimento realizado clicando no boto Arquivos, Figura 3.17,
-
43
escolhendo a linha a ser treinada, Figura 3.18, e selecionando o primeiro arquivo de
extenso .txt que aparece na Figura 3.19.
Figura 3.18
Escolhendo a linha a ser treinada.
Figura 3.19
Selecionando os dados para serem treinados.
Em seguida, deve-se indicar o ngulo que dever ser treinado. No primeiro quadro
da Figura 3.20, escolhe-se qual ngulo ir ser treinado. Em cada ngulo existem cinco
amostras do sinal. Dessa forma, quando se escolhe o ngulo no primeiro quadro, no
segundo quadro aparece cada uma das amostras que poder ser utilizada para treinamento.
Nota-se que as amostras esto escritas da seguinte forma:
11111001: Amostra 0 da Linha 1 do Ang. de 00 Graus
que quer dizer que essa amostra contm os dados do som gravado na linha 01 no ngulo
0, e essa a amostra da primeira gravao realizada nesse ngulo, e os primeiros nmeros
mostra o dado na forma de nmero binrio.
Como foi dito no captulo 2, foram gravados cinco sinais em cada ngulo, dessa
forma, tm-se cinco amostras para cada ngulo, enumeradas de 0 a 4.
-
44
Figura 3.20
Escolhendo ngulos a serem treinados.
Figura 3.21
Escolhendo amostras dos ngulos a serem treinadas.
Aps a escolha dos ngulos e amostras a serem treinadas, deve-se alimentar a
matriz de teste clicando no boto Alimenta Matriz, Figura 3.21, para que o treinamento
possa ser realizado.
Escolhendo o ngulo a ser treinado.
Escolhendo o amostras serem treinadas.
-
45
Figura 3.22 Informando que a matriz de teste foi alimentada com sucesso.
Figura 3.23
Escolhendo o nmero do treino e a quantidade de iteraes (pocas).
Depois de escolhida as amostras a serem treinadas, a alimentada a matriz, preciso
informar o nmero do treino a ser realizado e a quantidade de iteraes que dever existir
no treinamento.
Informado o nmero do treino e a quantidade de iteraes, basta clicar no boto
Treinamento para que seja realizado o treinamento da rede.
Caso deseja-se realizar outro treinamento com as mesmas amostras, mas com a
quantidade de iteraes diferentes, basta informar o nmero do novo treino e a quantidade
de iteraes.
Caso almeje realizar o treinamento dos dados de outra linha, faz-se necessrio
excluir os dados da tela de simulao, para realizar essa ao basta clicar no boto
Limpar, e seguir os passos a partir da Figura 3.17.
Para realizar o teste de verificao de qual ngulo o sinal de udio foi emitido,
devem-se escolher as amostras que sero utilizadas clicando no boto Arquivos da Tela de
Simulao, selecionar a linha que deseja testar e escolher o primeiro arquivo, mostrado na
Figura 3.19.
Escolhe-se o nmero do treino e a quantidade de iteraes.
-
46
Aps, deve-se selecionar a amostra a ser testada, informar o nmero do treino e
clicar no boto Testar Rede, Figura 3.24.
Figura 3.24
Escolhendo amostra para avaliar.
Figura 3.25
Resultado da simulao.
Dessa forma, ser informado qual o ngulo aproximado o sinal foi gerado, Figura
3.25. Tambm informado no resultado final, a entrada em forma de nmero binrio e a
sada padro da rede neural.
3.7
Resultados e Consideraes
Atravs dos testes realizados, nota-se que existiram algumas divergncias entre o
ngulo que foi submetido para teste e a sada esperada. Nota-se tambm que a quantidade
de iteraes do treinamento influncia em boa parte nessa determinao.
-
47
Contudo, verifica-se que as provveis causas para os erros na determinao tenham
sido ocasionadas por rudos externos ocorridos durante a gravao dos sinais, pois como
foi dito anteriormente, os sinais gravados no sofreram nenhum tipo de filtragem.
Dessa forma, os resultados apresentados pela aplicao podem apresentar algumas
divergncias em relao ao ngulo solicitado para teste. Mas como foi mencionado, na
prtica essa diferena pode ser compensada pelo ngulo de viso de uma filmadora, que
est em torno de 54. [Souza, 2002]
Portanto, admite-se uma divergncia entre o ngulo do sinal submetido a teste e o
ngulo apresentado pela aplicao de no mximo 45. Se essa diferena estiver nessa faixa,
considera-se que a rede est apresentando, aproximadamente, a direo angular correta.
-
48
4
Concluso
4.1
Consideraes Finais
Atravs da realizao deste projeto, foi possvel determinar, aproximadamente, a
direo de uma fonte de udio em um sistema acstico.
Para que fosse possvel a determinao da direo angular da fonte de udio, fez-se
necessrio o tratamento dos sinais gravados. Para isso, foi calculada a norma 2 do sinal
discretizado (vetor), que oferece como resultado o comprimento do vetor, possibilitando
extrair uma caracterstica para cada sinal de udio.
O uso de Redes Neurais Artificiais possibilitou uma generalizao da determinao
da fonte de udio. O algoritmo, depois de treinado, tem a capacidade de responder por
situaes que jamais teve conhecimento. E, atravs do algoritmo back-propagation, chega-
se, em uma boa parte das amostras a um erro aceitvel, na determinao da fonte de udio,
permitindo definir, aproximadamente, de qual ngulo o sinal foi gerado.
O treinamento da rede teve como objetivo fazer com que a mesma aprendesse a
distinguir novas situaes no treinadas, ou seja, passado para rede informaes de uma
nova localizao da fonte de udio, e a rede tem a capacidade de informar a localizao
aproximada dessa fonte.
Dessa forma, o uso de redes neurais possibilitou uma generalizao das
informaes, permitindo que a mesma seja capaz de definir a posio de uma fonte de
udio para novos locais aonde no ocorreu o treinamento.
Portanto, com uma caracterstica de cada sinal, fornecido pelo uso da norma 2, e o
uso da aplicao desenvolvida baseada em redes neurais, foi possvel determinar,
aproximadamente, de qual direo angular foi gravado o sinal de udio.
4.2
Dificuldades Encontradas
Dentre as principais dificuldades encontradas para elaborao do projeto, destacam-
se:
1 - criao do algoritmo back-propagation em C/C++;
2 - gravao e tratamento dos sinais de udio.
-
49
A criao do algoritmo back-propagation em C/C++ tem como uma
particularidade, o uso de nmeros binrios para entrada dos dados.
A gravao dos sinais foi a parte mais complicada do projeto, j que durante a
gravao dos sinais, existiram diversos problemas, como: sensibilidade do microfone e
rudo do ambiente.
Uma caracterstica observada durante a gravao dos sinais de udio trata-se da
sensibilidade do microfone de acordo com o ngulo que o sinal foi gerado. Notou-se que
quanto maior o ngulo, menor a sensibilidade do microfone usado na gravao dos sinais.
Deve-se ressaltar que existiram algumas alteraes no decorrer da elaborao do
projeto. Dentre as alteraes realizadas, a que mais se destaca a troca do circuito
eletrnico que tinha como objetivo capturar, amplificar, converter o sinal de udio e enviar
o dado para o PC por meio da porta paralela. Tal circuito foi substitudo e optou-se pelo
uso da placa de som do PC, e os softwares Cool Edit e Matlab, para gravao e tratamento
dos sinais, respectivamente. Detalhes sobre circuito projetado encontram-se no Anexo B.
4.3 Sugestes para trabalhos futuros
Atravs dos conceitos apresentados neste projeto, pode-se ter como inspirao para
o futuro:
a construo de um prottipo sem utilizao do PC, realizando a programao
utilizando um Microcontrolador, deixando o prottipo independente de um
microcomputador;
o movimento de uma base giratria, que poder ter como objetivo focalizar a fonte
de udio, podendo ser utilizado em sistemas de vdeo-conferncia e sistemas de
segurana;
uso da voz humana como fonte de udio;
utilizao de outro mtodo para determinar a direo da fonte acstica, como por
exemplo, lgica de fuzzy ou interpolao;
gravao dos sinais de udio utilizando outra fonte de udio e em outro ambiente,
como por exemplo, um estdio de gravao.
-
50
5
Referncias Bibliogrficas
ALLDATASHEET, AllDataSheet. Disponvel em .
Acessado em 10 de novembro de 2004.
ALMEIDA, Almeida Home page. Disponvel em . Acessado em 24 de novembro de 2004.
BOGART, Theodore F. Jr.. Dispositivos e Circuitos Eletrnicos
Volume II. 3 edio. .
So Paulo: Pearson Makron Books, 2001.
BOLDRINI, Jos Luiz; COSTA, Sueli I. Rodrigues; FIGUEIREDO, Vera Lcia;
WETZLER, Henry G.. Algebra Linear
3 Edio
So Paulo: Editora Harbra Ltda,
1981.
BOYLESTAD, Robert L.; NASHELSKY, Louis. Dispositivos Eletrnicos e Teoria de
Circuitos Sexta Edio Rio de Janeiro: LTC Editora, 1999.
BRAGA, Antnio de Pdua; CARVALHO Andr Carlos P. de Leon F; LUDERNIR,
Teresa Bernarda. Redes Neurais Artificiais Teoria e Aplicaes. LTC, 2000
CHAPMAN, Stephen J. Programao em MATLAB para Engenheiros
So Paulo:
Pioneira Thomson Learning, 2003.
GUAHYBA; Adriano. Viso Geral sobre Redes Neurais. Disponvel em
. Acessado em 17 de agosto de 2004.
HAYKIN, Simon. Redes Neurais: Princpios e Prtica. Trad. Paulo Martins Engel.
2
edio Porto Alegre: Bookman, 2001
INGLE, Vinay K; PROAKIS, John G. Digital Signal Processing using MATLAB.
BookWare Companio Series, 2000
LIPORACE, Frederico dos Santos; MACHADO, Ricardo Jos; BARBOSA Valmir
Carneiro. Um Sistema Neural para Monitorao do Desflorestamento na Regio
http://www.alldatasheet.com>http://planeta.terra.com.br/educacao/almeida/pg09.htm>http://www.guahyba.vet.br/avicultura/neurais.htm>
-
51
Amaznica Utilizando Imagens do Landsat. Centro Cientfico Rio
Relatrio Tcnico
CCR-161
IBM, 1994.
MATSUMOTO, lia Yathie. MATLAB 6: Fundamentos de Programao
So Paulo:
rica, 2001
MATSUMOTO, lia Yathie. MATLAB 7: Fundamentos de Programao
So Paulo:
rica, 2004
MESSIAS, Antnio Rogrio. Caractersticas de Funcionamento do Conversor
Analgico Digital ADC0804 de 8 bits. Disponvel em
Acessado em 27 de
setembro de 2004
MEYER, Wladimir da Silva Meyer. Metodologias para Classificao de Texturas e
Consulta a Bases de Imagens. Instituto Militar de Engenharia
Rio de Janeiro, 1997.
NATIONAL. National Semicondutor. Disponvel em . ltimo
acesso em 10 de novembro de 2004.
RUSSEL, Stuart; NORVIG, Peter. Artificial Intelligence
A Modern Approach.
Pearson Education by Prentice-Hall, New Jersey EUA.
SCHILDT, Herbet. C, Completo e Total
3 edio. So Paulo: Pearson Makron Books,
1997.
SIQUEIRA, Jos Antnio Lerosa. Inteligncia Artificial Usando Redes Neurais.
Disponvel em . Acessado em 30 de agosto
de 2004
SOUZA, Adlio Ricardo M.. A escolha adequada das cmeras. Able Alarm Servios Ltda. De 20 de agosto de 2002. Disponvel em . Acessado em 16 de junho de 2005.
STROUSTRUP, Bjarne. A Linguagem de Programao C++
3 edio. Porto Alegre:
Bookman, 2000.
http://www.rogercom.com/pparalela/ConversorADC0804.htm>http://www.national.com>http://www.caetano.eng.br/pef411/index.htm>http://www.ablealarm.com.br/artigo20082002
-
52
TATIBANA, Cssia Yuri; KAETSU Deisi Yuki. Uma Introduo s Redes Neurais.
Disponvel em . Acessado em 17 de agosto de 2004 e
10 de novembro de 2004.
VELLASCO, Marley Maria B. R.. Sistemas Inteligentes
Redes Neurais. Disponvel
em: . Acessado em 17 de agosto de 2004.
ZUBEN, Fernando J. Von. Uma Caricatura Funcional de Redes Neurais Artificiais.
Revista da Sociedade Brasileira de Redes Neurais, Vol.: 1 N. 2, pp.
77-87, 2003.
Disponvel em . Acessado em 27 de agosto de 2004.
http://www.din.uem.br/ia/neurais/>http://www.icahttp://www.sbrn.org.br>
-
53
Anexo A Algoritmos para Tratamento de Sinais
A seguir tm-