sistema adaptativo de controlo da directividade de um

82
Sistema adaptativo de controlo da directividade de um agregado de microfones realizado em PC Luís Filipe Xavier Cavaco de Mendonça Dias Dissertação para obtenção do Grau de Mestre em Engenharia Electrotécnica e Computadores Jurí Presidente: Prof. Doutor José António Beltran Gerald Orientador: Prof. Doutor Gonçalo Nuno Gomes Tavares Co-Orientador: Prof. Doutor Moisés Simões Piedade Vogais: Prof. Doutor António Joaquim dos Santos Romão Serralheiro Setembro de 2007

Upload: others

Post on 29-Jun-2022

1 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Sistema adaptativo de controlo da directividade de um

Sistema adaptativo de controlo da directividade de um

agregado de microfones realizado em PC

Luís Filipe Xavier Cavaco de Mendonça Dias

Dissertação para obtenção do Grau de Mestre em

Engenharia Electrotécnica e Computadores

Jurí

Presidente: Prof. Doutor José António Beltran Gerald

Orientador: Prof. Doutor Gonçalo Nuno Gomes Tavares

Co-Orientador: Prof. Doutor Moisés Simões Piedade

Vogais: Prof. Doutor António Joaquim dos Santos Romão Serralheiro

Setembro de 2007

Page 2: Sistema adaptativo de controlo da directividade de um
Page 3: Sistema adaptativo de controlo da directividade de um

i

AGRADECIMENTOS

Gostaria de expressar os meus sinceros agradecimentos a todos aqueles que me ajudaram

durante a realização deste trabalho, especialmente ao Prof. Doutor Moisés Piedade, Prof.

Doutor Gonçalo Tavares, Prof. Doutor António Serralheiro, Mestre Eng. José Germano, Eng.

José Vaz, Eng. António Nunes e Eng. Gustavo Coelho.

Por fim, mas não menos importante, uma palavra de gratidão para a família e amigos pelo

apoio e compreensão demonstrada.

Page 4: Sistema adaptativo de controlo da directividade de um

ii

Page 5: Sistema adaptativo de controlo da directividade de um

iii

RESUMO

O objectivo deste trabalho visa a concepção de um sistema de aquisição de fala, que permita

detectar a localização de um orador e orientar a directividade do sistema nessa direcção, de

modo a que o orador não necessite de estar fisicamente próximo do equipamento de aquisição

de som.

Neste trabalho foi construído um agregado com 64 microfones (AM) linearmente espaçados de

2 cm. Para verificar o funcionamento do sistema foram efectuados diversos testes aos circuitos

eléctricos.

Numa última fase, os algoritmos de correlação cruzada (para detectar a localização do orador)

e o delay and sum (realização de filtragem espacial) foram simulados em Matlab com dados

reais capturados pelo sistema. Os resultados obtidos mostraram concordância em relação à

teoria e a outros trabalhos relacionados.

Por último, foi realizada a implementação em tempo real e utilizando a linguagem C, dos

algoritmos descritos anteriormente.

Primeiramente realizou-se uma aplicação que permite detectar a localização do orador com

taxa de actualização de aproximadamente 375ms, fornecendo uma estimativa do ângulo com

erro de 3 graus.

Por fim, foram medidos os desempenhos dos algoritmos em tempo real, concluindo-se que se

consegue através de um computador, direccionar a sensibilidade do AM para o orador, com

uma taxa de actualização de 375 ms.

O desempenho do algoritmo delay and sum revela-se pouco eficaz, facto que se deve à fraca

resolução espacial do AM para frequências inferiores a 500 Hz (nesta banda de frequências

encontra-se o ruído ambiente e 80% da energia dos sinais de fala).

Palavras-chave:

Correlação, Transformada de Fase, Filtragem Espacial, Localização de um Orador, Agregados

de Microfones.

Page 6: Sistema adaptativo de controlo da directividade de um

iv

Page 7: Sistema adaptativo de controlo da directividade de um

v

ABSTRACT

The purpose of this work is the conception of a system for speech acquisition, capable of

detecting a speaker localization and to target the directivity of the system in that direction, thus,

allowing the speaker to move freely without the need to be close to the sound acquisition

system.

In this work, a microphone array (MA) with 64 linearly spaced microphones, placed 2 cm apart,

was built. To evaluate the performance of the system, several tests were performed on its

electrical components.

The next step, was the development of two algorithms: crossed correlation between signals (to

detect the localization of the speaker), and the delay and sum (spatial filtering), both

implemented in Matlab, with real data captured by the system. The results have shown an

agreement with existing theory.

The described algorithms, were newly implemented in the C language and tested in real time.

An application that is capable of detecting the speaker direction (±3 degrees error rate) with a

refresh rate of 375 ms was developed.

Finally, the algorithms performance was measured in a real time environment, supporting the

hypothesis of targeting the sensitivity of the MA to the speaker approximately 2.5 times per

second, using a generic personal computer. The delay and sum performance shows some

inefficiency, given the weak spatial resolution of the MA to frequencies less than 500 Hz (where

most of the ambient noise is, and where 80% of the speech signals energy is present).

Keywords

Correlation, PHAT, Beamforming, Speaker Localization, Microphone Array.

Page 8: Sistema adaptativo de controlo da directividade de um

vi

Page 9: Sistema adaptativo de controlo da directividade de um

vii

ÍNDICE

Agradecimentos ...................................................................................................................... i

Resumo ..................................................................................................................................iii

Abstract ...................................................................................................................................v

Índice ..................................................................................................................................... vii

Lista de Figuras ....................................................................................................................... ix

Lista de Tabelas ...................................................................................................................... xi

Lista de Acrónimos ............................................................................................................... xiii

1. Introdução ...................................................................................................................... 1

1.1. Enquadramento ............................................................................................................ 1

1.2. Resenha do Estado da Arte ........................................................................................... 2

1.3. Descrição do trabalho efectuado .................................................................................. 6

1.4. Descrição sumária de algoritmos basilares utilizados em AM ...................................... 7

1.4.1. Algoritmo TDOA .................................................................................................... 7

1.4.2. Algoritmo SRP .................................................................................................... 10

1.5. Estrutura do trabalho ................................................................................................. 12

2. Descrição do sistema .................................................................................................... 13

2.1. Projecto e Funcionamento do Agregado de Microfones ............................................. 13

2.2. Versão original da Microboard ................................................................................... 15

2.2.1. Motivações e consequentes alterações na Microboard ...................................... 18

2.3. Descrição da Microboard construída neste projecto .................................................. 21

2.3.1. Descrição do funcionamento .............................................................................. 21

2.3.2. Montagem e desenho PCB ................................................................................. 25

2.3.3. Características técnicas ...................................................................................... 26

2.4. Motherboard .............................................................................................................. 28

2.5. Calibração dos ganhos dos amplificadores ................................................................. 35

2.5.1. Método utilizado .................................................................................................. 36

2.5.2. Resultados .......................................................................................................... 37

3. Algoritmos implementados no Sistema construído ....................................................... 41

3.1. Algoritmos de Localização .......................................................................................... 41

3.1.1. GCC – Generalized Cross Correlation ................................................................ 45

3.1.2. GCC-PHAT ......................................................................................................... 46

3.1.3. Resultados .......................................................................................................... 47

3.2. Algoritmo de filtragem espacial ................................................................................. 50

Page 10: Sistema adaptativo de controlo da directividade de um

viii

3.2.1. Limitações do Sistema ........................................................................................ 50

3.2.2. Implementação do algoritmo “Delay and Sum” ................................................... 51

3.3. Implementação de algoritmos em tempo real............................................................ 53

3.3.1. Aplicação para localização do orador ................................................................. 54

3.3.2. Modelo proposto e resultados............................................................................. 58

4. Conclusões e trabalho futuro ........................................................................................ 63

5. Referências ................................................................................................................... 65

Page 11: Sistema adaptativo de controlo da directividade de um

ix

LISTA DE FIGURAS

Figura 1.2.1 - Protótipo de um agregado de microfones construído no MIT em 2004.................. 3

Figura 1.2.2 - Esquema do sistema desenvolvido pela empresa Signalogic. ............................... 4

Figura 1.2.3 - AM de 64 microfones produzido pelo NIST. ........................................................... 5

Figura 1.2.4 – Câmara e agregado de 2 microfones USB da CreativeLabs. ................................ 5

Figura 1.3.1 - AM de 64 microfones construído neste trabalho. Em cima, fotografia com vista de

cima, em baixo, fotografia com vista em perspectiva. .................................................................. 6

Figura 1.4.1 – Cenário para localização com TDOA. ................................................................... 8

Figura 1.4.2 – Representação do algoritmo beamforming. ........................................................ 11

Figura 2.1.1 - Arquitectura do AM realizado. .............................................................................. 14

Figura 2.2.1 - Placa Microboard original. .................................................................................... 15

Figura 2.2.2 – Esquema eléctrico do andar de amplificação de um canal (versão original). ...... 16

Figura 2.2.3 – Esquema eléctrico do andar de digitalização da versão original. ........................ 17

Figura 2.2.4 – Circuito de alimentação e de conexão à placa Motherboard da versão original da

microboard. ................................................................................................................................ 18

Figura 2.3.1 - Fotografia de uma das placas microboard construídas neste projecto. ............... 21

Figura 2.3.2 – Andar de amplificação na versão modificada. ..................................................... 21

Figura 2.3.3 – Andar de digitalização na versão modificada. ..................................................... 22

Figura 2.3.4 – Esquema indicativo do formato dos dados nas saídas do conversor AD. ........... 23

Figura 2.3.5 – Buffer que cria tensão para massa virtual de 2,5V. ............................................. 23

Figura 2.3.6 – Circuito de alimentação da microboard modificada. ............................................ 24

Figura 2.3.7 - Ligação para fonte de alimentação dos microfones. ............................................ 24

Figura 2.3.8 - Desenho do circuito PCB. Camada superior em cima, camada inferior em baixo.

................................................................................................................................................... 25

Figura 2.3.9 – Resposta em frequência dos microfones (encontra-se na datasheet). ............... 26

Figura 2.3.10 – Sensibilidades dos microfones em função da frequência (encontra-se na

datasheet). ................................................................................................................................. 26

Figura 2.3.11 - Resposta em frequência do andar de Amplificação. .......................................... 27

Figura 2.4.1 - Fotografia da Motherboard. .................................................................................. 28

Figura 2.4.2 – Ilustração do funcionamento da Motherboard. .................................................... 29

Figura 2.4.3 – Esquema eléctrico da Alimentação da Motherboard. .......................................... 30

Figura 2.4.4 – Fotografia do adaptador de memória construído. ............................................... 31

Figura 2.4.5 - Bloco de aquisição de dados e envio de sinais de controlo. ................................ 32

Figura 2.4.6 – Formato da Trama UDP. ..................................................................................... 33

Figura 2.4.7 - Significado dos Leds da Motherboard. ................................................................. 34

Figura 2.5.1 – Fotografia do AM suportado por um tripé. ........................................................... 36

Figura 2.5.2 – Disposição dos diversos elementos durante a calibração. .................................. 37

Figura 2.5.3 - Gráfico dos ganhos relativos para uma fonte sonora de ruído branco. ................ 38

Figura 2.5.4 - Imagem do programa “osciloscope” depois de AM estar calibrado. .................... 38

Figura 2.5.5 – Gráfico dos ganhos obtidos com sinal de fala. .................................................... 39

Figura 3.1.1 - Referência para o cálculo do ângulo da direcção do orador, (planta). ................. 42

Figura 3.1.2 - Disposição dos elementos no laboratório do SIPS, aquando a captura de teste

para algoritmos de localização. .................................................................................................. 42

Figura 3.1.3 - Sinal capturado pelo microfone de referência Mic1 e pelo Mic18. ....................... 43

Figura 3.1.4 – Relação entre o ângulo calculado e o atraso obtido após correlação entre os

sinais dos microfones #1 e #18. ................................................................................................. 44

Figura 3.1.5 - Resultado da Correlação com GCC. .................................................................... 45

Page 12: Sistema adaptativo de controlo da directividade de um

x

Figura 3.1.7 - Resultado da correlação com GCC – PHAT. ....................................................... 47

Figura 3.1.8 - Resultados de GCC-PHAT e GCC para orador a 300. ......................................... 48

Figura 3.1.9 - Resultados de GCC-PHAT para orador a 900. ..................................................... 49

Figura 3.1.10 - Relação entre o ângulo calculado e o atraso obtido após correlação entre os

sinais dos microfones #1 e #64. ................................................................................................. 49

Figura 3.2.1 – Algoritmo Delay and Sum. ................................................................................... 51

Figura 3.2.2 – Disposição dos elementos durante captura de teste para aplicação do algoritmo

Delay and Sum. .......................................................................................................................... 52

Figura 3.2.3 – Gráficos com sinal resultante do Delay and Sum (esquerda) e sinal no microfone

#1. .............................................................................................................................................. 53

Figura 3.3.1 – Diagrama explicativo da aplicação para detecção do orador. ............................. 54

Figura 3.3.2 - Ambiente gráfico da aplicação para localização do orador. No caso desta

imagem, o orador encontra-se na direcção correspondente a 90 graus. ................................... 56

Figura 3.3.3 – Gráfico que traduz o seguimento de um orador que se desloca a uma distância

de 1,5m do AM no perímetro entre -180 e 0 graus..................................................................... 57

Figura 3.3.4 – Modelo proposto. ................................................................................................ 58

Figura 3.3.5 – Funcionamento de um buffer circular. ................................................................. 59

Page 13: Sistema adaptativo de controlo da directividade de um

xi

LISTA DE TABELAS

Tabela 2.4.1 - Consumo energético do AM (alimentado a 6V). .................................................. 31

Tabela 2.4.2 - Leds indicadores do estado do AM. .................................................................... 34

Tabela 3.3.1 – Tempos reais dispendidos pela aplicação de localização de um orador. ........... 57

Tabela 3.3.2 - Tempos reais dispendidos pela rotina de beamforming. ..................................... 60

Tabela 3.3.3 - Tempos reais dispendidos pela rotina de cálculo dos atrasos. ........................... 60

Page 14: Sistema adaptativo de controlo da directividade de um

xii

Page 15: Sistema adaptativo de controlo da directividade de um

xiii

LISTA DE ACRÓNIMOS

AM Agregado de Microfones

BOOTP Bootstrap Protocol

DFT Discrete Fourier Transform

DHCP Dynamic Host Configuration Protocol

DSP Digital Signal Processor

FFT Fast Fourier Transform

GCC Generalized Cross Correlation

IFFT Inverse Fast Fourier Transform

MAC Media Access Control

MIT Massachusetts Institute of Technology

NIST National Institute of Standards and Technology

PCB Printed Circuit Board

PHAT Phase transform

PROM Programmable Read Only Memory

RAM Random Access Memory

SMD Surface Mount Device

SNR Signal to Noise Ratio

SRP Steered Response Power

TDOA Time Delay of Arrival

UDP User Datagram Protocol

