Laboratório de Microprocessadores
Projeto Final
Identificar oito tipos diferentes de freqüência previamente definidos em um arquivo de som.
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.
· Microcontrolador AT90CAN128
· Atmel STK500
O algoritmo implementado para identificar os diferentes tipos de freqüência será o algoritmo de correlação de sinais.
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.
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.
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.
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.
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.
Circuito utilizado entre a saída da placa de som e a entrada do sistema embarcado.
Figura 2 - Grampeador positivo sem polarização
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.