• Nenhum resultado encontrado

2008.2DaviCaldas-Monografia

N/A
N/A
Protected

Academic year: 2021

Share "2008.2DaviCaldas-Monografia"

Copied!
85
0
0

Texto

(1)

Davi de Oliveira Caldas

Estima¸

ao de Pitch Atrav´

es de An´

alise de

Fourier e T´

ecnicas Digitais Para Um

Afinador de Instrumentos El´

etricos de

Corda

Feira de Santana – BA Mar¸co / 2009

(2)

Davi de Oliveira Caldas

Estima¸

ao de Pitch Atrav´

es de An´

alise de

Fourier e T´

ecnicas Digitais Para Um

Afinador de Instrumentos El´

etricos de

Corda

Monografia de Conclus˜ao de Curso apresentada `a Coordena¸c˜ao do Curso de Engenharia de Computa¸c˜ao da Universidade Estadual de Feira de Santana, para obten¸c˜ao do grau de Bacharel em Engenharia de Computa¸c˜ao.

Orientador:

Prof. Dr. Edgar Silva J´

unior

Co-orientador:

Prof. Dr. Gustavo Henrique Machado de Arruda

Curso de Engenharia de Computac¸˜ao Departamento de Tecnologia

Universidade Estadual de Feira de Santana

Feira de Santana – BA Mar¸co / 2009

(3)

Dedicat´

oria

Dedico esta monografia aos meus pais, Fernando e No´elia; ao meu irm˜ao, Luan; `a minha av´o, Nadir; e `a minha namorada, Nara, por serem minha fam´ılia. Por serem tudo o que sempre irei precisar em toda a minha jornada.

(4)

Agradecimentos

Meus agradecimentos v˜ao para todas as pessoas que me apoiaram durante minha passagem pelo curso de Engenharia de Computa¸c˜ao. Minha fam´ılia, por todo o amor a mim dedicado. `A Nara, por sempre me indicar as boas dire¸c˜oes da vida e estar sempre ao meu lado. Aos meus colegas de sala, por todos os momentos divertidos (junto ao conhecimento, levo comigo as boas risadas e as grandes amizades, guardadas). Aos meus orientadores Gustavo e Edgar, por todo o apoio e paciˆencia com que fui orientado nesse projeto. A todos os outros professores que me passaram importantes conhecimentos, durante o curso. Ao funcion´ario do Labhard, Luciano, pelo suporte durante as horas de testes em laborat´orio. Aos funcion´arios da limpeza, que deixam tudo `a ordens, e por quem passamos e esquecemos de dar um sorriso que seja. Um obrigado muito grande a todos vocˆes. Vocˆe fizeram parte de minha vida nesse pouco tempo no qual respirei Engenharia de Computa¸c˜ao. E, com certeza, h˜ao de fazer para sempre.

(5)

“Se as coisas s˜ao inating´ıveis... ora! N˜ao ´e motivo para n˜ao querˆe-las... Que tristes os caminhos, se n˜ao fora A presen¸ca distante das estrelas!” M´ario Quintana

(6)

Resumo

A estima¸c˜ao da frequˆencia de pitch de um sinal ´e um ramo de pesquisa da ´area de Processamento Digital de Sinais. Essa estima¸c˜ao pode ser utilizada em diversas aplica¸c˜oes, de softwares de detec¸c˜ao e reconhecimento de voz para per´ıcia policial, a aplica¸c˜oes destinadas a usu´arios comuns, como afinadores eletrˆonicos para instrumentos musicais. A estima¸c˜ao, em si, pode ocorrer com a utiliza¸c˜ao de diversos m´etodos computacionais. Um desses m´etodos ´e o que utiliza a Transformada R´apida de Fourier. Essa transformada permite uma an´alise mais profunda do sinal a ser tratado, porque exibe caracter´ısticas dificilmente vis´ıveis na an´alise no dom´ınio do tempo.

Esse trabalho prop˜oe a utiliza¸c˜ao de um novo algoritmo num´erico para a estima¸c˜ao da frequˆencia de pitch de um sinal atrav´es de an´alise de Fourier. Tal algoritmo poder´a vir a servir em afinadores eletrˆonicos que realizem a estima¸c˜ao/extra¸c˜ao da frequˆencia de pitch de um sinal oriundo de um instrumento el´etrico de cordas. A aplica¸c˜ao, desenvolvida em linguagem C e em linguagem do ambiente MATLAB, far´a a estima¸c˜ao dessa frequˆencia de pitch e apresentar´a ao usu´ario o estado de afina¸c˜ao da corda.

As particularidades do algoritmo proposto, bem como o algoritmo de Transformada R´apida de Fourier utilizado, ser˜ao discutidos na presente monografia.

Palavras chave: processamento digital de sinais, t´ecnicas digitais, estima¸c˜ao de pitch, an´alise de Fourier, FFT.

(7)

Abstract

The signal pitch frequency estimation is a research subject on Digital Signal Processing area. This estimation can be used in several applications, such as voice detection and recognition softwares (e.g., for forensic science specialists) and applications designed for common users, like musical instruments electronic tuner. The estimation itself can occur by using several computational methods. One of this methods uses the Fourier Fast Transform. This transformation allows a deeper signal analysis because some characteristics of the signal are hardly seen on time domain (like DC level and frequencies contributions).

This document proposes a new numeric algorithm that estimates the signal pitch frequency using the Fourier analysis. Such an algorithm can be used in real electronic tuners that estimate/extract the pitch frequency of string electric instruments. The application, developed in C and MATLAB languages, does this pitch frequency estimation and shows to the user the string tunning status.

Both the particularities of the algorithm here proposed, and the Fast Fourier Transform algorithm that was utilized will be discussed.

Keywords: digital signal processing, digital techniques, pitch estimation, Fourier analysis, FFT

(8)

Sum´

ario

Lista de Tabelas

Lista de Algoritmos p. 12

1 Introdu¸c˜ao p. 13

2 Revis˜ao Bibliogr´afica p. 16

2.1 Teoria Musical . . . p. 16 2.2 M´etodos de Extra¸c˜ao da Frequˆencia de Pitch . . . p. 21 2.3 Transformada Discreta de Fourier (DFT) e Transformada R´apida de

Fourier (FFT) . . . p. 25

3 Desenvolvimento p. 30

3.1 Projeto de Algoritmo de Estima¸c˜ao de Pitch . . . p. 31 3.1.1 Algoritmo FFT Baseado no M´etodo de Cooley-Tukey . . . p. 31 3.1.2 Algoritmo FFT Implementado Baseado no Lema de

Danielson-Lanczos e no bit reversal . . . p. 33 3.1.3 Algoritmo de Estima¸c˜ao de Pitch pelo M´etodo de Janelamento . p. 36 3.2 Projeto de Hardware para Testes em Protoboard . . . p. 39 3.2.1 Aquisi¸c˜ao do Sinal . . . p. 40 3.2.2 Filtragem Anal´ogica . . . p. 42 3.2.3 Processamento Digital do Sinal . . . p. 44 3.2.4 Indica¸c˜ao da Afina¸c˜ao Atrav´es de LEDs . . . p. 50

(9)

5 Conclus˜ao p. 60

Referˆencias p. 63

Apˆendice A - C´odigo de estima¸c˜ao de pitch em linguagem MATLAB p. 65

Apˆendice B - C´odigo de estima¸c˜ao de pitch em linguagem C p. 67

Apˆendice C - C´odigo de estima¸c˜ao de pitch em linguagem C para

(10)

Lista de Figuras

1 Estrutura f´ısica de um viol˜ao. Em destaque, as trˆes principais partes de

sua estrutura: a cabe¸ca, o bra¸co e o corpo. . . p. 17 2 Tarraxas de um viol˜ao, em destaque. . . p. 17 3 Modelo de um circuito pr´e-amplificador de um viol˜ao el´etrico. Algumas

vezes, tais pr´e-amplificadores tamb´em possuem circuitos equalizadores

de bandas. . . p. 18 4 Espectro da corda “l´a” no dom´ınio da frequˆencia, obtido de um viol˜ao

el´etrico. . . p. 20 5 Sinal senoidal no dom´ınio do tempo. . . p. 22 6 Sinal com mais de uma componente, no dom´ınio do tempo. Neste

exemplo, uma soma de senoides: 0, 9 sin(x) + 0, 1 sin(20x). . . p. 23 7 Grafo da FFT de decima¸c˜ao no tempo para um caso de 8 amostras. . . p. 29 8 Fluxograma do processo em blocos do circuito. . . p. 40 9 Sinal da corda “l´a” do viol˜ao, no dom´ınio do tempo, adquirido de um

viol˜ao el´etrico atrav´es da placa de som computador. Um per´ıodo do

sinal, em destaque. . . p. 41 10 N´ıvel DC presente no espectro de frequˆencias da corda “l´a” do viol˜ao

-pode-se observar tal n´ıvel DC como um impulso de grande magnitude na

frequˆencia de 0 Hz. . . p. 42 11 N´ıvel DC exclu´ıdo do espectro de frequˆencias da corda “l´a” do viol˜ao

-pode-se observar n˜ao h´a mais impulso na frequˆencia 0 Hz, em t=0. . . . p. 43 12 Filtro DC anal´ogico e circuito limitador de tens˜ao implementados em

protoboard. . . p. 44 13 Fluxograma da l´ogica presente no ATMEGA8. . . p. 46 14 Esquema da ponte H utilizada durante simula¸c˜oes. . . p. 51

(11)

15 Resultado da FFT e da estima¸c˜ao de pitch em MATLAB para a corda

“mi” (1a corda do viol˜ao). . . p. 53 16 Resultado da FFT e da estima¸c˜ao de pitch em MATLAB para a corda

“si” (2a corda do viol˜ao). . . . p. 54

17 Resultado da FFT e da estima¸c˜ao de pitch em MATLAB para a corda

“sol” (3a corda do viol˜ao). . . . p. 54

18 Resultado da FFT e da estima¸c˜ao de pitch em MATLAB para a corda

“r´e” (4a corda do viol˜ao). . . . p. 55

19 Resultado da FFT e da estima¸c˜ao de pitch em MATLAB para a corda

“l´a” (5a corda do viol˜ao). . . . p. 55

20 Resultado da FFT e da estima¸c˜ao de pitch em MATLAB para a corda

“Mi” (6a corda do viol˜ao). . . . p. 56

21 Resultado da estima¸c˜ao de pitch da corda “Si”, atrav´es do programa em

(12)

Lista de Tabelas

1 Valores pr´e-estabelecidos das frequˆencias de pitch de cada corda do viol˜ao. p. 19 2 Valores referentes ao per´ıodo de cada corda do viol˜ao. . . p. 21 3 Poss´ıveis estados dos bits que definem a corda escolhida pelo usu´ario. . p. 49 4 Poss´ıveis estados de um motor DC em uma ponte H. . . p. 52 5 Resultado das simula¸c˜oes em ambiente MATLAB: comparativo entre o

(13)

12

Lista de Algoritmos

1 Algoritmo Recursivo baseado no m´etodo Cooley-Tukey . . . p. 32 2 Primeira parte do algoritmo FFT baseado no lema de Danielson-Lanczos

e no bit reversal . . . p. 34 3 Segunda parte do algoritmo FFT baseado no lema de Danielson-Lanczos

e no bit reversal . . . p. 35 4 Algoritmo de janelamento definido. . . p. 38 5 Algoritmo l´ogico presente no ATMEGA8. . . p. 48

(14)

13

1

Introdu¸

ao

O uso de sistemas digitais embarcados em instrumentos musicais vem se tornando cada vez mais frequente. Uma vez que os conceitos relacionados a Processamento Digital de Sinais podem ser aplicados aos sinais oriundos de instrumentos musicais, dispositivos como pedais de efeito, pedaleiras, afinadores eletrˆonicos e metrˆonomos digitais passaram a ser objetos de estudo e desenvolvimento. Tais dispositivos mostram-se como ferramentas de distinta importˆancia para m´usicos profissionais e amadores. Dentre esses dispositivos citados, um mostra-se relevante para os m´usicos: o afinador eletrˆonico para guitarra, viol˜oes el´etricos e contrabaixos el´etricos.

Afinadores s˜ao dispositivos utilizados por m´usicos profissionais (que desejam possuir o instrumento musical corretamente afinado), por profissionais da ´area de m´usica (como roadies) e por m´usicos iniciantes (que ainda n˜ao sabem como afinar seu instrumento musical). Um dos primeiros afinadores musicais surgiu em 1960, j´a protegido por direitos autorais, atrav´es de uma patente, nos EUA (PETTERSON, 1960). Afinadores el´etricos funcionam estimando a frequˆencia de pitch da corda e, em seguida, indicando se a corda em quest˜ao est´a acima ou abaixo de sua frequˆencia correta. Essa frequˆencia de pitch ´e a frequˆencia que define o som da corda. Baseado na indica¸c˜ao do estado da afina¸c˜ao pelo afinador, o m´usico tensiona ou afrouxa a corda manualmente atrav´es da tarraxa do instrumento at´e que o afinador indique que a corda est´a afinada. Esse processo de afina¸c˜ao pode dar-se de diversas formas e seguindo diversos algoritmos, cada um com suas particularidades (DHALIWAL et al., 2007). Em sistemas embarcados de afinadores el´etricos manuais pode-se utilizar um microcontrolador como dispositivo central, j´a que este possibilita a aquisi¸c˜ao de sinais, bem como seu processamento.

`

