Laboratório de Microprocessadores

Projeto Final

1.    Introdução

1.1      Objetivo

Identificar oito tipos diferentes de freqüência previamente definidos em um arquivo de som.

2.    Funcionamento

O som a ser analisado será reproduzido por um PC.

Na saída da placa de som será conectado o sistema que deve reconhecer os oito tipos diferentes de freqüência.

Para cada freqüência, um LED diferente é acionado.

funcionamento.png

3.    Implementação

3.1      Requisitos de Hardware

·         Microcontrolador AT90CAN128

·         Atmel STK500

3.2      Requisitos de Software

O algoritmo implementado para identificar os diferentes tipos de freqüência será o algoritmo de correlação de sinais.

3.2.1     Correlação

A correlação é uma operação matemática utilizada em diversas áreas de conhecimento, ela mostra o grau de similaridade entre duas variáveis. No processamento digital de sinais, para o calculo da correlação, temos como entrada dois sinais discretos no tempo, e como saída, um novo sinal é produzido. Este sinal é chamado de correlação cruzada, e nos mostra o grau de similaridade entre dois sinais de entrada distintos, levando em conta possíveis deslocamentos no tempo.

 

A correlação é utilizada para detectar um sinal conhecido dentro de um outro sinal desconhecido. Como no funcionamento de um radar, por exemplo, é transmitido um formato de onda de radio conhecido em uma determinada direção. Se esta onda atinge algum objeto, uma pequena fração é refletida de volta na direção do transmissor e é captada por um receptor. O sinal recebido é o sinal que foi transmitido deslocado no tempo, mais os ruídos que ocorrerem no ambiente de propagação. Com a correlação conseguimos identificar se o formato de onda transmitido esta presente no sinal recebido. Através da velocidade de propagação do sinal radio e o deslocamento no tempo do sinal alvo no sinal recebido, calcula-se a distância entre o transmissor e o objeto refletor.

 

A Figura 1 apresenta um exemplo do funcionamento da correlação. Temos como entrada dois sinais, o sinal desconhecido e o sinal alvo (sinal conhecido), e como saída temos um terceiro sinal, que é a correlação cruzada entre os dois sinais de entrada.

 

correlacao_esquematico.png

Figura 1 - Exemplo de Correlação

 

A amplitude de cada amostra do sinal de correlação cruzada é uma medida de quanto o sinal alvo esta relacionado com o sinal desconhecido naquele instante. Isto significa que ira ocorrer um pico no sinal da correlação cruzada toda vez que o sinal alvo estiver presente no sinal desconhecido. Como ilustrado na Figura 1, os dois picos no sinal de saída representam as duas ocorrências do sinal alvo no sinal desconhecido.

4.    Implementação

4.1      Validação do algoritmo de correlação

O primeiro teste realizado foi para verificar o correto funcionamento da implementação. Existe no Matlab uma função chamada “xcorr”, que realiza a correlação de sinais de maneira semelhante à implementada neste trabalho.

 

Foi definido um conjunto de dados de sinais e estes foram fornecidos como entrada para o algoritmo deste trabalho e a função “xcorr” do Matlab. Para cada sinal de entrada fornecido, seus resultados eram comparados. Os dois algoritmos apresentaram os mesmos valores de saída para uma mesma entrada, garantindo assim o correto funcionamento da implementação.

4.2      Definição das freqüências

A identificação das freqüências foi realizada com a ajuda do Matlab. Como o algoritmo da correlação não funciona bem com freqüências que sejam múltiplas uma das outras, foram escolhidos números primos como possíveis valores de freqüência. Um procedimento de teste foi realizado da seguinte maneira:

1.      Escolhe-se oito valores diferentes de freqüência

2.      Realiza-se a correlação entre as oito freqüências.

3.      Monta-se uma tabela das correlações.

4.      Se existir na tabela, valores altos de correlação para duas freqüências diferentes, uma delas era substituída e voltava-se para o passo dois.

 

A Tabela 1 apresenta os valores de correlação entre oito freqüências diferentes. Os valores de correlação devem ser altos na diagonal principal, enquanto que nas outras células deve ser o menor possível.

 

Tabela 1 – Valores de correlação entre oito freqüências diferentes.

Freqüências

F1

F2

F3

F4

F5

F6

F7

F8

F1

13,73

4,44

1,41

1,33

0,61

0,84

0,46

0,58

F2

4,44

13,02

2,57

1,22

0,58

0,75

0,36

0,47

F3

1,41

2,57

14,91

2,29

0,84

1,18

0,60

0,70

F4

1,33

1,22

2,29

13,30

1,78

1,08

0,54

0,53

F5

0,61

0,58

0,84

1,78

13,97

2,63

1,15

1,05

F6

0,84

0,75

1,18

1,08

2,63

14,18

1,82

1,03

F7

0,46

0,36

0,60

0,54

1,15

1,82

14,79

2,66

F8

0,58

0,47

0,70

0,53

1,05

1,03

2,66

17,73

 

Com está analise garantiu-se que as freqüências escolhidas retornavam valores altos quando correlacionadas com elas mesmas, e valores baixos quando correlacionadas com as outras freqüências.

4.2.1     Freqüência x ADC

Segundo o teorema de Nyquist para uma perfeita reconstrução de um sinal continuo analógico em um sinal discreto digital, é necessária uma taxa de amostragem duas vezes maior que a freqüência máxima do sinal analógico. Desta forma, a escolha das freqüências foi limitada a capacidade máxima de amostragem do ADC do microcontrolador AT90CAN128. Sendo que a maior freqüência escolhida é menor do que metade da freqüência máxima suportada pelo ADC do AT90CAN128.

4.3      Grampeador positivo sem polarização

Circuito utilizado entre a saída da placa de som e a entrada do sistema embarcado.

 

circuito.png

Figura 2 - Grampeador positivo sem polarização

5.    problemas encontrados

Configuração do clock do microcontrolador.

Configuração do ADC. Para o algoritmo de correlação funcionar corretamente, é necessário que se tenha uma taxa de amostragem exatamente igual a taxa de amostragem usada para geração dos vetores de referência.

O circuito utilizado gera harmônicas, que poderiam estar dificultando o cálculo da correlação.