VHDL VHSIC Hardware Description Language

VHSIC Very High Speed Integrated Circuit

Page 16: Sistema adaptativo de controlo da directividade de um

xiv

Page 17: Sistema adaptativo de controlo da directividade de um

1

1. INTRODUÇÃO

Neste capítulo será efectuado um enquadramento acerca do assunto que este trabalho aborda.

Serão referidos alguns projectos de agregados de microfones (passa a designar-se AM) de

modo a elucidar o estado da arte. É realizada uma descrição sumária do trabalho realizado.

São descritos algoritmos basilares utilizados no processamento de sinais provenientes de um

AM. Por último, é efectuada a enumeração e descrição sumária do conteúdo dos diferentes

capítulos que constam neste documento.

1.1. Enquadramento

Um agregado de microfones é um dispositivo constituído por diversos microfones separados

entre si por uma distância, e com uma certa geometria que pode ser não uniforme. Para

capturar e processar os dados provenientes deste agregado é necessário conectá-lo a um

computador ou a um processador digital de sinal (DSP), ou então, o próprio AM terá que conter

um bloco de processamento.

Um AM pode ser ambiciosamente encarado como um dispositivo capaz de reproduzir as

capacidades auditivas de um ser humano. As pessoas possuem um complexo sentido auditivo

que não se consegue, de forma alguma, reproduzir com apenas dois microfones (simulando os

2 ouvidos). Para contrariar este factor recorre-se ao uso de vários microfones. Um indivíduo

consegue facilmente localizar a direcção do som que está a ouvir, isto porque o ser humano

tem 2 ouvidos e ouve a duas dimensões. No entanto, saber com exactidão a distância a que se

encontra a fonte sonora, é impossível para um ser humano. Com um AM contendo os

microfones correctamente colocados espacialmente para esse fim, poder-se-á obter a

localização da fonte sonora em 3 dimensões, sabendo-se a sua direcção e a sua distância.

Usando alguns princípios da propagação do som, o AM pode ser utilizado para diversas

aplicações tais como: cancelamento de ruído, reconhecimento de fala, localização de uma

fonte sonora, microfone hands-free, etc. Um método para localizar uma fonte sonora com um

AM consiste em estimar o tempo que a onda sonora demora a chegar aos diferentes

microfones. Sabendo esse atraso e, naturalmente, a velocidade de propagação da onda

acústica no ar, consegue-se, através de uma simples relação geométrica, deduzir a direcção

do orador. O tempo de atraso pode ser calculado, por exemplo, através da correlação entre os

sinais que chegam aos microfones. O método de correlação que se aplica nos AM é

semelhante ao usado pelos radares de velocidade. Neste caso, é calculado o tempo de atraso

entre o sinal emitido pelo radar e esse mesmo sinal reflectido pelo alvo.

Page 18: Sistema adaptativo de controlo da directividade de um

2

Após obtermos o atraso entre os sinais de cada microfone pode utilizar-se o AM para melhorar

o sinal de interesse (geralmente a fala). Uma das técnicas usadas é o algoritmo delay and sum

que utiliza a técnica beamforming1 [1] que consiste em alinhar os sinais de todos os microfones

(ou seja, pôr os sinais em fase) de acordo com uma determinada direcção. Depois de alinhar

os sinais, eles são somados obtendo-se assim, uma nítida melhoria na relação sinal-ruído

(SNR). Deste modo, o sinal de interesse, sendo estacionário, é correlacionado e irá somar-se

construtivamente. No entanto, o ruído branco não se correlaciona com a fala e provavelmente

irá somar-se na mesma proporção de forma construtiva ou destrutiva, resultando na

manutenção ou eventual redução da sua potência.

Quanto ao reconhecimento de fala, pode dizer-se que é uma área em constante evolução,

desenvolvendo-se investigação no sentido de se fomentar a sua utilização com qualidade e de

forma robusta. Muitas aplicações de software, já têm comandos de voz integrados e funcionam

de forma satisfatória sendo, no entanto, necessário ter um microfone “close-talk” [2] que

proporcione a captura do som do orador com uma boa relação sinal-ruído. Para dar mais

alguma flexibilidade ao utilizador destas aplicações poder-se-á usar um AM para que estas

aplicações funcionem de forma igualmente aceitável sem ser necessário um microfone “close-

talk”. Neste contexto, um AM, poderá ter utilização também em domótica. Um exemplo será o

caso de um utilizador poder andar pela sua casa a dar ordens aos seus equipamentos

electrónicos verbalmente, sem se preocupar com a localização dos microfones.

Com a evolução das tecnologias relativas ao processamento de fala, tornam-se necessários

equipamentos cada vez mais robustos e eficientes na aquisição de fala. Contudo, o uso de AM

não traz só vantagens, e é importante salientar que existem inconvenientes tais como, o custo

acrescido em relação aos microfones “close-talking”, elevados requerimentos de

processamento, etc. No entanto, essas desvantagens poder-se-ão tornar insignificantes com o

aumento da investigação nesta área, que revela resultados cada vez mais promissores.

1.2. Resenha do Estado da Arte

O estudo de agregados de microfones e das suas potencialidades é algo que tem sido

desenvolvido por diversas empresas, universidades e instituições de investigação. Diversos

projectos nesta área estão actualmente em curso. Enumeram-se três exemplos de carácter

mais relevante.

O maior agregado de microfones existente no mundo é o AM de 1020 microfones [3] construído

no Massachusetts Institute of Technology.

1 Técnica que permite direccionar a sensibilidade de um agregado de sensores

Page 19: Sistema adaptativo de controlo da directividade de um

3

Figura 1.2.1 - Protótipo de um agregado de microfones construído no MIT em 2004.

A ideia de fazer um agregado desta dimensão baseia-se na teoria de que o desempenho de

um agregado aumenta linearmente com o seu tamanho, dado que o volume de informação que

se retira do agregado será superior (maior número de sensores, microfones). Contudo, para

processar a informação deste agregado2 não é suficiente um só computador, tendo que ser

desenvolvida uma arquitectura própria (primariamente uma rede de computadores) para se

conseguir processar toda a informação resultante em tempo real. Como se pode deduzir, este

agregado possibilitará a localização de múltiplos oradores em 3 dimensões e também a

aplicação de muitos outros algoritmos.

A Signalogic é uma empresa dos Estados Unidos que trabalha na área de processamento

digital de sinal. Também com um projecto de agregado de microfones [4] a decorrer,

implementaram um sistema em que uma câmara de vídeo é direccionada pela informação

proveniente do agregado. O processamento para o cálculo da direcção do orador é feito por um

DSP, e o computador controla o movimento da câmara.

2 Em [3] é referido que este agregado transmite dados a um ritmo de 50 MB /s.

A notação MB significa: 10

6 bytes.

Page 20: Sistema adaptativo de controlo da directividade de um

4

Figura 1.2.2 - Esquema do sistema desenvolvido pela empresa Signalogic.

A ideia base deste projecto consiste num sistema capaz de ser implementado num auditório

que consiga substituir os microfones close talk e concomitantemente dispensar um operador de

câmara, dado que o sistema seria capaz de direccionar a câmara e “amplificar” o som para a

pessoa que estiver a falar no auditório.

Outro projecto nesta área também interessante, foi desenvolvido pelo NIST (National Institute

of Standards and Technology).

O AM construído durante este trabalho, consiste num AM semelhante ao do NIST com

algumas alterações na parte de aquisição de dados como se irá referir nos capítulos seguintes.

O AM do NIST foi criado no âmbito de um projecto denominado Smart Space [5] que tem como

objectivo dotar uma sala de reuniões com tecnologia capaz de sentir actividade humana e

responder. Basicamente, o sistema é composto por uma rede de sensores (208 microfones e 7

câmaras de vídeo) que transmite informação para uma rede de processamento distribuído por

vários computadores. O sistema será capaz de reconhecer fala, direccionar os microfones para

um orador, captar a imagem desse orador, etc. Os 200 GB /hora 3 produzidos pelo sistema têm

que ser necessariamente processados com computação distribuída.

3 Informação fornecida pelo NIST.

A Notação GB significa: 10

9 bytes

Page 21: Sistema adaptativo de controlo da directividade de um

5

Figura 1.2.3 - AM de 64 microfones produzido pelo NIST.

Para além dos protótipos apresentados, existem também disponíveis no mercado, diversos

dispositivos que utilizam agregados de microfones. Estes agregados normalmente são de

apenas 2 microfones e possibilitam ligação plug-n-play ao PC. Permitem que o utilizador fale

sem se preocupar em estar próximo do microfone. Contudo, o processamento efectuado

nestes dispositivos é a simples soma dos sinais, na maioria dos casos, o que corresponde a

um aumento da relação SNR se o orador estiver a falar de frente (porque as ondas sonoras

chegam ao mesmo tempo a cada microfone) e perto do AM.

Figura 1.2.4 – Câmara e agregado de 2 microfones USB da CreativeLabs.

É importante salientar, realçando a actualidade da investigação sobre este assunto, que a

Microsoft lançou documentação [6] de suporte para o uso de agregados de microfones no

sistema operativo Windows Vista. Esta documentação tem como objectivo incentivar

fabricantes destas tecnologias, fornecendo-lhes linhas de orientação para o desenho de

sistemas (hardware e de software) para uso com o Vista.

Page 22: Sistema adaptativo de controlo da directividade de um

6

1.3. Descrição do trabalho efectuado

Este trabalho foi efectuado no grupo de Sistemas Electrónicos de Processamento de Sinal

(SIPS) do INESC-ID.

O objectivo do trabalho foi criar um agregado de microfones para o SIPS e aplicar um algoritmo

de localização de um orador em tempo real utilizando um computador para processar os

dados.

Figura 1.3.1 - AM de 64 microfones construído neste trabalho. Em cima, fotografia com vista de

cima, em baixo, fotografia com vista em perspectiva.

Foi escolhido como base para o projecto, o AM de 64 canais e geometria linear realizado pelo

NIST [7], dado ser um dispositivo com um número suficiente de microfones para poderem ser

realizados diversos estudos e testes. Para além disso, o NIST faculta toda a documentação

relativamente ao AM, estando incluídas algumas bibliotecas de software criadas por eles para

uso em investigação.

No entanto, devido a terem sido encontradas algumas lacunas e inclusive falhas de projecto

neste AM, foi decidido redesenhar o sistema de aquisição de dados. Assim, o AM construído

durante este trabalho foi projectado de forma a corrigir alguns erros de projecto do AM do NIST

e também de forma a minimizar as dimensões e os custos do aparelho.

Grande parte do tempo dispendido para este trabalho foi o projecto e o fabrico do AM. Durante

a fase de projecto, e após ter sido construído o agregado de microfones, realizaram-se

diversos testes para confirmar o funcionamento correcto do sistema desenvolvido.

Após a fase de concepção e de testes para verificar o funcionamento do sistema, iniciou-se um

estudo acerca dos algoritmos aplicáveis a agregados de microfones. Mais especificamente, no

âmbito da localização de um orador. Efectuaram-se diversos scripts em Matlab, de forma a

testar algoritmos de localização com AM, com o objectivo de se encontrar a solução mais

Page 23: Sistema adaptativo de controlo da directividade de um

7

simples e ideal para implementar em tempo real com recurso à linguagem C e utilizando um

único computador.

1.4. Descrição sumária de algoritmos basilares utilizados em AM

Os agregados de microfones têm conduzido a estudos em diversas áreas, tais como,

aplicações de AM no reconhecimento de fala [10], localização de fonte sonora [11] [13] [14]

[16], aparelhos para deficientes auditivos [15], etc. Diversos algoritmos têm sido estudados e

aperfeiçoados, de forma a realizar as funções em cima descritas.

A localização robusta de uma fonte sonora é um objectivo com interesse crescente. Com

utilização em múltiplos cenários, não só onde é necessário direccionar a sensibilidade dos

microfones do AM (filtragem espacial), melhorando a SNR nessa direcção, e evitar o uso de

microfones “close-talk”, mas também, por exemplo, fornecer a direcção de um orador para

apontar uma câmara de filmar automaticamente, localizar a direcção de um orador para dirigir

um robot nessa direcção, detectar a direcção do fogo de artilharia num cenário militar, etc.

Os diversos algoritmos utilizados para efectuar localização encontram-se distribuídos

essencialmente em 2 grandes grupos [16]. O primeiro é baseado no cálculo directo do atraso4

com que a onda sonora chega a cada microfone do AM. O segundo baseia-se em encontrar

esse atraso obtendo a direcção do sinal com maior energia obtida através de um beamforming5

realizado para diversas direcções, este algoritmo é denominado por Steered Response Power

(SRP).

Assim, neste subcapítulo pretende-se fazer uma breve abordagem, alusiva à localização de

uma fonte sonora, para fazer um enquadramento das funcionalidades de um AM. Foi escolhido

este tema porque, como veremos, está intimamente relacionado com todos os outros.

Pretende-se assim, apresentar os dois algoritmos utilizados em AM, que foram a base para os

algoritmos implementados no AM construído.

1.4.1. Algoritmo TDOA

O TDOA é uma técnica que tem sido bastante explorada e utilizada no cenário dos agregados

de microfones. Isto, devido à sua comprovada eficácia em sistemas de radar, sonar, agregados

de antenas, etc. No entanto, nestes sistemas, a banda de frequência é estreita e a SNR é

4 Designado em inglês como TDOA (time delay of arrival).

5 Beamforming é uma técnica de filtragem espacial, que consiste em dirigir a sensibilidade de um conjunto

de sensores numa dada direcção.

Page 24: Sistema adaptativo de controlo da directividade de um

8

elevada. Por outro lado, no caso da localização de um orador com AM, a situação torna-se

mais complicada, dado que no interior de um edifício existe sempre demasiado ruído acústico e

o sinal de fala é considerado de banda larga. Existe também, o problema de reverberações

excessivas dentro de uma sala, o que torna o problema sempre mais complexo do que numa

situação de espaço livre ou semelhante. Para além destes factores, no processamento de sinal

em radares ou agregados de antenas, é assumido que o sinal vem sob a forma de onda plana,

e muitas vezes no processamento com AM isso não acontece, podendo a onda ser esférica

devido às distâncias inferiores entre o emissor e o receptor. Deste modo, é necessário fazer

processamento dedicado a cada tipo de ambiente6, de forma a obter bons resultados.

Este algoritmo, como se observa na figura seguinte, assume uma situação de onda plana.

Figura 1.4.1 – Cenário para localização com TDOA.

Analisando a Figura 1.4.1, conclui-se que sabendo a distância d entre o par de microfones X1 e

X2, a frequência de amostragem (Fs) de captura do sinal, a velocidade de propagação das

ondas acústicas (c), e calculando o atraso () com que o sinal chega a cada microfone, poder-

se-á estimar a direcção da fonte sonora através da expressão:

( 1.4.1)

Como se constata na equação (1.4.1), neste algoritmo, a exactidão com que se calcula o

atraso com que o sinal chega aos microfones influencia a precisão na localização do orador.