A an´alise de extra¸c˜ao da frequˆencia caracter´ıstica de um sinal d´a-se o nome de extra¸c˜ao ou estima¸c˜ao de pitch (ITO; DONALDSON, 1971;SCARR, 1968; LERCH, 2006). Tais t´ecnicas s˜ao utilizadas em diversas ´areas de pesquisa: ac´ustica, an´alise de fala humana, afina¸c˜ao de instrumentos musicais (GERHARD, 2003; ITO; DONALDSON, 1971). Essa extra¸c˜ao da frequˆencia de pitch do sinal pode dar-se em diferentes dom´ınios (como, por exemplo,

(15)

1 Introdu¸c˜ao 14

tempo e frequˆencia) e dentro de cada dom´ınio existem diversos m´etodos que possuem particularidades e s˜ao, cada um, direcionados a um ou mais tipos de sistemas ou de sinais. Um desses dom´ınios de atua¸c˜ao de m´etodos de extra¸c˜ao de pitch ´e o dom´ınio da frequˆencia. Na ´area de sinais, essa an´alise no dom´ınio da frequˆencia est´a relacionada `a transformada discreta de Fourier (DFT), que se mostra como uma importante ferramenta para a an´alise do sinal a ser considerado, transpondo-o do dom´ınio do tempo para o dom´ınio da frequˆencia. Nesse dom´ınio da frequˆencia, algumas particularidades do sinal podem ser melhor analisadas e estudadas (OPPENHEIM; SCHAFER, 1999). Ao algoritmo que realiza o c´alculo da DFT do sinal d´a-se a denomina¸c˜ao de FFT (do inglˆes Fast Fourier Transform - Transformada R´apida de Fourier). Considerando-se o sinal no dom´ınio da frequˆencia, pode-se ainda utilizar em alguns casos a implementa¸c˜ao de filtros digitais para a exclus˜ao de determinadas frequˆencias que distorcem alguma caracter´ıstica do sinal real, as vezes criando imperfei¸c˜oes no sinal e dificultando a extra¸c˜ao da frequˆencia de pitch do mesmo.

Parte dos afinadores presentes no mercado possui uma an´alise de sinal no dom´ınio do tempo. Uma conhecida forma de an´alise de sinal no dom´ınio do tempo e que encontra-se implementada em alguns afinadores existentes no mercado ´e a de an´alise de taxa de cruzamento com o eixo x ou eixo zero: o ZCR (do inglˆes Zero Crossing Rate - taxa de cruzamento com zero). Tal proposta de an´alise do sinal ´e utilizada, por exemplo, em reconhecimento de fala (ITO; DONALDSON, 1971; SCARR, 1968), an´alise de sinais, mecˆanica dos fluidos etc (KEDEN, 1986). ZCR pode apresentar, em alguns casos, uma solu¸c˜ao efetiva, como em sistemas LTI de sinais randˆomicos com filtragem (KEDEN, 1986).

A escolha de uma abordagem de an´alise de sinal no dom´ınio do tempo pode n˜ao refletir, por vezes, numa escolha adequada frente `a quantidade de ru´ıdos e imperfei¸c˜oes (como baixo ganho, n´ıvel DC presente, sobretens˜ao) existentes no sinal originado do instrumento musical. Tais imperfei¸c˜oes no sinal podem impossibilitar uma an´alise no dom´ınio do tempo. Dessa forma, pode-se fazer necess´aria a implementa¸c˜ao de um sistema mais robusto, capaz de efetuar estima¸c˜oes da frequˆencia de pitch com maior precis˜ao, atrav´es de uma exclus˜ao da parte ruidosa e imperfeita do sinal a ser considerado.

Neste trabalho de conclus˜ao de curso, implementou-se uma nova t´ecnica de extra¸c˜ao de pitch de um sinal, atrav´es da an´alise discreta de Fourier e, em seguida, efetuou-se testes em ambiente MATLAB, em ambiente de linguagem C e em um prot´otipo com um microcontrolador, utilizando-se sinais oriundos de uma viol˜ao el´etrico, a fim de comprovar a eficiˆencia de tal algoritmo. Para esse m´etodo de estima¸c˜ao de pitch, algumas t´ecnicas digitais foram utilizadas, uma vez que foi preciso tratar o vetor resultante da Transformada

(16)

1 Introdu¸c˜ao 15

R´apida de Fourier, de forma que fossem analisadas faixas do vetor (e n˜ao todas as amostras obtidas). Essa esp´ecie de janelamento do vetor pretendeu otimizar a solu¸c˜ao proposta, pois, analisando-se apenas uma parte desse vetor, reduz-se o gasto em processamento e soluciona-se o problema de analisar todo o espectro de frequˆencia (inclusive as indesej´aveis frequˆencias altas, que comumente s˜ao ru´ıdos).

Os testes em protoboard foram baseados em um microcontrolador de estrutura RISC: o ATMEGA8, da Atmel. Tal componente foi utilizado na implementa¸c˜ao do algoritmo de extra¸c˜ao de pitch do sinal (atrav´es da an´alise de Fourier do sinal), assim como nos testes com o atuador do sistema, de acordo com a frequˆencia estimada pelo microcontrolador (j´a que cada corda deve possuir uma frequˆencia padr˜ao). Al´em do microcontrolador, o sistema possui um circuito de comunica¸c˜ao entre o computador e o microcontrolador (para a programa¸c˜ao e testes) e filtros anal´ogicos resistivos-capacitivos - para reduzir certos tipos de ru´ıdos de um sinal (BOYLESTAD; NASHELSKY, 2006; SEDRA; SMITH, 2004). Para os testes em ambiente MATLAB e em linguagem C, o algoritmo desenvolvido tratou a quest˜ao de ru´ıdos e filtragem de n´ıvel DC, exibindo na tela o pitch estimado.

(17)

16

2

Revis˜

ao Bibliogr´

afica

Nesta se¸c˜ao, ser˜ao abordados alguns conceitos ´uteis `a implementa¸c˜ao do projeto. Para o desenvolvimento deste trabalho, foram necess´arios conhecimentos de Processamento Digital de Sinais (Transformadas Discreta e R´apida de Fourier) e de Circuitos El´etricos e Eletrˆonicos (Microcontroladores e Filtros Anal´ogicos). O presente cap´ıtulo representa, desse modo, o resultado dessa pesquisa.

Na subse¸c˜ao de teoria musical, ser´a vista alguma fundamenta¸c˜ao a respeito de termos e no¸c˜oes musicais (como, por exemplo, o conceito de frequˆencia de pitch e a caracteriza¸c˜ao das frequˆencias de pitch de cada corda); na pr´oxima subse¸c˜ao, ser˜ao discutidos os tipos e os dom´ınios dos m´etodos de extra¸c˜ao da frequˆencia de pitch de um sinal, pesquisados como poss´ıveis solu¸c˜oes do m´etodo de estima¸c˜ao que foi desenvolvido. Na ´ultima subse¸c˜ao que se segue ser˜ao vistos os conceitos da Transformada Discreta de Fourier (DFT) e da Transformada R´apida de Fourier (FFT).

2.1

Teoria Musical

Um viol˜ao ´e um instrumento musical formado basicamente por um corpo, um bra¸co e uma cabe¸ca. Comumente, ´e feito de madeira ou de fibra de vidro. Pode ser el´etrico (com circuitos pr´e-amplificadores, equalizadores e captadores) ou puramente ac´ustico (sem nenhum tipo de dispositivos el´etrico de amplifica¸c˜ao ou equaliza¸c˜ao do som, intr´ınseco ao instrumento). Pode possuir, a priori, seis ou sete cordas e tais cordas podem ser feitas de a¸co ou de nylon, de acordo com o modelo do viol˜ao. Pode-se ver, na Figura 1, um exemplo da estrutura f´ısica de um modelo de viol˜ao.

(18)

2.1 Teoria Musical 17

Figura 1: Estrutura f´ısica de um viol˜ao. Em destaque, as trˆes principais partes de sua estrutura: a cabe¸ca, o bra¸co e o corpo.

Geralmente na cabe¸ca do viol˜ao encontram-se seis dispositivos denominados tarraxas, os quais prendem a corda do instrumento. Al´em de prenderem a corda do instrumento, tais tarraxas possibilitam a afina¸c˜ao correta do viol˜ao, uma vez que elas permitem que as cordas sejam tensionadas ou afrouxadas. Ou seja, o giro da tarraxa determina a tens˜ao mecˆanica da corda, tensionando-a ou afrouxando-a. Quando ´e aplicada a tens˜ao correta `