Este atraso é o denominado TDOA, sendo que o cálculo do TDOA com o mínimo de erro é

fundamental. É de notar que este exemplo abrange apenas 2 microfones, dado que o cálculo é

feito com um par de microfones. No entanto, poder-se-á considerar o cálculo dos ângulos

6 Relativamente ao ruído presente (ar condicionado, televisão, etc.) e à forma da sala onde o AM opera.

Page 25: Sistema adaptativo de controlo da directividade de um

9

obtidos com recurso a diferentes pares de microfones de forma a obter uma média dos ângulos

estimados e calcular um ângulo mais preciso.

A correlação cruzada é a técnica mais comum para obter o TDOA. A correlação é máxima

quando os sinais são semelhantes, assim, esse máximo indica a diferença do tempo de

chegada do sinal aos microfones.

Considerando o sinal proveniente de uma fonte sonora recebido no microfone i, com

atraso i,

( 1.4.2 )

Em que, é o sinal recebido no microfone i, e é o ruído.

A relação cruzada no domínio do tempo, entre os sinais X1 e X2 respectivos aos 2 microfones

é dada por:

( 1.4.3 )

Para reduzir o tempo de computação necessário a correlação é implementada no domínio da

frequência para aproveitar os algoritmos rápidos da FFT (Fast Fourier Transform). Depois de

efectuada a correlação é calculada a transformada inversa de Fourier para voltar ao domínio do

tempo e obter-se o TDOA.

( 1.4.4 )

( 1.4.5 )

Na expressão anterior, Conj significa o complexo conjugado. O máximo valor de

corresponde ao TDOA.

As expressões anteriores estão no domínio de tempo contínuo. No entanto, neste tipo de

aplicações, o tempo é discreto dado que o sistema é digital. Assim, fazer os cálculos no

domínio da frequência é computacionalmente vantajoso, dado que a transformada discreta de

Fourier pode ser calculada com recurso ao rápido algoritmo FFT.

Em tempo discreto, a expressão equivalente à anterior é:

( 1.4.6 )

Significando que a correlação é realizada numa janela de k amostras. O valor N, depende da

frequência Fs com que os sinais dos microfones são amostrados, e representa o número de

amostras que são necessárias analisar para procurar o máximo da correlação.

Page 26: Sistema adaptativo de controlo da directividade de um

10

( 1.4.7 )

Na equação (1.4.7) o valor d é a distância entre os dois microfones e c é a velocidade do som.

Assim, como se pode observar, quanto maior for a frequência de amostragem ou a distância

entre microfones, maior será a resolução com que se calcula a direcção da fonte sonora, uma

vez que o número de amostras que representam o TDOA será maior. No entanto, existem

contrapartidas. Quanto maior for a distância entre microfones, maior terá que ser a distância

entre estes e a fonte sonora, para que a situação seja de onda plana. Existe também o facto do

resultado da correlação poder eventualmente piorar, com o aumento da distância entre

microfones. Isto pode acontecer devido às alterações sofridas no sinal, dado o maior percurso

da onda acústica.

Os algoritmos com base no TDOA são computacionalmente pouco exigentes, sendo por isso

uma boa opção para aplicações em tempo real. No entanto, é um algoritmo pouco eficaz para

realizar detecção de vários oradores, e para além disso, obtém resultados relativamente fracos

em situações de ruído excessivo e em ambientes onde existe muita reverberação.

Como se verá no capítulo 3, existem variações deste algoritmo que permitem melhorá-lo de

forma significativa. Serão também demonstradas implementações efectuadas no AM

construído, e apresentados os resultados para as diferentes variações do algoritmo.

1.4.2. Algoritmo SRP

Este algoritmo tem por base a técnica de beamforming. Esta técnica é uma das formas mais

utilizadas para fazer filtragem espacial. A necessidade de realizar filtragem espacial surge

principalmente, quando o ruído e o sinal de interesse ocupam a mesma banda de frequências.

Nesse caso, a comummente utilizada filtragem no domínio da frequência, não pode ser

utilizada para separar o sinal desejado do ruído. A filtragem espacial requer que os sinais e o

ruído sejam adquiridos também no domínio do espaço e, neste caso, analogamente ao domínio

da frequência, existe a necessidade de que o sinal e o ruído estejam separados no espaço.

O algoritmo para realizar beamforming mais utilizado é o Delay and Sum. Tal como o nome

indica, este algoritmo consiste em somar os sinais que chegam aos sensores depois destes

serem atrasados. O atraso que se impõe no sinal de cada sensor, varia consoante a direcção

da fonte sonora que se pretende captar. Neste caso, é assumido também que a onda sonora é

plana quando chega aos microfones.

Page 27: Sistema adaptativo de controlo da directividade de um

11

Figura 1.4.2 – Representação do algoritmo beamforming.

Na Figura 1.4.2 representa-se a realização de beamforming sabendo à partida qual o atraso

entre os sinais, dado que nas saídas y, os sinais se encontram em fase. Como se verifica, os

sinais são atrasados de forma a ficarem em fase sendo, de seguida, somados. Visto que o

sinal de interesse é semelhante nos vários canais, ou seja, é correlacionado, então esse sinal

será somado construtivamente, sendo amplificado. No entanto, o ruído presente nos diversos

canais é geralmente não correlacionado, e por isso, após a soma dos sinais, o ruído não é

amplificado. Teoricamente a soma do ruído será, de forma equi-provável, construtiva ou

destrutiva, resultando na manutenção do ruído, e assim, no aumento da SNR.

O algoritmo SRP consiste em realizar beamforming para diferentes valores de atraso e,

consequentemente, várias direcções. Assim, a direcção para a qual a soma dos sinais for

maior, representa a direcção com maior energia, que provavelmente é a direcção do orador.

Para se obterem bons resultados com beamforming é necessário que os atrasos sejam

precisos, ou seja, que correspondam efectivamente à direcção desejada. Convém salientar,

que de modo a realizar todos estes processamentos nos sinais, estes sistemas são digitais.

Por isso, o que realmente é processado são as amostras dos sinais, existindo sempre a

limitação da resolução espacial devido à frequência de amostragem. Ou seja, os incrementos

nos atrasos terão resolução dada pelo período de amostragem. Esta limitação pode ser

atenuada, aumentando a frequência de amostragem, ou então, realizando interpolação entre

amostras para obter atrasos com resolução superior.

Outra limitação, pelo facto de se ter um sistema digital, é o típico “aliasing” dos sinais, devido

ao teorema da amostragem que diz que apenas se conseguem reconstruir os sinais que têm

uma frequência inferior a metade da frequência de amostragem. Algo semelhante acontece em

AM, e provoca aliasing espacial, condicionando o espaçamento entre microfones. De forma

Page 28: Sistema adaptativo de controlo da directividade de um

12

análoga, o espaçamento entre microfones tem que ter no mínimo metade do comprimento de

onda da maior frequência presente.

O SRP torna-se um algoritmo computacionalmente exigente, quando aplicado de forma a obter

uma boa estimativa da direcção do orador, conseguindo, no entanto, bons resultados em

ambientes reverberantes e com ruído moderado [16]. Para além disso, é um algoritmo que

realiza a detecção do orador efectuando filtragem espacial, o que permite obter para além da

direcção do orador, uma melhoria na relação SNR.

1.5. Estrutura do trabalho

O presente documento encontra-se estruturado por capítulos da seguinte forma:

Capitulo 1 - No presente capítulo é realizada uma introdução ao trabalho. Primeiro é

efectuado um enquadramento do tema discutido neste trabalho. De seguida,

apresenta-se uma resenha do estado da arte, descrevendo outros projectos realizados

nesta área. É efectuada uma descrição sumária do trabalho efectuado, e por último são

descritos algoritmos basilares utilizados em AM, no âmbito da estimativa do tempo do

atraso entre sinais e da filtragem espacial.

Capitulo 2 - Descreve-se todo o sistema construído. Primeiramente dá-se uma visão

geral acerca do sistema desenvolvido. Depois, são detalhados os diversos circuitos

eléctricos que compõem o sistema. Por último é descrito o método para calibrar o

sistema.

Capitulo 3 - São demonstrados exemplos de implementação de algoritmos e

resultados obtidos no sistema construído. Os algoritmos implementados foram a

correlação cruzada para estimar os atrasos entre os sinais nos vários microfones do

AM e o algoritmo de filtragem espacial denominado beamforming utilizando a técnica

delay and sum. Por fim, são referidos os resultados obtidos com processamento dos

algoritmos em tempo real.

Capitulo 4 - São referidas as principais conclusões retiradas do trabalho realizado e

trabalhos futuros.

Page 29: Sistema adaptativo de controlo da directividade de um

13

2. DESCRIÇÃO DO SISTEMA

Como já foi referido, o AM construído neste trabalho, tem como base o AM produzido pelo

NIST, tendo sido feitas alterações apenas nas placas de aquisição de dados, uma vez que foi

identificado um erro de projecto e detectadas algumas lacunas relativamente ao que se

pretendia no sistema desenvolvido.

É de relembrar também que a microboard é uma placa electrónica que constitui o módulo de

aquisição de dados deste AM (composto por 8 placas microboard).

Neste capítulo encontra-se descrito todo o sistema construído neste trabalho. Primeiramente é

dada uma visão geral sobre o sistema em causa. De seguida é descrita em pormenor a versão

original, e posteriormente a versão modificada das placas de aquisição de dados. É também

efectuada a descrição do funcionamento da motherboard. Por último, é demonstrado o

processo utilizado para calibração das sensibilidades dos microfones.

2.1. Projecto e Funcionamento do Agregado de Microfones

O AM construído neste trabalho tem uma geometria linear e é constituído por um módulo de

aquisição de dados e um módulo de controlo e comunicação. O módulo de aquisição de dados

é composto por 8 placas de circuito impresso7 denominadas à semelhança do projecto do NIST

por microboards, e o módulo de controlo e comunicação constitui-se numa só placa

denominada motherboard. Basicamente, cada microboard é constituída por 8 microfones que

capturam os sinais sonoros, que serão amplificados e convertidos em formato digital. Os sinais

digitais de cada canal (8 por cada microboard), são enviados para a motherboard, que ao

mesmo tempo, controla e sinaliza a comunicação com os conversores analógico digitais (AD)

das microboard. A motherboard recebe os dados provenientes das 8 microboard (sendo no

total 64 canais áudio), e coloca-os em pacotes UDP8 para serem enviados por Ethernet. Como

núcleo central da motherboard utiliza-se uma FPGA (Field Programmable Gate Array) Spartan–

II da Xilinx.

7 Denomina-se em Inglês por PCB (Printed circuit board).

8 UDP é um acrónimo do termo inglês User Datagram Protocol que significa protocolo de datagramas de

utilizador. O UDP faz a entrega de mensagens independentes entre aplicações.

Page 30: Sistema adaptativo de controlo da directividade de um

14

Figura 2.1.1 - Arquitectura do AM realizado.

Este AM captura sinais de áudio que são convertidos em sinais digitais com 24 bits com

frequências de amostragem de 22050 ou 44100 kHz. Quando ligado a um computador, a

comunicação é feita por Ethernet, utilizando-se assim comunicação por sockets para controlar

o AM e para receber dados deste.

Quando se liga o AM, este faz um pedido de BOOTP (Bootstrap Protocol) na rede ao qual está

ligado, sendo necessário que haja um computador servidor de DHCP (Dynamic Host

Configuration Protocol) que permita atribuir ao AM um IP pré-definido. Assim, o AM fica

conectado ao computador, sendo possível controlá-lo através deste. Através do computador é

possível escolher qual a frequência de amostragem pretendida, definir se o AM trabalha no

modo master ou slave, dar inicio à captura, etc.

Este AM poderá ser ligado a, pelo menos, mais 4 em cadeia, dado que existe a possibilidade

de ligar dois AM e existirem sinais para sincronismo entre motherboards. Assim, poder-se-ão

ter 256 microfones a capturar em simultâneo.

O NIST desenvolveu documentação [8] detalhada acerca dos passos a seguir para ligar o AM

ao computador. Para além disso, o NIST também disponibiliza algumas Bibliotecas de software

em linguagem C, desenvolvidas para ambiente Linux para capturar dados do AM. Existe

também um programa denominado “osciloscope” que permite visualizar e ouvir os sinais

produzidos por cada microfone.

Page 31: Sistema adaptativo de controlo da directividade de um

15

2.2. Versão original da Microboard

Figura 2.2.1 - Placa Microboard original.

Apesar do custo acrescido, a placa de circuito impresso utilizada nesta microboard é de 4

camadas. Desta forma, é possível estabelecer 2 planos dedicados à alimentação, o plano de

massa (GND) e de alimentação (VCC), reduzindo assim a possibilidade de haver interferências

electromagnéticas entre a alimentação e os sinais. Os microfones têm um espaçamento de 2

cm entre eles. Assim, obtém-se um AM com 130cm de comprimento (dado que no total são 8

microboards, perfazendo um agregado de 64 microfones).

Andar de pré-amplificação

Os microfones utilizados são do tipo “electreto” omnidireccional (modelo Panasonic WM-52B, já

descontinuado). São microfones com boa relação qualidade/preço e que cumprem bem os

requisitos de resposta em frequência para aquisição de voz. Estes microfones necessitam de

uma tensão 1,5 V para alimentar um amplificador interno.

Page 32: Sistema adaptativo de controlo da directividade de um

16

Figura 2.2.2 – Esquema eléctrico do andar de amplificação de um canal (versão original).

Como se observa na Figura 2.2.2, a alimentação dos microfones é de 1,5 V efectuada através

de uma bateria externa de 5 V e das resistências R1,R2 e R3, sendo que o condensador C2

filtra a tensão de alimentação do microfone.

O condensador C3 bloqueia a componente contínua do sinal que entra no amplificador. Nesta

versão é usado um amplificador da série OPA2228 com muito baixo ruído e boa precisão. O

condensador C1 faz filtragem da tensão de alimentação do amplificador. A resistência R6

drena a corrente da entrada do amplificador e juntamente com C3, proporciona filtragem passa-

alto com frequência de corte a aproximadamente 25 Hz.

Como os amplificadores são alimentados com +5 V e GND, é necessário criar uma massa

virtual de 2,5 V (passa a designar-se GND virtual). Isso é feito através de um divisor resistivo

composto por R10 e R13, fazendo os condensadores C7 e C8 o seu desacoplamento para

sinais fracos.

O ganho do andar de amplificação é realizado, como se observa, em dois andares. O primeiro

andar tem um ganho de 100, controlado pelas resistências R7 e R4. O segundo andar tem um

ganho de 1,2 realizado por R11 e R15. É adicionado um potenciómetro de 50 Ω para fazer um

ajuste fino no ganho dos microfones. O último condensador C4 é utilizado também para

remover a componente contínua do sinal.

Page 33: Sistema adaptativo de controlo da directividade de um

17

Andar de digitalização

O andar de digitalização é realizado pelo conversor AD PCM1802 de 24bits.

O circuito de amplificação da Figura 2.2.2 é repetido 8 vezes numa placa microboard. Cada