a corda, essa encontra-se afinada e possui a frequˆencia de pitch correta. Na Figura 2, observa-se as tarraxas do instrumento.

Figura 2: Tarraxas de um viol˜ao, em destaque.

(19)

2.1 Teoria Musical 18

sonoro gerado pelas cordas, transformando-os em tens˜ao el´etrica. O sinal captado segue, passando por um circuito pr´e-amplificador, que d´a um ganho no sinal. Vˆe-se, na Figura 3, um exemplo de um pr´e-amplificador e um esquema de seu circuito el´etrico correspondente, comumente encontrado em instrumentos el´etricos.

Figura 3: Modelo de um circuito pr´e-amplificador de um viol˜ao el´etrico. Algumas vezes, tais pr´e-amplificadores tamb´em possuem circuitos equalizadores de bandas.

Geralmente, existem seis cordas em um viol˜ao (alguns modelos podem possuir 7 ou at´e 12 cordas). Cada uma dessas cordas apresenta frequˆencias de pitch pr´oprias (de acordo com uma afina¸c˜ao padr˜ao que ´e determinada segundo uma frequˆencia base de 440 Hz) (LERCH, 2006). Quando uma corda do viol˜ao vibra, ela corda produz uma onda sonora espec´ıfica. Uma onda sonora tem quatro caracter´ısticas b´asicas: a amplitude, o pitch (que ´e a frequˆencia correta de vibra¸c˜ao da corda), o timbre (que ´e a forma do sinal no dom´ınio do tempo) e dura¸c˜ao (que ´e o tempo que a nota leva para soar) (BENSON, 2006).

Obviamente, tais fatores s˜ao mais complexos do que podem mostrar-se `a primeira vista. Por exemplo, uma onda sonora ´e formada por diversas componentes de diversas frequˆencias, inclusive ru´ıdos. Isso significa dizer que um som proveniente de um viol˜ao ´e formado pela sua frequˆencia correta de afina¸c˜ao (pitch), mas tamb´em por outras frequˆencias intr´ınsecas, que podem aparecer no processo de capta¸c˜ao do som (ru´ıdos) ou podem estar presentes na pr´opria forma¸c˜ao do som (frequˆencias m´ultiplas da frequˆencia de pitch). E a tarraxa do instrumento que, ao ser girada, tensiona mecanicamente a´ corda, conferindo-lhe uma afina¸c˜ao espec´ıfica. Dessa forma, um viol˜ao possui suas cordas afinadas, quando estas apresentam as frequˆencias de pitch de acordo com certos valores que j´a est˜ao pr´e-estabelecidos (DHALIWAL et al., 2007). Tais valores est˜ao dispostos na Tabela 1.

(20)

2.1 Teoria Musical 19

Tabela 1: Valores pr´e-estabelecidos das frequˆencias de pitch de cada corda do viol˜ao. Corda Frequˆencia de pitch em Hz

1a Corda (corda “mi”) 329,63

2a Corda (corda “si”) 246,94

3a Corda (corda “sol”) 196,00

4a Corda (corda “r´e”) 146,83

5a Corda (corda “l´a”) 110,00 6a Corda (corda “Mi”) 83,407

O ouvido humano capta e discerne frequˆencias em um intervalo de 20 Hz a 20 KHz, aproximadamente (BENSON, 2006). Dessa forma, infere-se, com a an´alise da tabela

anterior, que o presente trabalho desenvolvido trata de valores em Hertz relativamente baixos, considerando-se toda o intervalo de frequˆencias percept´ıveis ao ouvido humano.

A frequˆencia de pitch ´e a mais proeminente e ´e a que define o som da corda. As outras harmˆonicas presentes na corda s˜ao m´ultiplas dessa frequˆencia de pitch. ´E importante notar que essa frequˆencia n˜ao ´e necessariamente a frequˆencia fundamental do sinal. A frequˆencia fundamental do sinal ´e a primeira frequˆencia do espectro (ou f0), como visto na ´area de

Processamento Digital de Sinais (OPPENHEIM; SCHAFER, 1999) (a discuss˜ao acerca de frequˆencia fundamental ser´a vista na se¸c˜ao 2.3). Em m´usica, fala-se de frequˆencia de pitch do sinal ou, simplesmente, pitch de um sinal. Para melhor discernimento sobre tal fato, tem-se, na Figura 4, o espectro das frequˆencias da corda “l´a” (5a corda do viol˜ao) obtido de uma simula¸c˜ao em MATLAB.

(21)

2.1 Teoria Musical 20

Figura 4: Espectro da corda “l´a” no dom´ınio da frequˆencia, obtido de um viol˜ao el´etrico.

Tal corda possui frequˆencia de pitch em 110 Hz. Isso significa dizer, que seu per´ıodo possui 1/110 s, ou, aproximadamente, 9 ms, o que pode ser observado, no destaque da figura anterior. A frequˆencia de pitch est´a em 110 Hz, enquanto que a fundamental do sinal ´e o primeiro valor do eixo x, ´e a f0 do sinal.

O sinal aqui tratado n˜ao ´e puramente peri´odico, uma vez que ´e limitado e formado por componentes diversas e ru´ıdos. Por´em, ser´a adotada a abordagem na qual o sinal ´e considerado, idealmente, peri´odico (tal fato ser´a ´e discutido com mais profundidade na se¸c˜ao 2.3). O ouvido humano ´e limitado na percep¸c˜ao de altas frequˆencias (os ru´ıdos de alta frequˆencia muitas vezes s˜ao os respons´aveis pela n˜ao-periodicidade presente no sinal) (BENSON, 2006).

´

E poss´ıvel, ainda, determinar qual o tempo de dura¸c˜ao de um per´ıodo de cada uma das seis cordas que comp˜oem o viol˜ao. Assim sendo, a Tabela 2 apresenta os obtidos obtidos para os per´ıodos relativos a cada uma das cordas existentes no viol˜ao.

(22)

2.2 M´etodos de Extra¸c˜ao da Frequˆencia de Pitch 21

Tabela 2: Valores referentes ao per´ıodo de cada corda do viol˜ao. Corda Per´ıodos em ms 1a Corda 3,033 2a Corda 4,05 3a Corda 5,102 4a Corda 6,81 5a Corda 9,09 6a Corda 11,99

Conforme disposto na Tabela 2, cada corda tem um per´ıodo espec´ıfico. Dessa forma, tendo a informa¸c˜ao de qual corda est´a vibrando, e baseado em quanto tempo dura o per´ıodo, ´e poss´ıvel obter a frequˆencia de pitch (nesse caso, atrav´es de uma an´alise no dom´ınio do tempo). Entretanto, os valores exibidos na Tabela 2 referem-se aos encontrados em instrumentos afinados. O presente projeto trata as cordas que possuem o per´ıodo conforme a Tabela 2 (cordas afinadas) ou com valores diferentes dos encontrados em tal tabela (cordas desafinadas). O tom incorreto representa um pitch de valor acima ou abaixo do correto para a corda em quest˜ao, onde o tom ´e a frequˆencia que define o som da corda.

Nas pr´oximas se¸c˜oes ser˜ao utilizados os conceitos de per´ıodo e frequˆencia de pitch abordados nesta se¸c˜ao, para as discuss˜oes acerca dos m´etodos de extra¸c˜ao/estima¸c˜ao de pitch.

2.2

etodos de Extra¸

ao da Frequˆ

encia de Pitch

Para o c´alculo da frequˆencia de pitch de um sinal, existem diversos m´etodos. Tais m´etodos diferenciam-se quanto ao dom´ınio de aplica¸c˜ao. Gerhard (2003) descreve uma diversidade de m´etodos e em diferentes dom´ınios de aplica¸c˜ao. Sinais de fala humana, por exemplo, possuem uma extensa variedade de frequˆencias componentes. Diferentemente, sinais de instrumentos musicais possuem uma periodicidade mais facilmente detect´avel, se existem poucos ru´ıdos no sinal (e mesmo que haja muito ru´ıdo, filtros podem vir a resolver o problema). Entre os diferentes dom´ınios de m´etodos de extra¸c˜ao do pitch, pode-se destacar: o dom´ınio do tempo, o dom´ınio da frequˆencia e os m´etodos n˜ao-determin´ısticos (GERHARD, 2003). Cada um desses dom´ınios apresenta diversos tipos de m´etodos.

(23)

2.2 M´etodos de Extra¸c˜ao da Frequˆencia de Pitch 22

O primeiro tipo de dom´ınio, o de an´alise em dom´ınio do tempo, mostrou-se como uma solu¸c˜ao figurada entre as primeiras tentativas de medi¸c˜ao do pitch (GERHARD, 2003). Os m´etodos desse tipo de dom´ınio analisam a onda em sua configura¸c˜ao no tempo e procuram por alguma caracter´ıstica no sinal que possa vir a determinar o pitch. Um conhecido tipo de m´etodo ´e o de detec¸c˜ao de eventos no tempo, que basicamente observa certos eventos em um sinal, considerando que o sinal ´e peri´odico e vai apresentar eventos que se repetem no tempo. Um primeiro m´etodo desse tipo ´e o que mede a taxa de cruzamento com zero de um sinal (ZCR - do inglˆes Zero Crossing Rate). A ideia b´asica desse m´etodo ´e a de que ´e poss´ıvel determinar quantas vezes o sinal cruzou o eixo x (quando y ´e zero), seja na “borda” de subida ou de descida, e, a partir de tal fato, medir quanto tempo o sinal levou para realizar tal tarefa. Atrav´es da Figura 5, pode-se observar um sinal senoidal obtido em MATLAB.

Figura 5: Sinal senoidal no dom´ınio do tempo.

Como observa-se na figura anterior, ´e poss´ıvel determinar o per´ıodo do sinal (no caso, uma senoide) apenas observando os tempos em que o sinal corta o eixo x no sentido de subida. Esse tipo de sinal, entretanto, ´e dif´ıcil de ser encontrado em situa¸c˜oes reais. Sinais reais podem ser ruidosos e cruzar o eixo x diversas vezes (j´a que possuem diversas frequˆencias componentes), como pode ser visto na Figura 6, a partir do MATLAB.

(24)

2.2 M´etodos de Extra¸c˜ao da Frequˆencia de Pitch 23

Figura 6: Sinal com mais de uma componente, no dom´ınio do tempo. Neste exemplo, uma soma de senoides: 0, 9 sin(x) + 0, 1 sin(20x).

Em um sinal como o da Figura 6, o m´etodo de apenas detectar as subidas atrav´es do eixo x torna-se ineficiente, uma vez que o sinal corta subindo o eixo x v´arias vezes antes que se tenha um per´ıodo real do sinal. Dessa forma, tal m´etodo pode n˜ao apresentar uma solu¸c˜ao interessante para sinais reais, caso n˜ao sejam contornados determinados empecilhos (como a presen¸ca de ru´ıdos, por exemplo). Esse m´etodo mostra-se como uma das primeiras tentativas de se calcular o pitch e n˜ao se moldar´a ao tipo de sinal que o presente projeto trata: ruidoso e com diversas componentes. Assim, tal m´etodo foi descartado como poss´ıvel solu¸c˜ao para o c´alculo do pitch, no presente projeto. Outro m´etodo dessa classe de m´etodos tamb´em foi descartado: o m´etodo de taxa de picos. Ele se assemelha ao m´etodo anterior, por´em, ao inv´es de medir-se as taxas de cruzamento com zero, mede-se a taxa de picos no sinal, por segundo (GERHARD, 2003). Tamb´em, sem o devido tratamento de ru´ıdos, torna-se invi´avel uma an´alise no dom´ınio do tempo de um sinal ruidoso que venha a possuir diversos picos.

A segunda classe de m´etodos ´e composta pelos m´etodos n˜ao-determin´ısticos. Tais m´etodos baseiam-se no fato de que, `as vezes, pode-se medir o pitch de um sinal utilizando an´alise n˜ao-determin´ıstica. Um dos m´etodos pesquisados ´e o que utiliza redes neurais. Por´em, redes neurais apresentam o problema de trabalharem sob forma de “caixa-preta”, j´a que n˜ao podem ser matematicamente modelados (DHALIWAL et al., 2007). Dessa forma, redes neurais acabam por, de alguma forma, resolver o problema, mas n˜ao levam ao entendimento de como o problema foi resolvido. Por n˜ao se encaixar na linha de pesquisa almejada com o presente trabalho de conclus˜ao de curso, a solu¸c˜ao atrav´es de redes neurais

(25)

2.2 M´etodos de Extra¸c˜ao da Frequˆencia de Pitch 24

foi descartada.

A terceira classe ´e a de m´etodos no dom´ınio da frequˆencia. O presente trabalho concentra-se na an´alise atrav´es de algum m´etodo dessa classe. A an´alise em frequˆencia representa uma outra abordagem do sinal, uma vez que s˜ao analisadas as contribui¸c˜oes de cada frequˆencia, em Hertz, para a forma¸c˜ao do sinal. A partir da um algoritmo que realize a convers˜ao do dom´ınio do tempo para o da frequˆencia, pode-se analisar todo o espectro do sinal em busca do pitch do mesmo. Tal algoritmo baseia-se na an´alise de Fourier do sinal e recebe o nome de DFT (Transformada Discreta de Fourier, do inglˆes Discrete Fourier Transform). O algoritmo de FFT (Transformada R´apida de Fourier, do inglˆes Fast Fourier Transform) ´e uma implementa¸c˜ao da DFT e vale-se de uma quantidade de dados que seja potˆencia de 2, com o prop´osito de otimizar o tempo de execu¸c˜ao (OPPENHEIM; SCHAFER, 1999). O algoritmo FFT se baseia em decompor a sequˆencia de amostras x[n] em sequˆencias menores, at´e que haja apenas dois valores que ser˜ao somados de acordo com uma equa¸c˜ao de c´alculo da DFT e subtra´ıdos de acordo com outra (OPPENHEIM; SCHAFER,

1999). Como pode ser visto em Tabei e Ueda (1988), por exemplo, foi desenvolvida uma t´ecnica de detec¸c˜ao de frequˆencias, com alta precis˜ao, atrav´es de t´ecnicas de interpola¸c˜ao e FFT. Dessa forma, ap´os a pesquisa bibliogr´afica, a solu¸c˜ao adotada para tal trabalho ´e a de an´alise por m´etodo de transformada de Fourier.

Intimamente ligadas `a an´alise de Fourier de um sinal atrav´es do algoritmo FFT, est˜ao as t´ecnicas digitais tamb´em no dom´ınio da frequˆencia. Estimar a frequˆencia de pitch de um sinal pode ser dificultada pela presen¸ca ru´ıdo. Ru´ıdos podem surgir do pr´oprio meio de envio do sinal (cabos de cobre), do pr´e-amplificador do instrumento musical (uma vez que o amplificador utilizado tem um ru´ıdo intr´ınseco) ou at´e mesmo do circuito de an´alise do sinal, atrav´es de efeitos capacitivos e indutivos. Dessa forma, a exclus˜ao de ru´ıdo ou a otimiza¸c˜ao do algoritmo de estima¸c˜ao, atrav´es de alguma t´ecnica digital, mostra-se como uma parte importante no processo de estima¸c˜ao do pitch.

Existem basicamente duas abordagens para a detec¸c˜ao e exclus˜ao de ru´ıdos de sistemas: a filtragem anal´ogica e a filtragem digital do sinal (OPPENHEIM; SCHAFER, 1999;

BOYLESTAD; NASHELSKY, 2006). A filtragem anal´ogica ´e a respons´avel pela exclus˜ao dos efeitos capacitivo e indutivo parasitas (que podem aparecer no sistema devido a pr´opria existˆencia de capacitores e indutores no circuito) ou pela exclus˜ao de um n´ıvel DC que possa vir a existir no pr´oprio sinal (BOYLESTAD; NASHELSKY, 2006). Dessa forma, alguns filtros anal´ogicos simples podem ser implementados com resistores, capacitores e amplificadores operacionais para bloquear o n´ıvel DC do sinal de entrada do sistema, ou

(26)

2.3 Transformada Discreta de Fourier (DFT) e Transformada R´apida de Fourier (FFT) 25

faixas espec´ıficas de frequˆencias. Um circuito que foi alvo de estudo, e que tamb´em foi implementado durante os testes em protoboard, ´e o que realiza a convers˜ao da escala de tens˜ao do sinal para a faixa de 0 a 5 Volts e n˜ao permite sobre ou sub-tens˜ao excessivas. Esse circuito possui significativa importˆancia, uma vez que ao se trabalhar na faixa de 0 a 5 Volts, n˜ao h´a perigo de sobrecarga no microcontrolador presente no sistema.

A filtragem digital, por sua vez, aproveita o sinal no dom´ınio da frequˆencia para realizar sua opera¸c˜ao sobre determinadas frequˆencias indesej´aveis no sistema. Sabe-se que sinais provenientes de instrumentos el´etricos de corda (e, em especial, do viol˜ao el´etrico, uma vez que este ser´a o instrumento utilizado para os testes) apresentam harmˆonicas muito altas no sinal gerado, dificultando a extra¸c˜ao do pitch do sinal. A filtragem digital, para o caso do presente projeto, consiste em excluir as frequˆencias mais altas do sinal. Entretanto, um filtro digital pode se tornar um gargalo de um projeto, uma vez que ele ocupa espa¸co em mem´oria para ser utilizado, gera espa¸co gasto na mem´oria de dados (j´a que tal filtro gera dados a serem analisados) e tamb´em apresenta um gasto em processamento.

2.3

Transformada

Discreta

de

Fourier

(DFT)

e

Transformada R´

apida de Fourier (FFT)

A Transformada Discreta de Fourier consiste em transpor um conjunto discreto de dados do tempo para o dom´ınio da frequˆencia. Sabe-se que atrav´es de s´eries de Fourier ´e poss´ıvel determinar um sinal peri´odico como uma soma de senoides, ou de maneira equivalente, como uma soma de componentes complexos (OPPENHEIM; SCHAFER, 1999). Entretanto, quando se trata de sinais que n˜ao s˜ao puramente peri´odicos, fala-se em utilizar a abordagem permitida pela transformada de Fourier. Para o caso da an´alise de um sinal real ´e utilizada uma parte do sinal, uma vez que computacionalmente utilizam-se dados finitos (BENSON, 2006). Idealmente, o sinal proveniente do viol˜ao ´e peri´odico, possui frequˆencias estabelecidas de ressonˆancia e, portanto, uma abordagem matem´atica ´e poss´ıvel. Matematicamente, utiliza-se a abordagem a Transformada Cont´ınua de Fourier (comumente definida apenas como Transformada de Fourier). Em termos computacionais, como se trabalha com dados discretos, ´e utilizada a Transformada Discreta de Fourier (comumente chamada de DFT - Discrete Fourier Transform).

Para o problema envolvido na estima¸c˜ao de pitch de um sinal originado de um viol˜ao, sabe-se que os dados obtidos s˜ao discretos no tempo. Dessa forma, ´e preciso utilizar a

(27)

2.3 Transformada Discreta de Fourier (DFT) e Transformada R´apida de Fourier (FFT) 26

abordagem matem´atica da DFT para analisar o sinal.

Considere-se uma sequˆencia discreta ˜x[n] peri´odica e com per´ıodo N. Se ´e peri´odica, ˜

x[n] = ˜x[n + rN ] para qualquer valor inteiro r. Semelhantemente a sinais peri´odicos cont´ınuos no tempo, essa sequˆencia pode ser definida como uma soma de sequˆencias exponenciais complexas (s´erie de Fourier) (OPPENHEIM; SCHAFER, 1999), ou seja, com frequˆencias que s˜ao inteiras e m´ultiplas da frequˆencia fundamental (2π

N), associadas com

a sequˆencia peri´odica x[n]. Essas exponenciais complexas ek[n] s˜ao da forma:

ek[n] = ej(

N)kn= e

k[n + rN ], (2.1)

onde k ´e um inteiro e j, o termo complexo. A s´erie de Fourier dessa sequˆencia ´e:

˜ x[n] = 1 N X k ˜ X[k]ej(2πN)kn (2.2)

Como a s´erie deve conter apenas N exponenciais complexas, referentes a quantidade discreta das amostras:

˜ x[n] = 1 N N −1 X k=0 ˜ X[k]ej(2πN)kn (2.3)

Tal equa¸c˜ao comumente tem a seguinte forma:

˜ x[n] = 1 N N −1 X k=0 ˜ X[k]WNkn, (2.4) onde WNkn = e−j(2πN)kn (2.5)

Dessa forma, a equa¸c˜ao da S´erie Discreta de Fourier, ˜X[k], ´e definida por:

˜

X[k] =Xx[n]e˜ −j(2πN)kn (2.6)

A partir da equa¸c˜ao de S´erie Discreta de Fourier ´e poss´ıvel determinar a DFT, definida por X[k], como sendo uma sequˆencia de dura¸c˜ao finita correspondente a um per´ıodo de

˜

(28)

2.3 Transformada Discreta de Fourier (DFT) e Transformada R´apida de Fourier (FFT) 27 X[k] = N −1 X n=0 x[n]WNkn (2.7)

Computacionalmente, pode-se realizar tanto a DFT quanto a FFT (uma vez que manipula-se dados discretizados). De fato, o algoritmo FFT ´e desenvolvido tendo o algoritmo DFT como base. O c´alculo do algoritmo de FFT possui grande eficiˆencia quando se decomp˜oe a computa¸c˜ao em DFT’s menores (OPPENHEIM; SCHAFER, 1999). Para tanto, s˜ao exploradas duas propriedades da exponencial complexa Wkn

N = ej(

2π N)kn:

simetria e periodicidade. Os algoritmos que se baseiam em decompor a sequˆencia de amostras x[n] em sequˆencias menores s˜ao chamados algoritmos de decima¸c˜ao no tempo. A particularidade do algoritmo FFT ´e que este realiza a transformada discreta de Fourier para uma quantidade de amostras que seja potˆencia de 2, possuindo um menor tempo de execu¸c˜ao, justamente devido `as propriedades de simetria e periodicidade (OPPENHEIM; SCHAFER, 1999). Para o projeto em quest˜ao, foi utilizado o algoritmo FFT como solu¸c˜ao final. Para efeitos de testes e compara¸c˜oes, tamb´em foi utilizado o algoritmo DFT durante simula¸c˜oes.