circuito corresponde a um canal analógico. Como os conversores AD utilizados são estéreo,

ter-se-á 1 AD por cada dois circuitos de amplificação (2 microfones correspondentes às

entradas esquerda e direita do AD), perfazendo um total de 4 conversores AD por cada

microboard.

Figura 2.2.3 – Esquema eléctrico do andar de digitalização da versão original.

Este conversor utiliza modulação sigma-delta e é ideal para conversão de sinais de áudio de

precisão.

Os sinais de controlo LRCK, BCK e SCKI são o sinal de amostragem, bit clock (relógio dos bits

de dados) e a frequência do sistema, respectivamente.

O autor deste projecto (elemento do NIST) refere que no esquema da Figura 2.2.3, as ligações

são todas de acordo ao datasheet9 do conversor AD. No entanto, foi detectada uma

discordância nesta afirmação. Detectou-se que tudo estava de acordo com a datasheet,

excepto o sinal FSYNC que está ligado a VCC (5 V). Contudo, na datasheet o limite máximo de

tensão neste pin será de VDD+0,3 V (3,3+0,3=3,6 V, neste caso). Depois de alguns testes com

uma placa desta versão original, notou-se que este erro de projecto fazia com que a tensão

VDD estivesse a 4,2 V e não a 3,3 V, como seria de esperar. Na versão alterada, como se

9 Documento de características do componente.

Page 34: Sistema adaptativo de controlo da directividade de um

18

observará adiante, o pin FSYNC foi ligado ao VDD como é indicado na datasheet, e a tensão

VDD ficou, como era esperado, a 3,3 V.

Circuito de Alimentação

Esta parte do circuito fornece a alimentação digital e analógica para toda a microboard.

Figura 2.2.4 – Circuito de alimentação e de conexão à placa Motherboard da versão original da

microboard.

Foram usados 2 reguladores de tensão, LM2940 REG1117 para os 5 V (VCC) e 3,3 V (VDD),

respectivamente.

As fichas de conexão entre a motherboard e microboard são de 16 pinos, mas 8 desses pinos

estão ligados à massa. Acresce ainda 4 pinos para levar os sinais de dados provenientes dos

conversores AD à motherboard. Os 4 pinos restantes conduzem os sinais de controlo vindos da

motherboard e a alimentação para as microboards. O cabo de ligação é plano (designado “flat-

cable”) e por isso existe um fio ligado à massa entre cada fio que transporta um sinal, de forma

a reduzir a possibilidade de interferências.

2.2.1. Motivações e consequentes alterações na Microboard

A primeira razão pela qual foi redesenhada a placa microboard está relacionada com o erro de

projecto encontrado (referido na página anterior), em que os conversores AD têm o pino

FSYNC ligado a VCC, ao invés de VDD. Esta situação provocou uma situação anormal,

colocando o hardware em esforço (dado que aparentemente tudo funcionava correctamente),

de se ter a alimentação digital a 4,2 V, em vez dos 3,3 V que seriam de esperar na saída do

regulador de tensão REG1117 presente em cada microboard. Para além deste importante

factor, verificou-se que o espaço na placa microboard original poderia ter sido melhor

aproveitado, podendo a dimensão da placa ser reduzida substancialmente para uma área 3

Page 35: Sistema adaptativo de controlo da directividade de um

19

vezes inferior. Ao reduzir a dimensão da placa, o tamanho das pistas eléctricas foi reduzido,

diminuindo assim a possibilidade de interferências electromagnéticas.

A versão original é realizada numa placa de 4 camadas, algo que se verificou ser um excesso

para este tipo de aplicação, dado que, redesenhando a placa em 2 camadas com algum

cuidado em manter distâncias entre os sinais e as alimentações, não haveria problemas visto

que as frequências de operação são relativamente baixas. Assim, o facto de a placa passar a

ter 2 camadas, reduz significativamente o seu custo, sem no entanto alterar o desempenho do

sistema.

Outro problema detectado foi o facto do amplificador operacional escolhido ser demasiado caro

devido às suas características. O principal motivo que levou a concluir ser desnecessário o

amplificador da série OPA2228, prende-se com a situação do ruído introduzido pelos

microfones ser muito superior ao introduzido pelos amplificadores, tornando inúteis as boas

características destes amplificadores operacionais. As características que se consideraram

exageradas no OPA2228, foram a largura de banda de 33 MHz e a taxa de inflexão (slew rate)

de 10 V/us. A largura de banda necessária, na versão original, seria apenas o produto entre o

ganho máximo do amplificador e a frequência máxima em que ele iria operar. O que para a

versão original daria um resultado de:

( 2.2.1 )

O maior ganho no andar de amplificação na versão original é 100 e a frequência máxima do

sinal que entra no amplificador é da ordem dos 20 kHz para sinais áudio. Assim, verifica-se que

apenas seria preciso um amplificador com largura de banda de 2 MHz. O slew rate também é

excessivo, como se constata pela expressão seguinte:

( 2.2.2 )

O valor de Amax é a amplitude máxima (em Volts) que poderemos ter na saída do amplificador,

fmax é a máxima frequência desse sinal. O valor de slew rate obtido é o valor mínimo para não

haver distorção na banda passante. No entanto, é recomendado multiplicar este valor por 4, de

forma a garantir a não existência de distorção no sinal devido a slew rate. Assim, o valor

recomendado seria:

( 2.2.3 )

Como se comprova, o amplificador escolhido para a versão original, é excessivamente bom

para esta aplicação. A escolha para a versão modificada recaiu no amplificador operacional

OPA2374AID, dada a sua relação qualidade preço. Apresenta uma largura de banda de 6,5

MHz e slew rate de 5 V/us. Este amplificador foi a solução ideal encontrada, devido ao seu

custo reduzido, e ter características adequadas ao pretendido. Como se verá, apenas se

utilizou um amplificador por cada microfone, e não dois como na versão original. O objectivo de

Page 36: Sistema adaptativo de controlo da directividade de um

20

existirem dois amplificadores por canal na versão original é, pelo facto de assim se permitir um

ajuste fino do ganho entre microfones (ganho ajustável de 120 a 125). Contudo, esse ganho foi

projectado para um único tipo de situação, ou seja, um ganho reduzido de modo a permitir ao

AM funcionar numa sala pequena. Todavia, reparou-se que com o ganho tão baixo, não é

possível aproveitar a gama dinâmica dos conversores AD, no caso em que a fonte de som está

mais afastada do AM. Como este AM teria que ser flexível para diversos estudos em diferentes

situações, decidiu-se colocar um único amplificador, em que o ganho pode variar entre

aproximadamente 100 e 300. Assim, pode ser feito um ajuste do ganho, não tão preciso, mas

no entanto, adaptável a diversas situações. Verificou-se que a largura de banda obtida para o

amplificador operacional seria de 6 MHz, como se verifica na seguinte expressão:

( 2.2.4 )

Como se constata, o amplificador das séries OPA2374AID cumpre plenamente os requisitos, e

tem um custo substancialmente inferior ao OPA2228.

Outra das alterações efectuadas foi no circuito que cria a massa virtual de 2,5 V. Na versão

original, existe um divisor resistivo e 2 condensadores (por cada canal) para garantir que não

existem oscilações nessa massa virtual. Contudo, foi tomada a opção de alterar essa parte do

circuito, dado que não seria necessário usar um circuito com 4 componentes por cada canal

para realizar essa função. A opção tomada foi utilizar um seguidor de tensão (buffer com um

amplificador operacional) depois do divisor resistivo, colocando condensadores de 100 nF e

100 uF para garantir a qualidade desse sinal que alimenta todos os canais da microboard,

reduzindo-se significativamente o número de componentes.

Por último, realizou-se uma alteração no filtro RC que corta a componente contínua na entrada

do amplificador operacional. Essa malha RC na versão original tem um condensador de 220 nF

e uma resistência de 30 kΩ, resultando numa frequência de corte dada por:

( 2.2.5 )

No entanto, para não cortar as frequências baixas, havia a possibilidade de aumentar a

capacidade do condensador ou aumentar a resistência, tendo sido tomada a opção de

aumentar a resistência para 300 kΩ, para não aumentar a reactância do condensador,

reduzindo a frequência de corte para 2,4 Hz, um valor aproximado que na prática se revelou

inferior ao valor real, como se observa na Figura 2.3.11 do sub-capítulo 2.3.3.

Durante o redesenho da microboard foram realizados diversos testes em breadboard e

simulações em Pspice, para averiguar o comportamento do novo circuito, testes esses que se

mostraram compatíveis com o esperado. Não serão apresentados esses resultados iniciais,

uma vez que mais à frente serão apresentados os resultados reais, obtidos com a placa

microboard final.

Page 37: Sistema adaptativo de controlo da directividade de um

21

2.3. Descrição da Microboard construída neste projecto

De seguida descreve-se o funcionamento das microboards construídas. Efectua-se uma

descrição dos esquemas eléctricos, e serão mencionadas as características técnicas

resultantes dos testes realizados após a concepção do sistema.

Figura 2.3.1 - Fotografia de uma das placas microboard construídas neste projecto.

2.3.1. Descrição do funcionamento

Andar de Amplificação

Figura 2.3.2 – Andar de amplificação na versão modificada.

Como se observa na Figura 2.3.2 e de acordo com o que foi referido anteriormente, usou-se

apenas um amplificador operacional por cada canal, o que permitiu utilizar um circuito

integrado (contendo dois amplificadores) por cada 2 microfones. Esta alteração fez com que a

corrente consumida por cada microboard fosse inferior à da versão original, o que se traduz

num AM com um consumo energético inferior.

Page 38: Sistema adaptativo de controlo da directividade de um

22

Em cada canal, o divisor resistivo para criar a massa virtual de 2,5 V foi substituído por apenas

um condensador para melhorar a qualidade dessa alimentação, que neste caso, é criada num

único circuito da microboard representado na Figura 2.3.5.

Os microfones utilizados nesta versão não são iguais aos da versão original, dado que esses

foram descontinuados. Foram escolhidos microfones com características idênticas da marca

Projects Unlimited. Estes microfones são omnidireccionais, apresentam 2,2 kΩ de impedância

e uma sensibilidade de -44 (+/- 2) dB na gama de frequências indicada na Figura 2.3.10.

Basicamente, a descrição do funcionamento deste circuito é semelhante à da versão original,

sendo a diferença mais significativa, o ganho elevado que este circuito pode ter face à versão

original. Como já foi explicado, a necessidade de podermos controlar o ganho com uma

margem tão grande, colocando para isso o potenciómetro de 100 kΩ, surge face à versatilidade

desejada para este AM, no sentido de que assim pode ser ajustado para funcionar em salas de

diferentes dimensões.

Andar de digitalização

Figura 2.3.3 – Andar de digitalização na versão modificada.

O andar de digitalização pode ser visto como um bloco onde entram dois sinais analógicos

provenientes do andar de amplificação de cada microfone, e também os sinais de controlo

vindos da motherboard. A saída do andar de digitalização é uma linha de dados contendo a

informação digital relativa a 2 microfones. Assim, em cada placa microboard existem 4 circuitos

semelhantes ao da Figura 2.3.3, correspondentes aos 8 microfones de cada placa.

Page 39: Sistema adaptativo de controlo da directividade de um

23

Verifica-se na Figura 2.3.3 que o andar de digitalização constituído pelo conversor AD

PCM1802, cumpre as recomendações que vêm na sua datasheet. Neste caso, as únicas

alterações em relação à versão original são o facto dos pinos FSYNC e PDWN estarem ligados

à alimentação digital (Vdd). No entanto, no caso do pino PDWN é irrelevante estar ligado ao

Vcc (versão original) ou Vdd, dado que há um inversor lógico logo à entrada, e a tensão de Vcc

(5V) pode ser suportada nessa entrada. O mesmo não acontece com FSYNC, porque como

vimos anteriormente, este pino não suporta uma tensão superior a Vdd+0,3 V (na versão

original estava ligado a Vcc).

O conversor está ligado de forma a funcionar em modo slave. Organiza os 24 bits justificados à

esquerda em complemento para 2. A ligação do AD foi efectuada para que o modo de filtro

passa-baixo esteja activado, o que significa que elimina a componente continua na entrada.

Figura 2.3.4 – Esquema indicativo do formato dos dados nas saídas do conversor AD.

Andar de Alimentação

Figura 2.3.5 – Buffer que cria tensão para massa virtual de 2,5V.

Page 40: Sistema adaptativo de controlo da directividade de um

24

O circuito da Figura 2.3.5 produz a tensão GND virtual de 2,5 V. O circuito é um simples

seguidor de tensão utilizando um amplificador operacional.

Figura 2.3.6 – Circuito de alimentação da microboard modificada.

O circuito de alimentação é na sua essência, igual ao da versão original. Foi utilizado um

condensador de 100 uF electrolítico, do tipo SMD para reduzir o tamanho da placa. As 8 placas

ligadas em paralelo à alimentação da motherboard criam uma capacidade total de 1000 uF,

através destes condensadores de 100 uF, o que é suficiente para reduzir as flutuações do valor

da tensão de alimentação. Como se observa na Figura 2.3.6, a ligação entre a massa digital e

a massa analógica é realizada através de uma resistência de zero ohms. Na realidade, na

placa microboard, a ligação entre DGND e AGND é realizada em dois locais através de duas

resistências de zero ohms. Esses locais foram escolhidos de forma a se encontrarem

fisicamente próximos de um par de conversores AD, para reduzir a possível diferença entre as

massas (procedimento aconselhado na datasheet do conversor AD).

Figura 2.3.7 - Ligação para fonte de alimentação dos microfones.

A alimentação dos microfones, na versão original, é realizada através de uma bateria, de forma

a evitar interferências de espúrias e das harmónicas dos 50 Hz da rede eléctrica. Neste caso,

decidiu-se ligar o Vbat a uma fonte bem filtrada, de forma a evitar esses problemas. Para além

disso, como se observa na Figura 2.3.7, existe um condensador de 100 uF por cada

microboard, que em paralelo perfazem um total de 1000 uF.

Page 41: Sistema adaptativo de controlo da directividade de um

25

2.3.2. Montagem e desenho PCB

Todas as placas de circuito impresso (PCB) para realização da microboard produzidas neste

trabalho foram criadas no Laboratório de circuitos impressos no pólo Tagus Park do Instituto

Superior Técnico.

A primeira parte desta fase consistiu no projecto da placa de circuito impresso, o qual foi

realizado com o software Protel da Altium Design. Após o desenho estar finalizado, foi

produzida uma placa de teste para confirmar a integridade e o correcto funcionamento. Depois

de testada, foi criada a versão final, e foram construídas as oito placas microboards.

Durante o desenho do circuito PCB, foi dada especial atenção a diversos factores, tais como:

comprimento curto e separação suficiente das pistas que transportam sinais, criação de um

plano de massa, simetria do circuito, etc.

Figura 2.3.8 - Desenho do circuito PCB. Camada superior em cima, camada inferior em baixo.

A construção das placas PCB foi realizada através de uma máquina furadora/fresadora CNC

que realiza os furos nas placas. Após a furação, as placas foram submetidas a um processo de

metalização electroquímica dos furos. Seguiu-se, novamente com a máquina fresadora CNC, a

remoção do cobre de forma a reproduzir o desenho da Figura 2.3.8 (sendo a parte escura do

desenho, a que contem o cobre). Depois de realizado o circuito na placa PCB, foi-lhe colocada

uma película verde resistente à soldadura (solder-mask). Mediante um processo fotográfico, a

película é colada em toda a placa excepto nos pontos de solda onde se colocam os

componentes electrónicos.

Após a construção das placas PCB, procedeu-se à montagem manual dos 157 componentes

de cada placa.

Page 42: Sistema adaptativo de controlo da directividade de um

26

2.3.3. Características técnicas

Para testar a funcionalidade das microboards, foram analisados alguns aspectos e efectuados

alguns testes.

Figura 2.3.9 – Resposta em frequência dos microfones (encontra-se na datasheet).

Figura 2.3.10 – Sensibilidades dos microfones em função da frequência (encontra-se na

datasheet).

Os microfones do tipo electreto são ideais para tipos de aplicação em que se pretende uma

resposta plana nas frequências da voz humana, tal como se observa na Figura 2.3.9. O facto

de possuírem elevada impedância (2,2 kΩ) traduz-se num baixo consumo energético,

consumindo cada microfone uma energia na ordem dos 0,3 mW.

Page 43: Sistema adaptativo de controlo da directividade de um

27

Figura 2.3.11 - Resposta em frequência do andar de Amplificação.

Na Figura 2.3.11 está representada a curva de resposta em frequência do andar de

amplificação. Esta medida foi efectuada com o analisador de espectros/redes (HP4195A). Para

efectuar a medição, substituiu-se um dos microfones de uma microboard pelo gerador de sinal

do analisador de espectros. Esta medição foi efectuada com o circuito de amplificação ajustado

para o ganho máximo (ou seja, neste caso, um ganho de tensão teórico máximo de

aproximadamente 49 dB), dado que é o pior caso devido à influência do slew rate e da largura

de banda do amplificador operacional. Como se verifica no gráfico, o ganho mantém-se

aproximadamente constante na banda de frequências de interesse. O ganho tem o valor de

48,39 dB nessa banda.

A partir dos 20 kHz, como seria de esperar, o ganho diminui devido às características do

amplificador operacional usado, que como vimos anteriormente, foi escolhido de forma a ter

uma largura de banda de 20 kHz.

Relativamente ao consumo energético, as microboards da versão original apresentavam um

consumo de 250 mA, na versão modificada, esse consumo reduziu-se para metade (125 mA)

devido ao facto de se usar apenas 1 amplificador operacional por canal. Assim, o número de

circuitos integrados com amplificadores operacionais foi reduzido para metade.

Dado que as placas microboard são alimentadas com 6 V, a potência consumida por cada

placa é de 750 mW.

Os 8 microfones cuja tensão de alimentação é independente, consomem um total de 2,4 mW.

Page 44: Sistema adaptativo de controlo da directividade de um

28

2.4. Motherboard

A motherboard é o bloco central de todo o AM. É a motherboard que recolhe os sinais digitais

dos 64 microfones das microboards e os envia através de Ethernet para um computador. No

entanto, a motherboard é também capaz de receber instruções do computador. Essas

instruções poderão ser: iniciar ou finalizar a captura, trabalhar em modo slave ou master, ou

ainda porceder à alteração da frequência de amostragem.

Neste trabalho, foi construída uma motherboard idêntica à do projecto do NIST. Algumas

excepções, devido ao facto de alguns componentes terem sido descontinuados do mercado,

serão explicadas durante a descrição.

A placa PCB da motherboard foi produzida no fabricante de placas PCB denominado PCBpool,

mediante ficheiros em formato Gerber10

disponibilizados pelo NIST. A placa PCB é de 4

camadas.

Figura 2.4.1 - Fotografia da Motherboard.

10 Um ficheiro Gerber, é um formato de ficheiro standard, utilizado pelas empresas de fabricação de

placas PCB. Este ficheiro contém as informações necessárias, para que uma máquina controlada por um computador, construa a placa exactamente como ela foi desenhada.

Page 45: Sistema adaptativo de controlo da directividade de um

29

A descrição e explicação do funcionamento da motherboard irá ser dividida em diversos blocos:

Alimentação e consumo energético

Memória PROM

Osciladores

Aquisição de Dados

FPGA – “Field Programmable Gate Array”

Memória

Ethernet

Endereço MAC

Formato dos pacotes de dados

Leds indicadores de estado

Como já foi referido, à excepção de alguns detalhes que analisaremos de seguida, e que não

alteram a estrutura global, a motherboard não sofreu qualquer alteração em relação ao projecto

original. Apresenta-se, de seguida, uma breve descrição, seguindo os vários blocos acerca do

funcionamento da motherboard. No entanto, informação mais detalhada poderá ser encontrada

na documentação do NIST [7].

Figura 2.4.2 – Ilustração do funcionamento da Motherboard.

Page 46: Sistema adaptativo de controlo da directividade de um

30

Alimentação e consumo energético

Figura 2.4.3 – Esquema eléctrico da Alimentação da Motherboard.

A FPGA requer alimentações de 2,5 V e 3,3 V para entradas e saídas (I/Os). Contudo, as

memórias e os osciladores requerem 5 V. Para obter estas tensões foram usados 3

reguladores de tensão (REG104).

Para alimentar o AM, através do conector da motherboard, é necessária uma fonte de tensão

de 6 V com capacidade para fornecer uma corrente máxima de 2 A. A motherboard consome

500 mA de corrente, e como vimos anteriormente, cada placa microboard consome 125 mA, o

que indica um consumo total do AM de 1,5 A. Em termos energéticos, o AM consome

aproximadamente 9 W.

É de salientar que na versão original do AM, é recomendada uma fonte de 3 A, dado que a

corrente que consome é de 2,5 A.

Page 47: Sistema adaptativo de controlo da directividade de um

31

Versão

Original

Versão Modificada

Consumo de uma placa microboard

(mW)

1500

750

Consumo dos 8 microfones de uma

placa microboard (mW)

2,4 2,4

Consumo da motherboard (mW) 3000 3000

Consumo TOTAL do AM (mW) 15000 9000

Tabela 2.4.1 - Consumo energético do AM (alimentado a 6V).

Memória PROM

Na memória PROM, é inserido todo o código VHDL que descreve o funcionamento da FPGA

(basicamente, descreve o hardware no qual a FPGA se irá tornar). Dado que a PROM da

versão original foi descontinuada, optou-se por encontrar outra solução. Decidiu-se utilizar uma

memória Flash Rom (modelo XCF01SV020C) que permite ser reprogramada, o que passou a

ser uma vantagem face à versão original. No entanto, devido ao encapsulamento dos circuitos

integrados ser diferente, teve que ser construída uma pequena placa de circuito impresso para

colocar a memória flash e adaptar no suporte da motherboard. Contudo, esta memória funciona

de forma equivalente à da versão original, pelo que esta alteração não causa quaisquer

problemas.

Figura 2.4.4 – Fotografia do adaptador de memória construído.

Através de um cabo JTAG pode ligar-se a memória flash a um computador e reprogramá-la a

qualquer momento. Na folha de características desta memória flash, encontra-se o esquema de

ligação.

Page 48: Sistema adaptativo de controlo da directividade de um

32

Osciladores

São necessários dois osciladores, um que gera 33,688 MHz e outro que gera 25 MHz. O

primeiro é utilizado como relógio principal, a partir do qual a FPGA gera os sinais de controlo

para as Microboard (LRCK, BCK, SCKI), o segundo é utilizado para o bloco de Ethernet.

Aquisição de dados

Uma vez que é necessário enviar os sinais de controlo para as 8 microboards, e os andares de

saída da FPGA não conseguiriam enviar o sinal para 32 conversores AD, são utilizados 8

seguidores de clock (modelo CDCV304) para levar o sinal a cada uma das microboard. Na

Figura 2.4.5, encontra-se o esquema explicativo da aquisição de dados das placas microboard,

e do envio dos sinais de controlo para as mesmas.

Figura 2.4.5 - Bloco de aquisição de dados e envio de sinais de controlo.

FPGA

O modelo escolhido foi a Spartan-II 2.5V FPGA. Para este projecto, a escolha desta FPGA foi

ideal, visto possuir um número suficiente de portas programáveis e ser uma FPGA de baixo

custo.

Memória

As memórias da Toshiba utilizadas na versão original encontram-se descontinuadas. Assim,

houve necessidade de encontrar memórias equivalentes, e a escolha recaiu sobre o modelo da

BRILLIANCE SEMICONDUCTOR (modelo BS62LV4006SCP55). A única diferença entre elas é

o tempo de acesso, sendo que as memórias escolhidas têm um tempo de acesso inferior, o

que não causa qualquer problema.

Page 49: Sistema adaptativo de controlo da directividade de um

33

As memórias funcionam como buffers de dados, que guardam as amostras respectivas aos

sinais dos microfones, até que seja suficiente para criar um pacote UDP, que como se verá

contém 960 Bytes de dados.

Ethernet

Para controlador de Ethernet utilizou-se o modelo da SEEQ Technology 80225 10/100 BASE-

TX. Este controlador permite ser configurado para operar Ethernet a 10 Mbps ou 100 Mbps.

Endereço MAC

Para que o AM tenha um endereço MAC único, existe um componente (denominado DIP) com

8 comutadores que possibilitam escolher 256 endereços diferentes para esse efeito. O

endereço MAC é composto por 6 bytes, sendo que só é possível alterar o último byte do

endereço que tem o seguinte formato:

MAC: 10:00:00:00:03:XX

Formato dos pacotes de dados

Como já foi referido, a comunicação entre o AM e o computador é realizada sobre Ethernet

utilizando o protocolo UDP. O porto de comunicação do AM é definido como sendo o 32767.

Figura 2.4.6 – Formato da Trama UDP.

Todos os segmentos do pacote UDP são gerados na FPGA. Os primeiros quatro segmentos

correspondem à fase de conexão entre os dois dispositivos, o AM e o computador. O segmento

DATA é o que contém os dados provenientes dos 64 microfones. O segmento DATA contém

diversos subsegmentos para organização dos dados na memória. Porém, aquele que contém a

informação dos microfones é o subsegmento DATA, cujo valor é fixado pelo AM em 960 bytes,

correspondentes a janelas de 5 amostras de 24 bits por cada um dos 64 canais. A informação

complementar (overhead + 3 subsegmentos do segmento Data) das tramas UDP contém 62

bytes, o que indica que o AM poderá transmitir a um ritmo dado por:

( 2.4.1 )

Assim, o AM envia dados para o computador a um ritmo de 4,5 MB/s (para Fs = 22050 kHz) ou

9 MB/s (para Fs = 44100 kHz).

Page 50: Sistema adaptativo de controlo da directividade de um

34

Relativamente ao formato dos dados, resta referir, que são guardados em memória com o

formato Big Endian. O que significa que o byte mais significativo é guardado no endereço de

memória mais baixo.

Leds indicadores de estado

Na motherboard encontram-se diversos leds que indicam o estado do AM. A figura seguinte

representa os leds contidos na motherboard e os respectivos nomes. Na tabela 2.2 é efectuada

a descrição do significado dos leds.

Figura 2.4.7 - Significado dos Leds da Motherboard.

Ligado Apagado Intermitente

On/Off On Off

Ligação

detectada

Detecta Ligação Ethernet Não detecta ligação

Ethernet

Detecta actividade na

Ethernet

Colisão Há colisões na

comunicação

Não há colisões na

comunicação

Full duplex Comunicação em Full

Duplex

Comunicação em Half

Duplex

10Mbps/100Mbps Ligação a 10 Mbps Ligação a 100 Mbps

IP atribuído AM com IP atribuído AM sem IP atribuído

Captura On Não está a capturar Está a capturar

44,1/22,05 kHz Fs=44,1 kHz Fs=22,05 kHz

Slave/Master Modo Slave activado Modo Master activado

Tabela 2.4.2 - Leds indicadores do estado do AM.

Page 51: Sistema adaptativo de controlo da directividade de um

35

2.5. Calibração dos ganhos dos amplificadores

A calibração dos sinais provenientes dos microfones num agregado de microfones é

necessária [9] para se poderem aplicar os diversos algoritmos de processamento para efectuar

localização, beamforming, e muitos outros, sem aumentar o erro devido a uma má calibração.

Isto, porque os diversos algoritmos assumem que existem sinais semelhantes nos diferentes

microfones, algo que não seria possível se a sensibilidade quer dos microfones, quer do andar

de amplificação, não for igual, ou muito próxima. No entanto, existem também diversos

algoritmos que são robustos [9] a divergências entre as respostas, pelo menos em relação ao

ganho, dos diversos canais de um AM.

A razão para existir em cada canal de cada microboard um potenciómetro que faz o ajuste de

ganho, é como já foi referido, tornar o AM versátil e poder ser ajustado, não só para operar em

diversos ambientes (relativamente à distância em relação ao AM a que um orador tipicamente

irá falar), mas também para poderem ser igualadas (calibração) as respostas de cada canal.

Como se sabe, os fabricantes quer dos microfones, quer dos outros componentes electrónicos,

especificam sempre uma tolerância nos valores das características destes dispositivos (neste

caso, a sensibilidade dos microfones usados tem tolerância de +/-2dB). Essas diferenças têm

que se tentar corrigir empregando para isso o ajuste do ganho, utilizando-se assim (no caso

deste AM) os potenciómetros de cada andar de amplificação.

Contudo, como também já foi referido, neste AM o ganho do andar de amplificação de cada

canal tem uma margem de ajuste relativamente grande devido ao potenciómetro de 100 kΩ,

factor este que diminui a sensibilidade de ajuste na calibração. No entanto, como já foi dito,

este factor garante versatilidade ao AM para poder operar em espaços de diferentes

dimensões. Dado não ter sido possível dispor de uma sala isenta de reverberações (tal como

uma câmara anecóica), a calibração foi efectuada com uma fonte de ruído acústico branco no

laboratório do SIPS.

De modo a evitar reflexões próximas, cujas intensidades são maiores e poderiam provocar

variações significativas em cada microfone, o AM foi colocado no centro da sala e, para além

disso, como se observa na Figura 2.5.1, a estrutura de suporte do AM não contém nenhuma

superfície que permita haver reflexões próximas. Para além de não causar reflexões, a

estrutura do AM foi realizada de forma a impedir a existência de efeitos ressonantes, algo que

é provável acontecer, caso essa estrutura seja uma caixa oca.

Page 52: Sistema adaptativo de controlo da directividade de um

36

Figura 2.5.1 – Fotografia do AM suportado por um tripé.

2.5.1. Método utilizado

A calibração foi realizada no laboratório do SIPS no INESC-ID, com recurso a um método