O algoritmo funciona da seguinte forma: para computar X[k], separa-se x[n] em dois termos. O primeiro termo trata dos valores de ´ındice par da sequˆencia discreta x[n], enquanto que o outro termo trata dos valores de ´ındice ´ımpar da sequˆencia. Dessa forma:

X[k] = X

n−pares

x[n]WNkn+ X

n−impares

x[n]WNkn (2.8)

Fazendo n = 2r para n-pares e n = 2r + 1 para n-´ımpares:

X[k] = N 2−1 X r=0 x[2r]WN2rk + N 2−1 X r=0 x[2r + 1]WN(2r+1)k (2.9) X[k] = N 2−1 X r=0 x[2r](WN2)rk+ WNk N 2−1 X r=0 x[2r + 1](WN2)rk (2.10)

O que pode ser observado, acima, ´e que cada somat´orio trata dos termos pares e ´ımpares relacionados a x[n]. O termo W2

N, da equa¸c˜ao acima, ainda pode ser desenvolvido.

Assim sendo:

(29)

2.3 Transformada Discreta de Fourier (DFT) e Transformada R´apida de Fourier (FFT) 28 WN2 2 = e−2j( 2π N 2 ) = e−2j(2πN) (2.12) Logo, WN2 = WN2 2 (2.13) Substituindo em (2.10): X[k] = N 2−1 X r=0 x[2r]WNrk 2 + WNk N 2−1 X r=0 x[2r + 1]WrkN 2 (2.14)

A equa¸c˜ao (2.14) pode ainda, para efeitos did´aticos, ser escrita de uma forma mais reduzida:

X[k] = G[k] + WNkH[k] (2.15)

Dessa forma, ´e poss´ıvel calcular G[k] e H[k], separadamente, e som´a-los, para cada termo k, para os N2 pontos. Uma an´alise gr´afica do que a equa¸c˜ao (2.15) representa ´e definida, na literatura, em um grafo conhecido como diagrama borboleta. Na Figura 7, ´e poss´ıvel visualizar um diagrama borboleta para um caso hipot´etico de um per´ıodo de onda discretizado em 8 amostras.

(30)

2.3 Transformada Discreta de Fourier (DFT) e Transformada R´apida de Fourier (FFT) 29

Figura 7: Grafo da FFT de decima¸c˜ao no tempo para um caso de 8 amostras.

A partir da an´alise do grafo da Figura 7, percebe-se, por exemplo, que o termo X[0] ´e composto por G[0] somado com o produto entre H[0] e W0

N.

Segundo o grafo da Figura 7 e a equa¸c˜ao (2.14), ´e preciso a computa¸c˜ao de dois DFT para N2 pontos para x[n] . Ou seja, aproximadamente, 2(N2)2 multiplica¸c˜oes complexas

e 2(N2)2 adi¸c˜oes complexas. Se os termos G[k] e H[k] forem decompostos mais uma vez

para transforma¸c˜oes N4, teremos N + N + 4(N4)2 multiplica¸c˜oes e adi¸c˜oes complexas. Se N = 2v, ou seja, se trabalhamos com potˆencia de 2, os c´alculos s˜ao feitos em em aproximadamente log2N vezes. Dessa forma, temos um algoritmo FFT de complexidade log2N (OPPENHEIM; SCHAFER, 1999).

Um outra abordagem matem´atica trata a transformada r´apida de Fourier como sendo uma opera¸c˜ao alg´ebrica entre vetores. Pela defini¸c˜ao, ´e poss´ıvel tratar a equa¸c˜ao (2.7) como sendo uma opera¸c˜ao entre vetores. Na verdade, o que se tem ´e um tratamento vetorial para o que foi exibido na Figura 7. Uma abordagem vetorial pode ser vislumbrada em Bracewell (2000).

No pr´oximo cap´ıtulo ser´a vista a metodologia adotada na execu¸c˜ao do projeto. Ser˜ao discutidos os projetos de software e hardware desenvolvidos. Alguns esquemas, fluxogramas e pseudoc´odigos tamb´em ser˜ao exibidos, para melhor entendimento dos algoritmos e das ideias envolvidas no projeto.

(31)

30

3

Desenvolvimento

Segundo Gerhard (2003), o m´etodo de c´alculo do pitch a ser utilizado est´a ligado ao tipo de sinal analisado; portanto, ser´a utilizada, no presente trabalho de conclus˜ao de curso, uma solu¸c˜ao n˜ao unificada e direcionada `a resolu¸c˜ao do problema de medir-se o pitch de um sinal, originado de um instrumento musical de cordas.

O projeto do presente trabalho foi desenvolvido com base em simula¸c˜oes e testes em dois ambientes: a simula¸c˜ao em software (atrav´es do ambiente MATLAB e de um compilador C) e o prot´otipo em hardware (baseado em microcontrolador). O projeto de hardware foi montado em protoboard, contando com dispositivos eletrˆonicos (tais como resistores e capacitores), enquanto que a parte l´ogica (o algoritmo de estima¸c˜ao de pitch e da FFT) ficou localizada no microcontrolador ATMEGA8.

A decis˜ao de projeto foi optar pela seguinte solu¸c˜ao: desenvolver uma t´ecnica digital de janelamento do espectro de frequˆencias, onde o algoritmo procure pela frequˆencia de pitch em um intervalo espec´ıfico, com a menor quantidade poss´ıvel de valores a serem analisados. Tal escolha se reflete em uma otimiza¸c˜ao do processo de an´alise do sinal, visto que resolve o problema de excluir as frequˆencias altas (in´uteis `a an´alise da frequˆencia de pitch do sinal), sem o gasto computacional de um filtro digital, como o IIR, por exemplo. Outra decis˜ao de projeto foi a escolha do microcontrolador a ser utilizado nos testes em protoboard. Para o caso do presente projeto, foi utilizado o microcontrolador ATMEGA8 (ATMEL, 2008), que se encontra dispon´ıvel no laborat´orio utilizado.

A metodologia utilizada seguiu os seguintes passos: primeiro foi feito um estudo acerca dos m´etodos FFT existentes e, ap´os isso, foi definida uma solu¸c˜ao da estima¸c˜ao do pitch. Ap´os tais algoritmos ficarem prontos, testes em ambiente MATLAB foram executados para confirmar a eficiˆencia dos mesmos. Foram utilizados diversos arquivos .wav que foram extra´ıdos diretamente de um viol˜ao el´etrico, conectado `a placa de som do computador. Na sequˆencia do trabalho, foi tratado o algoritmo em linguagem C, com testes em um compilador C, com o objetivo de confirmar e garantir que o c´odigo

(32)

3.1 Projeto de Algoritmo de Estima¸c˜ao de Pitch 31

em C estivesse funcional, para poss´ıvel aplica¸c˜ao em um sistema real microcontrolado de afina¸c˜ao. Por ´ultimo, foi tratado o c´odigo em linguagem C, direcionado `a arquitetura dos microcontroladores Atmel (ATMEL, 2008). Nessa fase, foi projetado o hardware para testes em protoboard.

Na pr´oxima se¸c˜ao, ser´a vista a metodologia utilizada para defini¸c˜ao dos algoritmos de FFT e de estima¸c˜ao de pitch. Haver´a uma an´alise de tais algoritmos. Na se¸c˜ao 3.2, ser´a discutida a metodologia utilizada na estrutura¸c˜ao do hardware desenvolvido para os testes em protoboard.

3.1

Projeto de Algoritmo de Estima¸

ao de Pitch

O objetivo principal do presente projeto foi definir um algoritmo novo que estime a frequˆencia de pitch do sinal. Al´em disso, algum m´etodo de transformada de Fourier deveria ser utilizado antes que o algoritmo de estima¸c˜ao capture a frequˆencia de pitch do sinal. Ou seja, o primeiro ponto de estudo e desenvolvimento est˜ao os algoritmos FFT existentes. O presente cap´ıtulo tratar´a das quest˜oes envolvidas no algoritmo FFT escolhido, bem como do pr´oprio algoritmo de estima¸c˜ao de pitch desenvolvido. As quest˜oes espec´ıficas de cada um dos dois temas ser˜ao abordadas com aux´ılio de pseudoc´odigos.

3.1.1

Algoritmo FFT Baseado no M´

etodo de Cooley-Tukey

Existem diversos algoritmos FFT desenvolvidos. Inicialmente, foi implementado um algoritmo recursivo baseado no algoritmo FFT Cooley-Tukey, que ´e um conhecido algoritmo de c´alculo da FFT (OPPENHEIM; SCHAFER, 1999). A estrutura do algoritmo utilizado ´e dada na listagem Algoritmo 1.

(33)