semelhante ao utilizado em [10], que consiste no cálculo do ganho relativo de cada microfone.

O método utilizado consiste na comparação do ganho dos diversos canais, calculado da

seguinte forma:

( 2.5.1 )

Na equação (2.5.1) tem-se que corresponde à amplitude máxima média do microfone n, N

corresponde ao número total de microfones do AM e o Ganho(n) é o valor relativo, que mede o

desvio em dB da amplitude máxima do microfone n em relação à média das amplitudes

máximas dos N microfones. Se obtivermos valores negativos no Ganho(n), significa que o

microfone n está com o ganho inferior à média dos microfones, sendo necessário aumentá-lo

com auxílio do potenciómetro, e vice-versa (isto, assumindo a situação em que o sinal captado

é igual em todos microfones).

Para conseguir visualizar os ganhos e fazer o ajuste nos potenciómetros de forma rápida,

realizou-se um programa em linguagem C. Este programa permitiu capturar o sinal dos 64

canais do AM, e fazer o processamento de janelas com 22050 amostras (1 segundo de

Page 53: Sistema adaptativo de controlo da directividade de um

37

captura), de forma a obter o ganho relativo de cada microfone em tempo real, permitindo assim

um ajuste e simultaneamente a visualização no ecrã, dos ganhos.

Para dar início à calibração, procedeu-se ao ajuste global dos potenciómetros para 50 kΩ.

Escolheu-se 50 kΩ por ser um valor que permitia um ganho que se adequa (observação

realizada através do programa “osciloscope”) ao laboratório do SIPS, que seria o local onde o

AM iria funcionar. Este ajuste realizou-se com o auxílio de um multímetro.

2.5.2. Resultados

Depois do ajuste dos potenciómetros a 50 kΩ, deu-se início a uma calibração mais precisa,

com o auxílio do programa em linguagem C e com o AM a capturar som proveniente de uma

fonte sonora realizada com um computador e uma coluna. Essa fonte sonora, gerava ruído

branco, cuja característica principal, para este caso, é o espectro em frequência plano. Assim,

tentou garantir-se uma calibração equilibrada em todo o espectro, e para além disso, garantir

que o efeito das reverberações na sala fosse desprezível, dado que o ruído branco é a fonte

sonora ideal para garantir estas condições.

De salientar, que as medições que se observam a seguir foram realizadas com o mínimo ruído

acústico possível (durante a noite), com a fonte sonora de frente para o AM (como se observa

na Figura 2.5.2 e numa situação de onda plana (em [3] refere-se aproximadamente 4 m) em

relação às dimensões do AM. A formulação de onda plana é essencial para que os microfones

possam ser calibrados numa situação em que a fonte sonora os atinge com a mesma

intensidade e ao mesmo tempo (por estar de frente para o AM a um ângulo de 90 graus), ou

seja, são excitados de igual forma.

Figura 2.5.2 – Disposição dos diversos elementos durante a calibração.

Mostra-se de seguida o gráfico com os ganhos antes de uma calibração fina, e a medição

efectuada depois de os microfones estarem devidamente calibrados com o auxílio do programa

realizado em linguagem C. A primeira medida efectuada (potenciómetros ajustados a 50 kΩ)

Page 54: Sistema adaptativo de controlo da directividade de um

38

origina desvios na ordem dos 6 dB, como se pode ver na Figura 2.5.3, sendo que, depois de os

canais estarem calibrados, os ganhos apresentaram uma diferença máxima de 1dB.

Figura 2.5.3 - Gráfico dos ganhos relativos para uma fonte sonora de ruído branco.

Como se verifica, existe uma melhoria significativa nos ganhos dos diversos canais depois da

calibração fina. Em baixo, pode observar-se a imagem do programa “osciloscope”

apresentando 16 canais depois de o AM estar calibrado.

Figura 2.5.4 - Imagem do programa “osciloscope” depois de AM estar calibrado.

Após calibração com ruído branco, obtiveram-se resultados satisfatórios na análise de sinais de

voz, que era realmente o que interessava. Na Figura 2.5.5 observa-se que as divergências

máximas são da ordem de 1,5 dB, o que representa um bom resultado para um sinal de voz.

10 20 30 40 50 60-8

-6

-4

-2

0

2

4

6

Microfone(n)

Gan

ho (

dB)

Depois de Calibração fina

Antes de Calibração fina

Page 55: Sistema adaptativo de controlo da directividade de um

39

Figura 2.5.5 – Gráfico dos ganhos obtidos com sinal de fala.

10 20 30 40 50 60-2

-1.5

-1

-0.5

0

0.5

1

1.5

2

Microfone(n)

Gan

ho(d

B)

Ganhos para sinal de fala

Page 56: Sistema adaptativo de controlo da directividade de um

40

Page 57: Sistema adaptativo de controlo da directividade de um

41

3. ALGORITMOS IMPLEMENTADOS NO SISTEMA

CONSTRUÍDO

Esta fase de implementação de algoritmos, teve como objectivo verificar as capacidades do AM

utilizando algoritmos relativamente simples, obtendo resultados experimentais que revelassem

concordância ao nível da teoria que os fundamenta.

Neste capítulo é realizada a descrição dos algoritmos que foram implementados num

computador para processar os sinais do AM. Simultaneamente com a descrição, são exibidos

gráficos correspondentes a simulações em Matlab, com base em sinais reais capturados pelo

AM. Para apurar qual o algoritmo mais eficaz, o sinal foi capturado em ambiente com elevado

ruído acústico. Após a descrição dos algoritmos serão apresentados os resultados que se

obtiveram.

Seguidamente irá ser descrito o algoritmo utilizado para detectar a localização de um orador

em tempo real. A aplicação produzida foi realizada em linguagem C, no entanto, antecederam-

se diversas simulações em Matlab para apurar qual seria o algoritmo mais indicado para ser

realizado em tempo real.

Por fim, são apresentados resultados relativos aos tempos de processamento dos algoritmos

descritos anteriormente, implementados em linguagem C, de forma a serem averiguadas as

potencialidades deste AM com processamento em tempo real num computador.

3.1. Algoritmos de Localização

Neste subcapítulo é efectuada uma descrição da implementação do algoritmo de correlação

cruzada apresentado na secção 1.4.1.

Quando se aplicam os algoritmos de localização aqui descritos, é necessário garantir a

condição de onda plana. Esta condição reduz significativamente a complexidade do problema.

Sendo o AM construído um sistema linear com 64 microfones, apenas poderá realizar detecção

de um orador a duas dimensões. Foi necessário estabelecer um plano de referência para

calcular a direcção do orador.

Page 58: Sistema adaptativo de controlo da directividade de um

42

Figura 3.1.1 - Referência para o cálculo do ângulo da direcção do orador, (planta).

É de notar que o microfone de referência utilizado na implementação dos seguintes algoritmos,

designa-se na Figura 3.1.1 como Mic 1, ou seja, nos resultados apresentados nas próximas

secções deste subcapítulo, o ângulo calculado será sempre em relação ao microfone Mic 1.

Os dados reais utilizados para exemplificar os algoritmos foram os 64 sinais capturados pelo

AM na seguinte situação:

Figura 3.1.2 - Disposição dos elementos no laboratório do SIPS, aquando a captura de teste para algoritmos de localização.

Page 59: Sistema adaptativo de controlo da directividade de um

43

Figura 3.1.3 - Sinal capturado pelo microfone de referência Mic1 e pelo Mic18.

O sinal capturado apresenta uma baixa relação sinal ruído de 9 dB, dado o elevado nível de

ruído ambiente causado pelas máquinas de ar condicionado. Os efeitos das reverberações

devido à geometria da sala e, inclusivamente, as diversas bancadas com equipamento de

laboratório influenciam também a degradação da SNR.

Para a aplicação dos algoritmos, o sinal é dividido em blocos com um número de amostras

igual a uma potência de 2, para efeitos do cálculo mais eficaz da FFT. O tamanho deste bloco

foi escolhido de modo a ser suficientemente pequeno para se poder efectuar o seguimento do

orador em tempo real, com uma taxa de actualização de pelo menos 500 ms11

. Em

contrapartida, quanto maior o tamanho da janela utilizada, melhor será o resultado da

correlação e maior a fiabilidade da estimativa.

Neste caso, decidiu-se utilizar janelas de 8192 amostras. Esta janela corresponde a 370 ms, o

que parece ser um valor aceitável para eliminar a influência negativa das reverberações12

na

correlação. Assim, para efeitos de explicação dos algoritmos seguintes, utilizam-se 8192

amostras de uma parte vozeada do sinal da Figura 3.1.3.

Como exemplo, os algoritmos foram aplicados aos sinais dos microfones #1 e #18 do AM.

A distância entre cada microfone consecutivo neste AM é de 2 cm, o que perfaz uma distância

de 34 cm entre os microfones #1 e #18. Assim, tem-se um atraso máximo de:

( 3.1.1 )

11 Um orador que se encontre a uma distância de 3 m relativamente ao AM, deslocando-se a uma velocidade de 0.55 m/s significa que faz um deslocamento de 10

0.

12 Tipicamente as reverberações surgem durante um tempo máximo de 300 ms.

0 1 2 3 4 5 6 7 8 9 10-1

-0.5

0

0.5

1

0 1 2 3 4 5 6 7 8 9 10-1

-0.5

0

0.5

1

Tempo (s)

A

mpl

itude

nor

mal

izad

a

Mic 1

Mic 18

Page 60: Sistema adaptativo de controlo da directividade de um

44

A equação (3.1.1) traduz o máximo atraso que pode haver entre o microfone #1 e #18. Ou seja,

quando a onda acústica percorre o AM perpendicularmente (corresponde a zero graus na

referência utilizada).

Após calcular o atraso entre os sinais, determina-se o ângulo utilizando a expressão:

( 3.1.2 )

A resolução no cálculo do ângulo é não linear, como se pode observar na equação (3.1.2) e na

Figura 3.1.4.

Figura 3.1.4 – Relação entre o ângulo calculado e o atraso obtido após correlação entre os

sinais dos microfones #1 e #18.

O ângulo que se pretende calcular será 30 graus. Contudo, tendo em conta a limitação da

resolução, apenas se conseguirá obter, no melhor caso, 30,49 graus correspondente a um

atraso de -19 amostras. Neste caso, o erro é mínimo porque o ângulo pretendido está próximo

de um dos valores possíveis, no entanto, o erro poderia chegar aos ±6 graus, no caso do

ângulo pretendido ser 10 graus.

No gráfico acima, pode reparar-se que o “atraso” (pode ser atraso ou avanço) varia entre -22 e

+22 amostras. Significa que quando a onda sonora chega primeiro ao microfone #1

(referência), e só depois ao microfone #18, é obtido um atraso, ou seja, o sinal no microfone

#18 está atrasado em relação ao sinal de referência. O caso contrário, quer dizer que a onda

sonora atinge primeiro o microfone #18, e assim sendo, está em avanço em relação ao

-20 -15 -10 -5 0 5 10 15 200

20

40

60

80

100

120

140

160

180

X= -19

Y= 30.4945

Atraso

Âng

ulo

teta

em

gra

us

Page 61: Sistema adaptativo de controlo da directividade de um

45

microfone #1. Caso o atraso seja nulo, a onda acústica chega ao mesmo tempo em ambos os

microfones, significando que vem paralela em relação ao AM. Assim, para efeitos de cálculo do

ângulo com a equação (3.1.2) e de acordo com a referência usada na Figura 3.1.1, utiliza-se o

valor simétrico de .

3.1.1. GCC – Generalized Cross Correlation

A técnica de correlação cruzada (GCC) para o cálculo do atraso, é a técnica mais usada em

processamento de sinais com AM. Como já foi referido na secção 1.4.1, esta técnica consiste

na correlação entre os sinais de um par de microfones, de modo a calcular o atraso entre eles

e, assim, calcular a direcção do orador.

Assim, têm-se duas janelas de 8192 amostras respectivas aos sinais do microfone #1 e

microfone #18.

O primeiro passo é calcular a correlação entre os sinais das duas janelas. Esse cálculo é

efectuado no domínio da frequência com recurso ao algoritmo FFT para calcular a

transformada discreta de Fourier13

. Depois de obter ambas as janelas no domínio da frequência

é efectuada a correlação, multiplicando o sinal da janela correspondente ao sinal do microfone

de referência, pelo conjugado do sinal na janela respectiva ao sinal a correlacionar.

De seguida, para voltar ao domínio do tempo, é necessário realizar a transformada inversa

discreta de Fourier, calcular o máximo da correlação e obter o atraso entre os sinais.

No gráfico seguinte apresenta-se o resultado da correlação dos dois sinais.

Figura 3.1.5 - Resultado da Correlação com GCC.

13 Denominada em inglês Discrete Fourier Transform (DFT).

Page 62: Sistema adaptativo de controlo da directividade de um

46

Após se obterem os 8192 valores resultantes da correlação, analisam-se apenas aqueles cujo

valor tem significado real. Ou seja, neste caso, verificou-se na equação (3.1.1) que o atraso ou

avanço máximo que poderá existir é de ±22 amostras. Assim, analisa-se na correlação, qual o

máximo entre as amostras -22 e 22.

O resultado que se obtém, neste caso concreto, é de -20 amostras, e devido à referência

angular utilizada, este valor é aplicado na seguinte fórmula como sendo positivo:

( 3.1.3 )

Como se pode reparar, neste caso, utilizando GCC, o valor obtido não foi o valor esperado de

30,49 graus.

3.1.2. GCC-PHAT

A correlação cruzada é um modelo óptimo para calcular o atraso em presença de ruído branco.

No entanto, em situações reais, essa condição é improvável, sendo a correlação cruzada, por

si só, um método pouco utilizado.

No entanto, a GCC-PHAT14

é uma técnica com resultados bons para ambientes reverberantes.

Este algoritmo consiste numa correlação cruzada multiplicada por uma função de peso. A ideia

base [17] consiste num processamento adaptativo não linear no domínio da frequência.

( 3.1.4 )

Sendo a função de peso e representa a transformada inversa de Fourier relativa

à correlação entre no domínio da frequência ( ) multiplicada pelo factor de

peso.

Dependendo do ambiente onde o sistema irá funcionar, poderá ser calculada ou estimada uma

função de peso. No entanto, existem diversas funções de peso já estudadas que podem ser

aplicadas, sendo a mais conhecida e utilizada, a que corresponde à transformada de fase.

( 3.1.5 )

A correlação utilizando a função de peso PHAT, vem normalizada à unidade, e idealmente

corresponde a um impulso. No entanto, na prática, em ambientes reverberantes, não se obtém

um impulso ideal.

14 PHAT- Phase transform em inglês, significa transformada de fase.

Page 63: Sistema adaptativo de controlo da directividade de um

47

Figura 3.1.6 - Resultado da correlação com GCC – PHAT.

Pode observar-se na figura anterior o efeito de alisamento para todos os valores da correlação

excepto no máximo. O resultado obtido revela concordância com o que foi dito anteriormente,

observando-se na figura um máximo de correlação com características de um impulso

deformado. Pode verificar-se também, que utilizando a função de peso PHAT, o valor de atraso

encontrado corresponde ao esperado. Neste caso, o valor encontrado é de -19 amostras o que

corresponde ao ângulo esperado de 30,490:

( 3.1.4 )

Assim, confirma-se uma nítida melhoria devida à utilização da função de peso PHAT.

3.1.3. Resultados

Os exemplos anteriores, referem-se à correlação entre o microfone #1 e o #18. No entanto, o

AM construído neste trabalho tem 64 microfones. Para testar o funcionamento destes 2

algoritmos utilizando os 64 canais, a correlação cruzada foi calculada entre o sinal do

microfone de referência #1 e o sinal de cada um dos outros 63 microfones, obtendo-se assim

um resultado para cada par de microfones utilizado. De seguida pode visualizar-se o gráfico de

comparação dos resultados obtidos, aplicando o algoritmo GCC e GCC-PHAT, utilizando

janelas de 8192 amostras referentes a um segmento vozeado real obtido na situação da Figura

3.1.2.

Page 64: Sistema adaptativo de controlo da directividade de um

48

Figura 3.1.7 - Resultados de GCC-PHAT e GCC para orador a 300.

No gráfico da Figura 3.1.7 pode observar-se uma vez mais o melhor funcionamento do

algoritmo GCC-PHAT face ao GCC. A limitação da resolução no atraso obtido reflecte-se, como

era de esperar, no ângulo obtido. A forma de dente de serra que se verifica deve-se à limitação

de resolução, sendo o dente de serra cada vez mais estreito para microfones mais distantes.

No entanto, o facto de a forma de onda não ser estritamente plana, como é assumido nos

algoritmos, leva a que o ângulo diminua para os microfones mais distantes. De facto, sendo a

onda esférica, levará mais tempo a chegar aos últimos microfones daquele que é previsto na

situação de onda plana.

Na situação em que o orador está a 900 de acordo com o plano de referência da Figura 3.1.1,

obtém-se a precisão máxima na detecção dessa direcção. O facto de o atraso calculado entre

os sinais corresponder a zero amostras permite obter os 90 graus:

( 3.1.5 )

Contudo, no seguinte gráfico, identifica-se perfeitamente o facto de a onda não poder ser

considerada plana para uma distância de 3 metros em relação ao AM, dado que para os

microfones mais distantes começa a haver atrasos entre os sinais, e assim, é determinado um

ângulo diferente de 900.

10 20 30 40 50 6020

25

30

35

40

45

50

55

60

X: 18

Y: 30.49

Microfone

Âng

ulo

Cal

cula

do e

m g

raus

GCC - PHAT

GCC

Page 65: Sistema adaptativo de controlo da directividade de um

49

Figura 3.1.8 - Resultados de GCC-PHAT para orador a 900.

Assim, como seria de esperar, note-se que a maior resolução que se consegue obter se

verifica para a correlação entre os sinais dos microfones mais distantes dado que o dente de

serra cada vez é mais estreito. Neste sentido, só será possível tirar proveito dessa situação

para situações em que o orador se encontra suficientemente afastado do AM, de modo a que a

onda acústica possa ser considerada plana quando atravessa o AM. Outra solução seria fazer

os cálculos assumindo uma onda acústica esférica, o que seria computacionalmente pouco

eficaz.

O gráfico seguinte traduz a resolução máxima do ângulo da direcção do orador, que é possível

obter através deste AM através do cálculo do atraso entre os canais mais distante. Consegue

obter-se uma resolução na ordem de 1 grau. Verifica-se também, que com o método

apresentado, a resolução é máxima para ângulos entre 500 e 130

0.

Figura 3.1.9 - Relação entre o ângulo calculado e o atraso obtido após correlação entre os

sinais dos microfones #1 e #64.

10 20 30 40 50 6050

55

60

65

70

75

80

85

90

95

Microfone

Âng

ulo

calc

ulad

o em

gra

us

GCC - PHAT

-80 -60 -40 -20 0 20 40 60 800

20

40

60

80

100

120

140

160

180

Atraso

Âng

ulo

calc

ulad

o

Page 66: Sistema adaptativo de controlo da directividade de um

50

3.2. Algoritmo de filtragem espacial

Em [10] pode encontrar-se uma formalização teórica da aplicação de filtragem espacial num

AM com geometria idêntica ao deste trabalho. Serão aqui referidas algumas das mais

importantes conclusões.

Seguidamente serão mostrados os resultados de um teste realizado com dados reais para

confirmar a capacidade de filtragem espacial do AM construído com o tradicional algoritmo

delay and sum referido na secção 1.4.2.

3.2.1. Limitações do Sistema

Um AM é um sistema capaz de amostrar simultaneamente no tempo e no espaço, uma onda

acústica que se propaga numa determinada direcção. Pelo facto de existirem diversos

sensores (microfones) devidamente espaçados, é possível realizar amostragem espacial do

sinal. É necessário ter em consideração o fenómeno de aliasing descrito pelo teorema da

amostragem formulado para o domínio do tempo, que analogamente abrange o domínio do

espaço.

Assim, aliasing espacial traduz uma amostragem insuficiente para caracterizar o sinal ao longo

do espaço. O comprimento de onda do sinal não pode ser inferior ao espaçamento entre

sensores, caso contrário existiram ambiguidades na direcção de chegada da onda. Para evitar

o aliasing espacial a onda sonora deve ser amostrada em pelos menos dois pontos do seu

comprimento de onda. Analogamente ao teorema da amostragem, a frequência máxima do

sinal captado pelo AM não pode ter comprimento de onda inferior ao dobro da distância entre

microfones adjacentes.

Sendo este AM linear e os sensores uniformemente espaçados, pode definir-se uma frequência

de amostragem espacial dada por:

( 3.2.1 )

Em que o período de amostragem espacial é definido pela distância d entre microfones e

vem em ciclos por metro.

A frequência espacial depende da velocidade, do ângulo de chegada da onda acústica nos

sensores e também da frequência do sinal através da seguinte relação:

( 3.2.2 )

A frequência espacial máxima será na situação em que a onda acústica se dirige

perpendicularmente ao AM sendo cos()=1. Analogamente ao teorema da amostragem, pode

Page 67: Sistema adaptativo de controlo da directividade de um

51

ser calculado um limite máximo para o espaçamento entre sensores de modo a não existir

aliasing espacial:

( 3.2.3 )

Assim, a distância máxima entre microfones é determinada de acordo com a frequência

máxima que se pretende captar. Neste AM a distância entre sensores é de 2 cm, resultando

uma frequência máxima de 8,5 kHz. Como se constata é um limite adequado a sinais de fala.

O fenómeno de aliasing espacial torna a directividade do AM ambígua, ou seja, o diagrama de

directividade pode passar a ter vários lobos principais, ou então lobos secundários muito

acentuados.

Para além deste fenómeno, é referido também em [10], o problema da perda de resolução

espacial para baixas frequências. A abertura do AM (L), é definida como a área finita na qual os

microfones captam o sinal. Quanto maior a abertura de um AM, maior será a capacidade de

definir um sinal ao longo do espaço. No caso deste AM, sendo linear, tem-se uma abertura

correspondente à distância entre os dois microfones mais afastados.

3.2.2. Implementação do algoritmo “Delay and Sum”

O Delay and Sum, é uma das técnicas mais populares no âmbito da filtragem espacial. Como

foi referido na secção 1.4.2 do capítulo 1, esta técnica permite orientar a directividade do AM

numa determinada direcção.

Figura 3.2.1 – Algoritmo Delay and Sum.

O sinal que chega a cada microfone do AM é compensado de um atraso devido às diferenças

do tempo de chegada da onda sonora a cada microfone. O sinal presente em cada microfone,

é devidamente alinhado com o sinal de um microfone de referência, para seguidamente serem

Page 68: Sistema adaptativo de controlo da directividade de um

52

todos somados. Após a soma, o sinal de voz desejado é somado construtivamente, dado que

está presente em todos os microfones, no entanto, o ruído é somado de uma forma arbitrária e

naturalmente será atenuado face ao sinal de voz. A principal vantagem deste algoritmo é ser

fácil de implementar, no entanto, para se obter bons resultados, é necessário necessita de um

número elevado de microfones. Para garantir bons resultados o ruído ambiente tem que ser

espacialmente não correlacionado.

Para testar este algoritmo no sistema construído, foi realizada uma captura com o seguinte

esquema:

Figura 3.2.2 – Disposição dos elementos durante captura de teste para aplicação do algoritmo Delay and Sum.

Para se conseguirem perceber nitidamente as melhorias provocadas pela aplicação do

algoritmo, foi utilizada uma fonte de ruído branco produzida pelas colunas de um computador.

O nível de som desse ruído era elevado face à voz do orador de modo a conseguir verificar a

sua atenuação após aplicação do algoritmo.

Pelo facto de não se verificar a situação de onda plana, os sinais não poderiam ser

simplesmente somados para dirigir o AM na direcção do orador. Assim, os sinais foram

alinhados de acordo com os atrasos obtidos aquando o cálculo dos ângulos da Figura 3.1.8,

cuja posição do orador era idêntica.

Aplicando o algoritmo na direcção do orador, é esperado que o ruído branco seja atenuado de

forma significativa. Na sala onde foi efectuado o teste existia um ruído acentuado provocado

por máquinas de ar condicionado. Foi verificado que o ruído ambiente referido pode ser

considerado espacialmente correlacionado e assim, não se espera que o algoritmo elimine este

ruído.

Page 69: Sistema adaptativo de controlo da directividade de um

53

Figura 3.2.3 – Gráficos com sinal resultante do Delay and Sum (esquerda) e sinal no microfone #1.

Na Figura 3.2.3 verifica-se o resultado do algoritmo Delay and Sum. Como se verifica existe

uma nítida redução do ruído branco. A relação sinal ruído é melhorada em 4 dB após aplicação

do algoritmo Delay and Sum.

3.3. Implementação de algoritmos em tempo real

De modo a averiguar quais as potencialidades do sistema com processamento em tempo real

através de um computador, foram implementados os algoritmos descritos anteriormente

utilizando a linguagem C sobre o sistema operativo Linux.

Inicialmente, implementou-se o algoritmo GCC-PHAT (correlação cruzada com filtragem no

domínio da frequência), tendo sido criada uma pequena aplicação que mostra no ecrã do

computador qual a direcção do orador em tempo real.

Por fim, foram calculados os tempos reais de execução de cada operação relativamente ao

algoritmo de cálculo dos atrasos entre sinais, e o algoritmo delay and sum. Assim, podem ser

retiradas algumas conclusões relativas à possibilidade de aplicar algoritmos em tempo real

neste sistema, utilizando um computador.

O computador utilizado para implementar os seguintes algoritmos foi um Intel Pentium M 1,73

GHz, com 1,5 GB de memória RAM15

.

15 Acrónimo em inglês que designa “Random Acess Memory”, significando em português “Memória de

Acesso Aleatório”.

Page 70: Sistema adaptativo de controlo da directividade de um

54

3.3.1. Aplicação para localização do orador

Esta aplicação foi desenvolvida com o objectivo de calcular o desempenho do algoritmo GCC-

PHAT em tempo real. No seguinte diagrama de blocos é descrito o seu funcionamento.

Figura 3.3.1 – Diagrama explicativo da aplicação para detecção do orador.

Processo Principal

Processamento de dados

FFT dos sinais

recebidos

Correlação com

função de peso

PHAT

Calcula ângulo

Boa estimativa

Sub-Processo desenha

Inicialização de modo

gráfico

Conexão ao AM

Inicializa captura

com Fs= 22050Hz

Recebe pacotes

de dados do AM

Calcula ruido ambiente

Recebe pacotes

de dados do AM

indice=8191

Preenche Buffers

N

S

Reinicia indice

Processamento de dados

Sinal>2*Ruido ambiente

S

N

CICLO

S

Fim de

Processo

N

Page 71: Sistema adaptativo de controlo da directividade de um

55

Esta aplicação recebe pacotes de dados UDP enviados pelo AM. Cada pacote, como se viu no

capítulo 2.4, contém 5 amostras de cada canal (um total de 64 x 5 amostras). Logo através da

seguinte expressão verifica-se que o tempo entre pacotes é de:

( 3.3.1 )

sendo N o número de amostras por canal em cada pacote. Assim, para não haver perda de

pacotes, tem que se garantir que o tempo de processamento entre a recolha de pacotes não

ultrapassa os 227 s. Nesta aplicação, esse intervalo entre recolha de pacotes (denominado

CICLO na Figura 3.3.1), é utilizado apenas para recolher as amostras de 3 canais, relativos aos

microfones #1, #15 e #20. Neste mesmo intervalo, as amostras (24 bits cada) são convertidas

em valores com 32 bits sendo de seguida guardadas em tabelas (buffers) com comprimento

para armazenar 8192 amostras. Depois de as tabelas estarem preenchidas com as amostras

respectivas aos 3 canais, é verificado se o valor máximo do sinal do canal de referência (canal

#1), é superior ao dobro do valor máximo de ruído ambiente16

(detectado no início da

aplicação). Se for maior é chamado o sub-processo (thread) que efectua o processamento dos

sinais e realiza o cálculo do ângulo. Para não haver perda de amostras, o processamento é

realizado em paralelo com a captura de dados do AM. O sub-processo de processamento de

dados, realiza a correlação entre o canal de referência #1 e os canais #15 e #2017

, obtendo-se

assim, a estimativa de dois ângulos. Para averiguar a correcção da estimativa, os dois ângulos

obtidos são comparados e se não diferirem em mais de um valor absoluto de 100

18 é

considerada uma boa estimativa, consistindo o resultado final na média entre os dois ângulos

obtidos, resultado esse que por sua vez é mostrado em ambiente gráfico através do sub-

processo “desenha”.

16

Método expedito para inibição do cálculo do ângulo.

17Sinais escolhidos de forma a ser garantida a condição de onda plana.

18 Valor obtido mediante a máxima diferença que se pode obter devido à limitação da resolução.

Page 72: Sistema adaptativo de controlo da directividade de um

56

Figura 3.3.2 - Ambiente gráfico da aplicação para localização do orador. No caso desta imagem, o orador encontra-se na direcção correspondente a 90 graus.

A probabilidade de erro na estimativa do ângulo utilizando este método depende do ambiente

onde o sistema está a funcionar, dado que a forma da sala e o ruído ambiente são

determinantes no desempenho do algoritmo. No entanto, na maioria do casos verificou-se

experimentalmente que o erro do ângulo final obtido é na ordem de ±3 graus.

Esta aplicação consistiu apenas num teste ao desempenho do AM em tempo real, de forma a

averiguar as potencialidades deste na implementação de algoritmos mais complicados que

tirem partido de todos os microfones do AM.

No gráfico da figura seguinte representa-se o resultado obtido no seguimento de um orador que

se desloca a uma distância de 1,5 metros do AM durante 30 segundos. O orador anda sobre

uma linha imaginária que consiste numa semi-circunferência de raio 1,5m em torno do

microfone #1 que representa o centro da semi-circunferência.

Page 73: Sistema adaptativo de controlo da directividade de um

57

Figura 3.3.3 – Gráfico que traduz o seguimento de um orador que se desloca a uma distância de 1,5m do AM no perímetro entre -180 e 0 graus.

Assim, esta aplicação permite obter a direcção do orador com uma taxa de actualização

aproximada de 375 ms (8192 amostras / 22050 Hz + tempo de processamento), com um erro

na estimativa do ângulo de 3 graus.

Os tempos reais dispendidos por cada sub-processo da aplicação encontram-se na seguinte

tabela:

Tempo ( s)

Tempo total entre pacotes recebidos 227

Tempo utilizado para processamento (armazenamento de

dados e chamada de sub-processo) entre pacotes recebidos

2

Tempo total dispendido pelo sub-processo “processamento de

dados”

5000

Tempo total dispendido pelo sub-processo “desenha” 170

Tabela 3.3.1 – Tempos reais dispendidos pela aplicação de localização de um orador.

Como se pode observar na tabela, não existe qualquer perda de amostras, dado que o tempo

de processamento entre recolha de pacotes é de apenas 2 s face aos 227 s disponíveis.

Também se verifica que relativamente ao processamento de dados apenas se utilizam 5 ms

dos cerca de 370 ms (necessários para voltar preencher os buffers com 8192 amostras e

proceder a novo processamento) disponíveis.

Page 74: Sistema adaptativo de controlo da directividade de um

58

A aplicação apresentou uma utilização máxima do CPU19

do computador de 20 % (fase em que

é chamado o sub-processo para processar os dados). Tipicamente a aplicação apresentou

uma utilização de 9 % do CPU.

Conclui-se que utilizando o computador mencionado no início do presente capitulo,

conseguem-se realizar algoritmos mais complexos e/ou utilizar todos os sinais de todos os

microfones.

3.3.2. Modelo proposto e resultados

Aqui serão apresentados resultados que servem de base para futuras implementações em

tempo real utilizando um computador.

Seguidamente é apresentado um método para realizar beamforming (com recurso ao delay and

sum) consoante a direcção do orador, sendo explicadas simultaneamente as rotinas

implementadas para concretização do método.

Figura 3.3.4 – Modelo proposto.

Foi implementada uma rotina que realiza beamforming através do algoritmo delay and sum.

Esta rotina recebe os valores dos atrasos entre cada canal do AM. A compensação dos sinais

é realizada através de 64 buffers circulares (cada um relativo a um canal) que contém um

número de amostras correspondente ao atraso máximo que esse canal poderá ter. A selecção

da amostra de cada canal para posterior soma, é realizada com recurso a ponteiros, o que

como se verá torna a rotina extremamente eficiente do ponto de vista computacional.

19 Unidade central de processamento de um computador.

Page 75: Sistema adaptativo de controlo da directividade de um

59

Figura 3.3.5 – Funcionamento de um buffer circular.

Na Figura 3.3.5 é representado o funcionamento geral de um buffer circular. O valor de (n)

representa a amostra actual. O tamanho do buffer circular é dado por N=SP-ST, que por sua

vez também representa o máximo atraso que se pode obter. O ponteiro que percorre o buffer

circularmente é indicado por P. Este aponta para o sito onde se poderá ler primeiramente o

atraso máximo, e depois guardar a amostra actual. Para ler uma amostra com um atraso , que

pode variar entre zero (sem atraso) e N (atraso máximo), é utilizado um segundo ponteiro que

se designa por exemplo com P1. Assim, a amostra em atraso dada por (n-), é lida no buffer

circular através do ponteiro P1=P-. Nos casos limite, se =0, lê-se a amostra em P depois de

guardar a amostra actual. Se =N, lê-se a amostra em P antes de se guardar a amostra actual.

Foi implementada outra rotina que recebe 4 sinais em janelas de 8192 amostras. Os sinais

correspondem aos microfones #1, #22, #43 e #64. O objectivo nesta escolha, é realizar o

cálculo do ângulo entre pares adjacentes. Desta forma é aproximadamente conseguida a

situação de onda plana para estimativa correcta do ângulo. Continua a ter-se um microfone de

referência que será o #1. É calculado o ângulo utilizando os pares de microfones #1 e #22, #22

e #43 e, por último, o #43 e #64. Após se obterem estes ângulos, são calculados os valores de

atraso entre cada microfone com recurso à seguinte equação:

(amostras) ( 3.3.2 )

Sendo a distância entre microfones dada por d. Assim, o único factor variável será cos(), por

isso, o cálculo da parcela que é fixa pode ser realizado previamente, antes da rotina. Após

obter os atrasos relativos entre os sinais dos 64 microfones, estes serão enviados para a rotina

que realiza o beamforming.

A implementação das duas rotinas mencionadas acima teve como objectivo testar a

capacidade de processamento do computador para realizá-las. Assim, as rotinas foram

Page 76: Sistema adaptativo de controlo da directividade de um

60

testadas sequencialmente, sem processos paralelos (à excepção dos processos inerentes ao

sistema operativo).

Rotina de Beamforming Tempo real dispendido ( s)

Conversão de 64 amostras (24 bit) em 32bits e

subsequente armazenamento nos buffers circulares

com actualização dos apontadores.

3

Beamforming (soma dos sinais depois de alinhados e

divisão dessa soma pelo número de canais) 6

Envio de resultado do beamforming para placa de som

do computador em amostras convertidas para

PCM24bits.

1,5

Tempo Total 10,5

Tabela 3.3.2 - Tempos reais dispendidos pela rotina de beamforming.

Rotina para cálculo dos atrasos Tempo real dispendido ( s)

4 FFT 1000

3 Correlações com função de peso PHAT 4920

3 IFFT (transformada inversa de Fourier) 675

Cálculo de 3 ângulos 9,3

Cálculo dos 63 atrasos 15

Tempo Total 6619,3

Tabela 3.3.3 - Tempos reais dispendidos pela rotina de cálculo dos atrasos.

Pode observar-se na Tabela 3.3.2 que a rotina de beamforming demora apenas 10,5 s, o que

significa que pode ser implementada no tempo de espera para recolha de pacotes (227 s). O

cálculo dos atrasos poderá ser realizado através de um sub-processo em paralelo.

Page 77: Sistema adaptativo de controlo da directividade de um

61

Assim, obter-se-á uma aplicação implementada em computador, que orienta a directividade do

AM consoante a direcção do orador, com uma taxa de actualização de cerca de 377 ms.

Conclui-se que aumentando o tempo entre actualizações os resultados do algoritmo poderiam

melhorar, dado que a estimativa dos atrasos seria mais fiável. É de referir também, que o

computador utilizado opera a uma frequência inferior à dos computadores existentes

actualmente no mercado. Os computadores actuais contêm mais do que um processador,

sendo esse paralelismo, ideal para efectuar este tipo de processamento. Assim, será possível

melhorar em muito a qualidade de detecção do ângulo.

Page 78: Sistema adaptativo de controlo da directividade de um

62

Page 79: Sistema adaptativo de controlo da directividade de um

63

4. CONCLUSÕES E TRABALHO FUTURO

Neste trabalho construiu-se um AM linear de 64 microfones. O projecto do AM foi baseado num

projecto do NIST, tendo sido feitas alterações nas placas de aquisição de dados. Foi detectada

uma falha no projecto do NIST que consistia numa ligação errada de um pino dos conversores

AD. Essa falha tornava a tensão de alimentação digital significativamente superior ao

esperado, tornando inútil o regulador de tensão para criar essa tensão. Neste projecto, essa

falha foi corrigida e, para além disso, ao redesenhar os circuitos analógicos de

condicionamento do sinal do AM, a dimensão das placas de aquisição de dados foi reduzida de

um factor de 3 vezes, tornando-se este AM num sistema menos dispendioso, com dimensões

inferiores e um consumo energético de aproximadamente metade em relação à versão original.

Os ganhos de tensão dos 64 canais do AM construídos, possuem uma margem de ajuste na

ordem dos 10 dB, dotando o sistema de versatilidade para poder operar em espaços de

diferentes dimensões.

O sistema construído permite realizar diversas funções mediante processamento específico

para efectuar cada uma delas. Através de algoritmos de filtragem espacial, o AM pode adquirir

sinais de fala sem ser necessário o locutor estar próximo deste. Pode ser realizada a

separação espacial entre sinais de ruído e sinais de fala. O AM pode também detectar a

direcção do orador e realizar seguimento de oradores.

Para analisar o desempenho do sistema construído foram realizados diversos testes aos

circuitos. Para além de testes ao nível da análise dos circuitos, que indicaram o funcionamento

do sistema, foram também implementados no sistema algoritmos tipicamente usados neste tipo

de processamento.

Primeiramente foram realizadas simulações em Matlab com dados reais provenientes do AM.

Os algoritmos de correlação cruzada (para detecção do orador) e o algoritmo de filtragem

espacial denominado delay and sum (para aumentar directividade do AM na direcção do

orador) foram os escolhidos para testar as capacidades do sistema. Os resultados obtidos

revelaram concordância em relação à teoria e também em relação a outros trabalhos nesta

área.

Verificou-se que o algoritmo delay and sum não consegue eliminar o ruído ambiente,

funcionando bem apenas quando existe ruído branco. Este fenómeno, resulta da limitação na

directividade do AM para sinais de frequências inferiores a 500 Hz (banda de frequências que

respeita a uma grande porção do espectro dos sinais de fala e também do ruído acústico).

Aumentando a abertura (distância entre os microfones mais distantes) do AM seria possível

obter melhores resultados dado que a resolução espacial seria maior.

Page 80: Sistema adaptativo de controlo da directividade de um

64

Para testar o AM em tempo real, foi realizada uma aplicação (utilizando-se linguagem C em

ambiente Linux) em tempo real que detecta a direcção do orador (utilizando para isso apenas 3

microfones do AM). Esta aplicação consegue efectuar seguimento do orador com taxa de

actualização de aproximadamente 375ms, fornecendo uma estimativa do ângulo com um erro

de 3 graus.

Após realizar a aplicação descrita anteriormente, foram feitas medições ao desempenho do

processador do computador no decorrer da mesma. Foi verificado que estando o AM a emitir

dados com Fs=22050 Hz para o computador (Intel Pentium M 1,73 GHz, com 1,5 GB de

memória RAM), a aplicação conseguia realizar todo o processamento com uma margem

suficiente grande para não haver perda de amostras.

Implementou-se uma rotina para calcular os atrasos entre os 64 microfones do AM,

processando-se apenas 4 sinais respectivos a 4 canais para estimar os atrasos de todos os

outros. Por último, foi implementada uma rotina para atrasar e somar os sinais devidamente

compensados dos respectivos atrasos. Foram obtidas medições de desempenho no

computador utilizado, confirmando-se que num trabalho futuro, facilmente se conseguirá

realizar um algoritmo utilizando os 64 canais do AM, que será por exemplo, a interligação das

duas rotinas implementadas. Obtendo-se assim uma aplicação que permite controlar a

directividade do AM consoante a localização do orador. No entanto, o algoritmo delay and sum

não produz resultados que compensem a utilização de 64 microfones. Terão que ser aplicados

algoritmos mais sofisticados como por exemplo o Side Lobe Canceling, que aplica lobos

auxiliares na direcção do ruído, de forma a eliminar completamente o ruído que o lobo principal

só consegue atenuar.

No entanto, com computadores com melhores capacidades de processamento, poder-se-ão

implementar algoritmos de maior complexidade. Poder-se-ia inclusivamente reduzir a

frequência de amostragem de modo a obter mais tempo para processar algoritmos complexos.

Um trabalho futuro interessante poderá ser encontrar um algoritmo que produza bons

resultados e que possa ser implementado num processador digital de sinal que seria ligado ao

AM construído, tornando o AM num sistema independente.

Page 81: Sistema adaptativo de controlo da directividade de um

65

5. REFERÊNCIAS

[1]D. H. Johnson and D. E. Dudgeon, Array Signal Processing: Concepts and Techniques. New

Jersey: Prentice Hall,1993.

[2] M. Seltzer, B. Raj. “Calibration of Microphone arrays for improved speech recognition”.

Mitsubishi Research Laboratories, TR-2002-43, December 2001.

[3] E. Weinstein, K. Steele, A. Agarwal, and J. Glass, ”LOUD: A 1020-Node Modular

Microphone Array and Beamformer for Intelligent Computing Spaces”, MIT/LCS Technical

Memo MIT-LCS-TM-642,2004

[4] D.V. Rabinkin, R.J. Ranomeron, J.C. French, J.L. Flanagan, M.H. Bianchi, A DSP

implementation of source location using microphone arrays, in: Proceedings of the SPIE, vol.

2846, 1996, pp. 88-99.

[5] V. Stanford, J. Garofolo, O. Galibert, M. Michel, C. Laprun “The NIST Smart Space and

Meeting Room Projects: Signals, Acquisition, Annotation and Metrics”, Proceedings of ICASSP

2003 in special session on smart meeting rooms.

[6] “Microphone Array Support in Windows Vista” em

http://www.microsoft.com/whdc/device/audio/MicArrays.mspx

[7] C. Rochet, ”Technical Documentation of the Microphone Array Mark III” NIST, sep. 2005

[8] C. Rochet, ”User´s Manual of the Microphone Array Mark III version 2” NIST, sep. 2005

[9] I. Tashev, “Gain Self-Calibration Procedure for Microphone Arrays”, Microsoft Research,

2004

[10] G. F. Coelho,”Aquisição de fala para ambientes virtuais”, IST, Novembro de 2006

[11] M. Omologo, M. Matassoni, P. Svaizer. "Speech recognition with microphone arrays", In

M.S.Brandstein and D. B. Ward (eds.) , Microphone Arrays: Signal Processing Techniques and

Applications, Springer Verlag, 2001.

[12] J. DiBiase, “A high-accuracy, low-latency technique for talker localization in reverberant

environments”, PhD thesis, Brown University, May 2000.

Page 82: Sistema adaptativo de controlo da directividade de um

66

[13] J. DiBiase, H. Silverman, and M. Brandstein, "Robust Localization in Reverberant Rooms,"

In M. S. Brandstein and D. B. Ward (eds.) , Microphone Arrays: Signal Processing Techniques

and Applications, Springer, 2001.

[14] Y. Rui and Dinei Florencio, “New direct approaches to robust sound source localization”,

Proc. Of IEEE ICME 2003, Baltimore, MD, July 6-9

[15] Greenberg, Zurek, "Evaluation of an adaptive-beamforming method for hearing aids", J.

Acoustical Society of America, vol. 91, pp. 1662-1676, 1992;

[16] X. Bian, J. M. Rehg, G. D. Abowd, ”Sound Source Localization in Domestic Environment”,

Georgia Institute of Technology, April, 2006.

[17] Knapp et al., "The Generalized Correlation Method for Estimation of Time Delay," IEEE

Trans. Acoust., Speech, Signal Processing, 24:320-27 (1976).