3.1 Projeto de Algoritmo de Estima¸c˜ao de Pitch 32 Fun¸c˜ao FFT(vetor[x]) 1 begin 2 X ←− amostrasObitdas 3 N ←− tamanho(X) 4 se N = 1 ent˜ao 5 return Y[ ] 6 fim 7 se N = 2n ent˜ao 8

para j ←− 0 at´e j <= N2 − 1 fa¸ca

9 parteP ar[j + 1] ←− Y [(2j) + 1] 10 parteImpar[j + 1] ←− Y [(2j) + 2] 11 j + + 12 fim 13 f f tP ar ←− F F T (parteP ar) 14 f f tImpar ←− F F T (parteImpar) 15

para k ←− 0 at´e k ←− N2 − 1 fa¸ca

16 W nk ←− e(−2πikN ) 17 Y [k + 1] ←− f f tP ar[k + 1] + W nk ∗ f f tImpar[k + 1] 18 Y [k + 1 + N/2] ←− f f tP ar[k + 1] − W nk ∗ f f tImpar[k + 1] 19 fim 20 fim 21 end 22

Algoritmo 1: Algoritmo Recursivo baseado no m´etodo Cooley-Tukey

A ideia do Algoritmo 1 ´e computar, recursivamente, o array de amostras como outros dois arrays de amostras, atrav´es do m´etodo de Cooley-Tukey. Tem-se, inicialmente o array de entrada Y, na linha 3 do Algoritmo 1. Esse array ´e dividido em outros dois arrays: um de ´ındices par e outro de ´ındices ´ımpares, exatamente como na equa¸c˜ao (2.8). Tamb´em, como visto na dedu¸c˜ao matem´atica da se¸c˜ao 2.3 desta monografia, deve-se trabalhar com uma quantidade de amostras que seja potˆencia de 2. O passo seguinte ´e chamar a pr´opria fun¸c˜ao FFT()recursivamente, para que cada um dos vetores seja novamente divididos, at´e que se tenha dois ´unicos valores que devem ser operados de acordo com as linhas 18 e 19. Ap´os toda a execu¸c˜ao do algoritmo, tem-se um vetor final com valores transformados para o dom´ınio da frequˆencia. O algoritmo, portanto, recursivamente executa a transforma¸c˜ao

(34)

3.1 Projeto de Algoritmo de Estima¸c˜ao de Pitch 33

matem´atica exposta na equa¸c˜ao (2.15).

Entretanto, essa solu¸c˜ao mostrou-se inconveniente como poss´ıvel solu¸c˜ao para o caso das simula¸c˜oes posteriores, em linguagem C. Isso porque trabalhar recursivamente, com vetores de tamanho dinˆamico mostra-se como uma tarefa ´ardua para dispositivos de pouca mem´oria e capacidade de processamento como microcontroladores. Acaba-se por n˜ao ter um bom aproveitamento de estruturas dinˆamicas, como ocorre em ambiente MATLAB. Sendo assim, foi preciso utilizar uma outra solu¸c˜ao FFT - uma solu¸c˜ao que fosse unificada, independente de ambientes de simula¸c˜ao. A solu¸c˜ao implementada tamb´em ´e baseada no m´etodo de Cooley-Tukey, por´em, tamb´em utiliza uma varia¸c˜ao do conceito do m´etodo Cooley-Tukey de decima¸c˜ao no tempo: o lema de Danielson-Lanczos e bit reversal (PRESS et al., 1992). Esse lema prop˜oe utilizar uma revers˜ao de bits antes da execu¸c˜ao da transformada em si, e fazer com que a transformada seja realizada com vetores est´aticos. Na pr´oxima subse¸c˜ao, ser´a discutido o algoritmo implementado, baseado no lema de Danielson-Lanczos.

3.1.2

Algoritmo FFT Implementado Baseado no Lema de

Danielson-Lanczos e no bit reversal

O Lema de Danielson-Lanczos tamb´em determina que a transformada de um vetor de amostras pode ser feita atrav´es da quebra desse vetor em outros dois vetores. Semelhantemente ao m´etodo de Cooley-Tukey utilizado em simula¸c˜oes no MATLAB e abordado na subse¸c˜ao anterior, o lema determina que dever´a ser utilizada uma varia¸c˜ao do m´etodo de Cooley-Tukey, atrav´es da utiliza¸c˜ao da f´ormula de Danielson-Lanczos, algo que ser´a visto no algoritmo implementado.

Outra caracter´ıstica ´e que s˜ao aproveitadas as similaridades entre transformadas e utiliza-se de um recurso conhecido como bit reversal. O uso de tal recurso permite tamb´em uma melhoria no tempo gasto para a computa¸c˜ao da transformada. (PRESS et al., 1992). O lema de Danielson-Lanczos diz que a transformada de Fourier de tamanho N pode ser reescrita como sendo a soma de duas outras transformadas de Fourier, com tamanho de N/2, exatamente como ´e dito para o algoritmo de Cooley-Tukey, por´em sem a utiliza¸c˜ao de recurs˜ao. Al´em disso, o lema prop˜oe a utiliza¸c˜ao de bit reversal e da identidade de Euler para calcular os termos complexos. Tem-se no Algoritmo 2, a primeira parte do algoritmo FFT baseado no lema de Danielson-Lanczos.

(35)

3.1 Projeto de Algoritmo de Estima¸c˜ao de Pitch 34 data ←− vetorAmostras 1 N ←− tamanho(data) 2 j ←− 1 3

para i ←− 1 at´e i < n fa¸ca

4 se j > i ent˜ao 5 SW AP (data[j], data[i]) 6 SW AP (data[j + 1], data[i + 1]) 7 fim 8 m ←− 1 9 enquanto m >= 2 e j > m fa¸ca 10 j ←− j − m 11 m >>= 1 12 fim 13 j ←− j + m 14 i ←− i + 2 15 fim 16 mmax ←− 2 17

Algoritmo 2: Primeira parte do algoritmo FFT baseado no lema de Danielson-Lanczos e no bit reversal

O Algoritmo 2 realiza o bit reversal, que nada mais ´e do que uma reordena¸c˜ao do vetor de dados. O lema de Danielson-Lanczos prop˜oe que essa reordena¸c˜ao do vetor reduzir´a a Transformada de Fourier a simples somas entre posi¸c˜oes adjacentes do vetor: os valores de cada posi¸c˜ao do vetor s˜ao transformadas de um ponto; a soma de pares adjacentes resultar´a em uma transformada de dois pontos; a soma de dois pares de pares adjacentes resultar´a em uma transformada de quatro pontos; e assim por diante. Ap´os a execu¸c˜ao sucessiva, tem-se o vetor final de transformadas. Assim sendo, ´e feita uma reordena¸c˜ao, com troca de valores entre as posi¸c˜oes do vetor, atrav´es das linhas 4 a 15 do Algoritmo 2, para a posterior transformada que ocorrer´a a seguir. Ap´os essa reordena¸c˜ao, tem-se o algoritmo proposto por Danielson-Lanczos (PRESS et al., 1992). Dessa forma, o Algoritmo 3 apresenta a continua¸c˜ao do Algoritmo 2.

(36)

3.1 Projeto de Algoritmo de Estima¸c˜ao de Pitch 35

enquanto n > mmax fa¸ca

18

istep ←− mmax << 1;

19

theta ←− isign ∗ (6.28318530717959/mmax);

20

wtemp ←− sin(0.5 ∗ theta);

21 wpr ←− −2 ∗ wtemp ∗ wtemp; 22 wpi ←− sin(theta); 23 wr ←− 1; 24 wi ←− 0; 25

para m ←− 1 at´e m < mmax fa¸ca

26

para i ←− m at´e i <= n fa¸ca

27

j ←− i + mmax;

28

tempr ←− r ∗ data[j] − wi ∗ data[j + 1];

29

tempi ←− wr ∗ data[j + 1] + wi ∗ data[j];

30

data[j] ←− data[i] − tempr;

31

data[j + 1] ←− data[i + 1] − tempi;

32

data[i] ←− data[i] + tempr;

33

data[i + 1] ←− data[i + 1] + tempi;

34 i ←− i + istep; 35 fim 36 wr ←− (wtemp ←− wr) ∗ wpr − wi ∗ wpi + wr; 37

wi ←− wi ∗ wpr + wtemp ∗ wpi + wi;

38 m ←− m + 2; 39 fim 40 mmax ←− istep; 41 fim 42

Algoritmo 3: Segunda parte do algoritmo FFT baseado no lema de Danielson-Lanczos e no bit reversal

O que se faz da linha 18 em diante ´e calcular, semelhantemente `a equa¸c˜ao (2.14), os valores das transformadas, como somas e subtra¸c˜oes, valendo-se ainda da identidade trigonom´etrica de Euler. Tal fato resumir´a a transformada como somas e produtos entre valores reais e senos e cossenos. Comparativamente, o que ocorre da linha 37 e 38, no Algoritmo 3, ´e an´alogo ao que ocorre nas linhas 18 e 19 no m´etodo de Cooley-Tukey, no Algoritmo 1. Dessa forma, no Algoritmo 3 o termo Wnk ´e reescrito atrav´es do uso da

(37)

3.1 Projeto de Algoritmo de Estima¸c˜ao de Pitch 36

Um detalhe dessa implementa¸c˜ao, ´e que o vetor conter´a o dobro de tamanho do array de amostras. Ap´os a realiza¸c˜ao da transformada, o valor final ´e complexo. Dessa forma, a parte real de uma transformada ´e armazenada em uma posi¸c˜ao do array de transformadas e sua parte imagin´aria correspondente, na posi¸c˜ao seguinte do array (linhas 31 a 34). Assim sendo, o vetor de transformadas possuir´a tamanho igual ao dobro do vetor de amostras. Em seguida, ´e calculada a magnitude do vetor de transformadas (para que sejam obtidos valores reais), fazendo que o vetor de magnitudes tenha o tamanho do vetor de amostras (linha 116, do Apˆendice B).

Considerando que o sinal est´a transformado para o dom´ınio da frequˆencia, o pr´oximo passo ´e construir um algoritmo num´erico para, digitalmente, estimar o valor do pitch a partir do vetor de transformadas, como ser´a visto na subse¸c˜ao que se segue.

3.1.3

Algoritmo de Estima¸

ao de Pitch

pelo M´

etodo de

Janelamento

At´e agora foi discutido sobre os algoritmos que comp˜oem a parte de an´alise de Fourier de um sinal. Por´em, deve-se ter em mente que, considerando-se que j´a ocorreu a transformada de Fourier do vetor de amostras, o passo seguinte ´e determinar qual a frequˆencia de pitch de tal sinal. Para tanto, foi preciso determinar um m´etodo num´erico de busca em vetor para encontrar a frequˆencia de pitch do sinal.

A ideia do algoritmo ´e que se fosse poss´ıvel determinar um intervalo de busca (onde seria procurada a frequˆencia de maior magnitude ali contida), seria fact´ıvel estimar a frequˆencia de pitch. Como foi visto na se¸c˜ao sobre teoria musical, a frequˆencia de pitch na m´usica ´e aquela que define a nota, ou seja, ´e a primeira frequˆencia caracter´ıstica de maior magnitude encontrada. E importante aqui perceber a singularidade deste fato:´ n˜ao basta apenas o sinal possuir grande magnitude de uma frequˆencia qualquer. Para ser a frequˆencia de pitch, ela deve conter a primeira maior magnitude que caracterize o som da corda. Isso acontece porque as pr´oximas grandes magnitudes presentes em um sinal, s˜ao m´ultiplas dessa primeira frequˆencia de grande magnitude. Para analisar sob a vis˜ao musical, ser´a tomado como exemplo o caso da nota “l´a”. Tal nota deve possuir sua frequˆencia de pitch igual a 110 Hz para estar afinada. Nessa frequˆencia de 110 Hz, dever´a haver a primeira maior magnitude de componentes de frequˆencia presentes no sinal. Ou seja, tem-se em 110 Hz uma consider´avel magnitude e as pr´oximas frequˆencias de grandes magnitudes dever˜ao ser frequˆencias m´ultiplas inteiras dessa frequˆencia de 110 Hz. Haver´a, ent˜ao, grandes magnitudes em 220 Hz, 330 Hz, 440Hz e assim por diante.

(38)

3.1 Projeto de Algoritmo de Estima¸c˜ao de Pitch 37

Essas frequˆencias m´ultiplas recebem o nome de oitavas da nota.

Ou seja, se houver um algoritmo que capture a primeira maior magnitude, tal algoritmo retornar´a a frequˆencia de pitch do sinal. Para realizar tal c´alculo, n˜ao basta procurar pela frequˆencia de maior magnitude. Isso seria um erro. Na Figura 4, por exemplo, ´e exibido o espectro da corda “l´a” do viol˜ao, que possui sua frequˆencia de pitch igual a 110 Hz. Entretanto, 110 Hz, n˜ao ´e a frequˆencia de maior magnitude. A frequˆencia de 440 Hz, por exemplo, tem uma magnitude maior. Para obter-se a frequˆencia de pitch n˜ao se pode, portanto, utilizar a solu¸c˜ao de basicamente procurar no vetor a frequˆencia de maior magnitude.

A solu¸c˜ao definida e implementada durante as simula¸c˜oes foi a de fazer uma esp´ecie de janelamento no vetor e procurar, nessa janela, a maior magnitude ali contida. O algoritmo criado no presente projeto apresenta um novo m´etodo de estima¸c˜ao de pitch e foi denominado de m´etodo de janelamento. Para o exemplo da Figura 4, dever´a ser definido um intervalo que conter´a a frequˆencia de 110 Hz. Por exemplo, se fossem analisadas apenas as frequˆencias entre 60 Hz e 160 Hz, n˜ao haveria gasto computacional para an´alise de todas as amostras. Nesse intervalo, a maior magnitude seria o pitch do sinal. Esse intervalo ´e razo´avel porque ser˜ao identificadas as frequˆencias de pitch em instrumentos que podem ou n˜ao estar desafinados. ´E sensato observar que o limite inferior do intervalo seria facilmente identificado pelo usu´ario (devido `a corda afrouxada), enquanto que o limite superior tem a limita¸c˜ao de n˜ao poder adentrar as oitavas. Seria poss´ıvel, por exemplo, tentar identificar a afina¸c˜ao de um instrumento afinado que possui a corda “l´a” com 110 Hz de frequˆencia de pitch. O algoritmo de janelamento aqui proposto indicar´a 110 Hz de frequˆencia de pitch, j´a que cuidadosamente foi adotada uma janela que cobre intervalos razo´aveis e n˜ao adentra no janelamento das oitavas dos 110 Hz. Se fosse considerada uma janela muito maior, como 60 a 450 Hz, poderia ser cometido o erro de indicar que o instrumento afinado em 110 Hz est´a fora da afina¸c˜ao porque a oitava de 440 Hz possui maior magnitude que a frequˆencia de 110 Hz. Por isso, o janelamento, como j´a dito, n˜ao pode adentrar as oitavas da nota.

Foram adotados, nas simula¸c˜oes, intervalos de 50 Hz para mais e para menos, visto que esse limite satisfaz as caracter´ısticas f´ısicas do sistema. Empiricamente, foi observado que abaixo do limite inferior de adotado a corda encontra-se notadamente afrouxada, enquanto acima do limite superior a corda poderia estourar, j´a que ela possui uma limita¸c˜ao f´ısica. Como a ideia ´e conseguir realizar a extra¸c˜ao de pitch atrav´es de um m´etodo FFT, ´e interessante adotar uma faixa dita aceit´avel de frequˆencias. O Algoritmo 5 exibe a solu¸c˜ao

(39)

3.1 Projeto de Algoritmo de Estima¸c˜ao de Pitch 38

da estima¸c˜ao de pitch desenvolvida, atrav´es do uso da ideia de janelamento.

begin 1 fs ←− taxaAmostragemConversorA/D 2 N ←− length(amostra) 3 tempo total ←− fN s 4 ff ←− tempo1 5 K ←− 0 : N − 1 6 Kf ←− ff ∗ K 7 k1 ←− ffi f 8 k2 ←− ffs f 9 ... 10 calcula F F T 11 ... 12 temp ←− 0 13

para j ←− k1 at´e j ←− k2 fa¸ca 14

magnitude ←− abs(f f tCorda(j))

15

se magnitude > temp ent˜ao

16

erro ←− abs(fpitch− Kf(j)) 17 temp ←− magnitude 18 pitch estimado ←− Kf(j) 19 fim 20 fim 21 end 22

Algoritmo 4: Algoritmo de janelamento definido.

Primeiramente, obt´em-se a frequˆencia de amostragem do conversor A/D utilizado e armazena-se esse valor na vari´avel fs, que ´e a taxa com que os dados s˜ao amostrados.

Ap´os isso, armazena-se na vari´avel N a quantidade de amostras e calcula-se o tempo total do sinal (vari´avel tempo total ). Esse tempo ´e dado por Nf

s. Obt´em-se, em seguida, a

frequˆencia ff, que ´e a frequˆencia fundamental de todo o sinal.

Define-se tamb´em um vetor K, de tamanho N, e um vetor Kf que ´e o produto de

cada posi¸c˜ao de amostra com a frequˆencia ff. Essa rela¸c˜ao resulta, para determinada

(40)

3.2 Projeto de Hardware para Testes em Protoboard 39

justamente o vetor em termos de valores de frequˆencia (e n˜ao em termos de posi¸c˜ao de amostras), para que cada magnitude calculada esteja relacionada `as frequˆencias e n˜ao `

as amostras. Dessa forma, as linhas 8 e 9 determinam os limites da janela em termos de frequˆencia. Para exemplifica¸c˜ao, tem-se os limites K1 = 60f

f (para o limite inferior)

e K2 = 160f

f (para o limite superior), caso seja considerado o caso da corda “l´a” (com

pitch igual a 110 Hz). Em seguida, ap´os a realiza¸c˜ao da FFT, a vari´avel j do la¸co for, percorrer´a o vetor de resultado da FFT em busca das maiores magnitudes no intervalo delimitado pelos limites superior e inferior. Ao final do la¸co, a vari´avel magnitude ter´a o valor da maior magnitude encontrada e a vari´avel pitch estimado representar´a o valor de frequˆencia relativo `aquela maior magnitude.

Estimado esse valor de pitch, este dever´a ser exibido ao usu´ario. Para o caso dos testes em MATLAB, s˜ao exibidos o valor de tal pitch encontrado, al´em dos gr´aficos plotados dos espectros do sinal nos dom´ınios do tempo e da frequˆencia. Visualmente, dever´a ser confirmado que o c´alculo do pitch deu-se corretamente. J´a para o prot´otipo em protoboard, LEDs e mensagens pelo terminal do compilador do microcontrolador confirmar˜ao os resultados da execu¸c˜ao dos algoritmos. Na se¸c˜ao a seguir, ser´a discutido o projeto de hardware desenvolvido para os teste em protoboard.

3.2

Projeto de Hardware para Testes em Protoboard

Para os testes executados em protoboard, foi necess´ario montar uma estrutura de hardware, em laborat´orio. Para tanto, foram utilizados dispositivos presentes no laborat´orio: resistores, capacitores, buffer, motores DC (para testes da atua¸c˜ao na tarraxa do viol˜ao), LEDs indicativos etc. Al´em desses dispositivos intr´ınsecos ao sistema, foram utilizados AMPOPs, com a finalidade de verificar-se se era ´util dar um ganho no sinal do instrumento (o que acabou provado que n˜ao era necess´ario, pois o pr´e-amplificador do instrumento j´a realizava tal fun¸c˜ao). Al´em do AMPOP, foi utilizado um circuito MAX232, com finalidade de visualizar os resultados do algoritmo de estima¸c˜ao de pitch em terminal. O projeto de hardware opera basicamente da seguinte forma: gera-se um sinal do viol˜ao pelo pr´e-amplificador do instrumento; utiliza-se uma filtragem anal´ogica para redu¸c˜ao de tipos espec´ıficos de ru´ıdos do sinal; processa-se tal sinal no microcontrolador (utilizando o algoritmo de estima¸c˜ao definido no cap´ıtulo anterior); e indica-se ao usu´ario, por meio de LEDs, o estado de afina¸c˜ao da corda. O usu´ario atua na tarraxa, caso necess´ario, e o sistema ´e realimentado, dando continuidade ao ciclo.

(41)

3.2 Projeto de Hardware para Testes em Protoboard 40

Objetivando uma melhor compreens˜ao do que foi dito anteriormente, pode-se analisar o comportamento geral do fluxo do processo observando a Figura 8.

Figura 8: Fluxograma do processo em blocos do circuito.

Como visto na figura anterior, o sistema possui blocos representativos das etapas da afina¸c˜ao. Inicialmente, a parte em hardware realiza uma aquisi¸c˜ao de sinal; conseguintemente, processa no microcontrolador tal sinal atrav´es dos algoritmos de FFT e de estima¸c˜ao (bloco de processamento digital do sinal) e , baseado em tal processamento, ´e tomada uma decis˜ao de qual LED acender para indicar o estado de afina¸c˜ao da corda, e o usu´ario possa apertar ou afrouxar a corda, caso necess´ario (bloco de atua¸c˜ao na tarraxa). Ap´os o giro, tal corda possui uma nova frequˆencia de pitch e, portanto, um novo sinal ´e gerado, para posterior an´alise no microcontrolador (bloco que representa o sinal do viol˜ao).

3.2.1

Aquisi¸

ao do Sinal

O processo de estima¸c˜ao do pitch do instrumento ´e iniciado com a aquisi¸c˜ao do sinal anal´ogico do instrumento musical. Na Figura 8, o bloco representado pelo sinal originado do viol˜ao ´e o que indica o in´ıcio do processo. O sinal do viol˜ao ´e originado do pr´ e-amplificador do mesmo.

O sinal chega diretamente ao microcontrolador atrav´es do conversor A/D. Para efeito de compreens˜ao, foi obtido, de simula¸c˜oes em MATLAB, um sinal anal´ogico proveniente da corda “l´a” (5a corda do viol˜ao). Tal simula¸c˜ao foi baseada em um arquivo .wav

(42)

3.2 Projeto de Hardware para Testes em Protoboard 41

amostrado a 44,1 kHz (taxa de amostragem da placa de som utilizada). Apesar da diferen¸ca entre as taxas do conversor da placa de som do computador e do conversor A/D do microcontrolador, a ideia ´e a mesma: obter um sinal anal´ogico atrav´es de um conversor A/D. A corda “l´a” obtida tem a configura¸c˜ao no dom´ınio do tempo representada na Figura 9.

Figura 9: Sinal da corda “l´a” do viol˜ao, no dom´ınio do tempo, adquirido de um viol˜ao el´etrico atrav´es da placa de som computador. Um per´ıodo do sinal, em destaque.

No microcontrolador, a onda sonora anal´ogica foi convertida para digital (para posterior processamento digital) atrav´es do conversor A/D do pr´oprio microcontrolador. Tal conversor trabalha sobre uma taxa de padr˜ao de 10 kHz (taxa configur´avel). Ou seja, 10.000 amostras por segundo, o que ´e suficiente para amostrar todas as frequˆencias relativamente baixas de cada uma das notas do viol˜ao (frequˆencias estas discutidas na se¸c˜ao de teoria musical). Cumpre-se, aqui, o Teorema de Nyquist pois conforme visto em simula¸c˜oes, as m´aximas frequˆencias encontradas eram da ordem de 2 kHz (ru´ıdos de altas frequˆencias) e bem menores que a frequˆencia de amostragem (OPPENHEIM; SCHAFER, 1999). Como a frequˆencia de opera¸c˜ao do conversor A/D ´e maior ou igual ao dobro da maior frequˆencia obtida do sinal, o teorema ´e garantido e ´e descartado o problema de aliasing no presente projeto.

Uma vez adquirido o sinal de entrada do sistema, ´e preciso, agora, realizar a filtragem anal´ogica antes de amostr´a-lo no microcontrolador, j´a que o n´ıvel DC e ru´ıdos podem dificultar a estima¸c˜ao do pitch. Para tanto, ser˜ao vistos as configura¸c˜oes e o funcionamento

(43)

3.2 Projeto de Hardware para Testes em Protoboard 42

de tal filtro na pr´oxima subse¸c˜ao.

3.2.2

Filtragem Anal´

ogica

O ganho do sinal em fun¸c˜ao do pr´e-amplificador presente no viol˜ao pode acrescentar, por vezes, um ganho nos ru´ıdos do sinal (BOYLESTAD; NASHELSKY, 2006). Esses ru´ıdos podem ser intr´ınsecos aos pr´oprios captadores do instrumento, originados de um tratamento falho do aterramento do instrumento, ou at´e mesmo devido a perturba¸c˜oes externas ao instrumento. Ru´ıdos podem dificultar a an´alise do sinal por parte do algoritmo desenvolvido e, portanto, foi adicionado um bloco de filtro anal´ogico antes do sinal ser adquirido pelo microcontrolador. Tal filtragem ´e formada, basicamente, de dois processos: filtragem do n´ıvel DC do sinal e limita¸c˜ao de tens˜ao.

O bloco que representa o filtro DC na Figura 8 ´e respons´avel por excluir o n´ıvel DC presente no sinal. O n´ıvel DC de um sinal ´e um ru´ıdo que ´e apresentado, no dom´ınio da frequˆencia, como uma grande magnitude na frequˆencia igual a 0 Hz (BOYLESTAD; NASHELSKY, 2006). Tal ru´ıdo dificultou, nas simula¸c˜oes, a estima¸c˜ao da frequˆencia de um determinado sinal, uma vez que o algoritmo desenvolvido para obten¸c˜ao dessa frequˆencia de pitch do sinal baseia-se, dentre outros fatores, na amplitude de determinada frequˆencia. O n´ıvel DC pode ser visto na Figura 10.

Figura 10: N´ıvel DC presente no espectro de frequˆencias da corda “l´a” do viol˜ao - pode-se observar tal n´ıvel DC como um impulso de grande magnitude na frequˆencia de 0 Hz.

(44)

3.2 Projeto de Hardware para Testes em Protoboard 43

Uma vez que o sinal passou pelo bloco de filtragem de n´ıvel DC, ele passa a ter a configura¸c˜ao exibida na Figura 11, onde ´e poss´ıvel verificar que a frequˆencia de 0 Hz encontra-se sem valor de magnitude.

Figura 11: N´ıvel DC exclu´ıdo do espectro de frequˆencias da corda “l´a” do viol˜ao - pode-se observar n˜ao h´a mais impulso na frequˆencia 0 Hz, em t=0.

Como j´a dito, essa exclus˜ao durante as simula¸c˜oes em MATLAB foi realizada via software, com aux´ılio de programas profissionais de edi¸c˜ao de ´audio e atrav´es do pr´oprio programa desenvolvido. No projeto em protoboard, um circuito resistivo-capacitivo como visto em Dhaliwal (2007), realiza essa tarefa.

Ap´os a exclus˜ao do n´ıvel DC, o sinal segue em dire¸c˜ao ao bloco limitador de tens˜ao. Tal bloco ´e respons´avel por fazer com que os n´ıveis de tens˜ao do sinal esteja entre 0 e 5 Volts. Isso se deve ao fato de que o microcontrolador trabalha nessa faixa de opera¸c˜ao e pode danificar-se com valores fora desse intervalo. Portanto, tal circuito (composto por um resistor e por dois diodos) protege o microcontrolador de quaisquer eventuais sobretens˜oes existentes no sinal de entrada do sistema (DHALIWAL et al., 2007). Na Figura 12 pode ser o filtro DC anal´ogico e o circuito limitador de tens˜ao implementados.

(45)

3.2 Projeto de Hardware para Testes em Protoboard 44

Figura 12: Filtro DC anal´ogico e circuito limitador de tens˜ao implementados em protoboard.

Ap´os tal tratamento anal´ogico, o sinal seguir´a para o conversor AD do microcontrolador para ser processado digitalmente.

3.2.3

Processamento Digital do Sinal

Continuando a descri¸c˜ao da Figura 8, o bloco seguinte (“Microcontrolador”) ´e o que representa o microcontrolador e sua estrutura adjacente. Considerando que o sinal encontra-se filtrado analogicamente e limitado em uma faixa de tens˜ao, o microcontrolador dever´a utilizar o algoritmo de estima¸c˜ao j´a definido. Uma vez estimada a frequˆencia de pitch, LEDs indicar˜ao a situa¸c˜ao de determinada corda do instrumento musical. O microcontrolador utilizado foi um ATMEGA8, de arquitetura RISC de 8-bits, da empresa Atmel. Tal escolha se deveu ao fato da disponibilidade imediata em laborat´orio do microcontrolador, al´em de atender as necessidades de projeto, devido `

a consider´avel velocidade na execu¸c˜ao de comandos (uma vez que instru¸c˜oes RISC s˜ao r´apidas e compactas) (TANENBAUM, 1990). Quanto `a estrutura adjacente a este microcontrolador, foram utilizados alguns resistores que eliminam o fator flutua¸c˜ao das portas do microcontrolador. Ou seja, tais resistores funcionam como um pull-down para algumas portas do microcontrolador (ATMEL, 2008). Esse pull-down ocorreu para evitar

(46)

3.2 Projeto de Hardware para Testes em Protoboard 45

que os LEDs de exibi¸c˜ao fiquem com valores flutuantes e acendam de maneira incorreta. Ou seja, os resistores aterram determinadas portas do microcontrolador.

O algoritmo presente no ATMEGA8 possui sua estrutura l´ogica baseada em um loop infinito, o qual verifica se um sinal est´a sendo obtido pelo microcontrolador. Caso afirmativo, ´e obtido um vetor de amostras e calculada a FFT de tal vetor e extra´ıdo o pitch do sinal. Em seguida o viol˜ao deve ser afinado pelo usu´ario.

(47)

3.2 Projeto de Hardware para Testes em Protoboard 46

Figura 13: Fluxograma da l´ogica presente no ATMEGA8.

Observa-se, na figura anterior, o que ocorre no sistema de forma sucinta. Enquanto n˜ao houver sinal de entrada, fica-se em loop, at´e que haja tal sinal. Uma vez presente o sinal, ´e verificada a escolha do usu´ario em rela¸c˜ao a que corda est´a sendo afinada.

Referências

Documentos relacionados

Bento Pereira apresenta uma lista de autores e obras em língua portuguesa, de vários pendores: religioso, enciclopédico, dicionarístico, e literário.A escolha destas obras

Todas as outras estações registaram valores muito abaixo dos registados no Instituto Geofísico de Coimbra e de Paços de Ferreira e a totalidade dos registos

F REQUÊNCIAS PRÓPRIAS E MODOS DE VIBRAÇÃO ( MÉTODO ANALÍTICO ) ... O RIENTAÇÃO PELAS EQUAÇÕES DE PROPAGAÇÃO DE VIBRAÇÕES ... P REVISÃO DOS VALORES MÁXIMOS DE PPV ...

insights into the effects of small obstacles on riverine habitat and fish community structure of two Iberian streams with different levels of impact from the

As questões acima foram a motivação para o desenvolvimento deste artigo, orientar o desenvol- vedor sobre o impacto que as cores podem causar no layout do aplicativo,

Neste estágio, assisti a diversas consultas de cariz mais subespecializado, como as que elenquei anteriormente, bem como Imunoalergologia e Pneumologia; frequentei o berçário

Este projeto de capacitação em serviço foi planejado para oportunizar aos educadores da Escola Estadual Paula Frassinetti, ampliar seus conhecimentos sobre a temática aqui

O fortalecimento da escola pública requer a criação de uma cultura de participação para todos os seus segmentos, e a melhoria das condições efetivas para