artur diogo rodrigues anjo processador de efeitos...

110
Artur Diogo Rodrigues Anjo Processador de efeitos digital Artur Diogo Rodrigues Anjo outubro de 2013 UMinho | 2013 Processador de efeitos digital Universidade do Minho Escola de Engenharia

Upload: trinhmien

Post on 10-Nov-2018

215 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Artur Diogo Rodrigues Anjo Processador de efeitos digitalintranet.dei.uminho.pt/gdmi/galeria/temas/pdf/50822.pdf · processador de efeitos em FPGA para guitarra elétrica. Esta abordagem,

Artur Diogo Rodrigues Anjo

Processador de efeitos digital

Artu

r Dio

go R

odrig

ues

Anjo

outubro de 2013UMin

ho |

201

3Pr

oces

sado

r de

efe

itos

digi

tal

Universidade do MinhoEscola de Engenharia

Page 2: Artur Diogo Rodrigues Anjo Processador de efeitos digitalintranet.dei.uminho.pt/gdmi/galeria/temas/pdf/50822.pdf · processador de efeitos em FPGA para guitarra elétrica. Esta abordagem,
Page 3: Artur Diogo Rodrigues Anjo Processador de efeitos digitalintranet.dei.uminho.pt/gdmi/galeria/temas/pdf/50822.pdf · processador de efeitos em FPGA para guitarra elétrica. Esta abordagem,

outubro de 2013

Tese de MestradoCiclo de Estudos Integrados Conducentes ao Grau deMestre em Engenharia Eletrónica Industrial e Computadores

Trabalho efetuado sob a orientação doProfessor Doutor João Monteiro

Artur Diogo Rodrigues Anjo

Processador de efeitos digital

Universidade do MinhoEscola de Engenharia

Page 4: Artur Diogo Rodrigues Anjo Processador de efeitos digitalintranet.dei.uminho.pt/gdmi/galeria/temas/pdf/50822.pdf · processador de efeitos em FPGA para guitarra elétrica. Esta abordagem,
Page 5: Artur Diogo Rodrigues Anjo Processador de efeitos digitalintranet.dei.uminho.pt/gdmi/galeria/temas/pdf/50822.pdf · processador de efeitos em FPGA para guitarra elétrica. Esta abordagem,

iii

Agradecimentos

Em primeiro lugar gostaria de agradecer à minha família, mais concretamente

aos meus pais, pela a oportunidade que me deram de poder tirar o curso que pretendia.

Agradeço todo o apoio e esforço que realizaram por mim, pois sem isso nada teria sido

possível.

Agradeço também à Universidade do Minho por todas as condições oferecidas

durante todo o curso e mais concretamente durante a realização desta dissertação. Como

não poderia de deixar de ser, agradeço igualmente ao departamento de sistemas

embebidos da Universidade do Minho, pois fui muito bem recebido e apoiado tanto

pelos professores e colegas. Uma palavra de apreço ao meu orientador, Professor

Doutor João Monteiro, por todo apoiado prestado ao longo da realização desta

dissertação.

Uma palavra de agradecimento a todos os colegas que me apoiaram e ajudaram,

especialmente ao aluno de doutoramento do departamento de sistemas embebidos,

Paulo Garcia, pois a sua ajuda e apoio durante a realização desta dissertação foram

muito importantes. Uma palavra de agradecimento também aos colegas Filipe Serra

Alves e Rodrigo Azevedo.

Page 6: Artur Diogo Rodrigues Anjo Processador de efeitos digitalintranet.dei.uminho.pt/gdmi/galeria/temas/pdf/50822.pdf · processador de efeitos em FPGA para guitarra elétrica. Esta abordagem,

iv

Page 7: Artur Diogo Rodrigues Anjo Processador de efeitos digitalintranet.dei.uminho.pt/gdmi/galeria/temas/pdf/50822.pdf · processador de efeitos em FPGA para guitarra elétrica. Esta abordagem,

v

Resumo

O mercado da música é muito abrangente e possui bastantes produtos para

alterar e adicionar efeitos aos instrumentos musicais. Relativamente à guitarra elétrica,

produtos como os processadores de efeitos, single e multi-effect, são bastante

procurados, tanto por amadores como por profissionais.

É neste sentido que se enquadra esta dissertação, em implementar um

processador de efeitos em FPGA para guitarra elétrica.

Esta abordagem, com a utilização de um FPGA, permite ser uma alternativa aos

produtos semelhantes já existentes no mercado, mas que por norma são implementados

através de microprocessadores. O objetivo consiste em implementar um processador de

efeitos com qualidade suficiente para ser uma opção viável. O sistema será composto

pelo sistema de aquisição, processamento e reprodução do sinal.

O sistema de aquisição adquire o sinal através de um conversor analógico para

digital (ADC) e o sistema de reprodução é responsável pela conversão digital para

analógico (DAC) para depois ser possível reproduzir o sinal. Por fim, todo o sistema é

processado e controlado por um FPGA.

Os resultados apresentados demonstram que a abordagem proposta é viável. No

entanto, seria necessário melhorar o sistema para ocupar menor quantidade de recursos

de maneira a ser possível utilizar um FPGA de custo inferior.

Page 8: Artur Diogo Rodrigues Anjo Processador de efeitos digitalintranet.dei.uminho.pt/gdmi/galeria/temas/pdf/50822.pdf · processador de efeitos em FPGA para guitarra elétrica. Esta abordagem,

vi

Page 9: Artur Diogo Rodrigues Anjo Processador de efeitos digitalintranet.dei.uminho.pt/gdmi/galeria/temas/pdf/50822.pdf · processador de efeitos em FPGA para guitarra elétrica. Esta abordagem,

vii

Abstract

The music business is very wide and has plenty of products to change and add

effects to the musical instruments. Relatively to the electric guitar, products such as

effects processors, single and multi-effect, are quite popular among the music fans, both

by amateurs and professionals.

This is the scope of this dissertation, to implement an effects processor in FPGA

for electric guitar.

This approach, using a FPGA, is a good alternative to current products available

in the music market, which are based on microprocessors. The objective is to implement

an effects processor with enough quality to be considered a viable option. The system

will be composed by the acquisition, processing and signal output systems.

The acquisition system acquires the signal through an analog to digital converter

(ADC) and the output system is responsible for the digital to analog (DAC) conversion,

so then can be possible to reproduce the processed signal. Finally, the whole system is

controlled and processed by a FPGA.

The obtained results demonstrate that the proposed approach is viable. However,

it would be necessary to improve the system to occupy the least amount of resources, in

order to be possible to use a lower cost FPGA.

Page 10: Artur Diogo Rodrigues Anjo Processador de efeitos digitalintranet.dei.uminho.pt/gdmi/galeria/temas/pdf/50822.pdf · processador de efeitos em FPGA para guitarra elétrica. Esta abordagem,

viii

Page 11: Artur Diogo Rodrigues Anjo Processador de efeitos digitalintranet.dei.uminho.pt/gdmi/galeria/temas/pdf/50822.pdf · processador de efeitos em FPGA para guitarra elétrica. Esta abordagem,

ix

Índice

AGRADECIMENTOS ................................................................................................... III

RESUMO ......................................................................................................................... V

ABSTRACT .................................................................................................................. VII

INTRODUÇÃO ................................................................................................................ 1

1.1. ENQUADRAMENTO .......................................................................................... 4

1.2. MOTIVAÇÃO ....................................................................................................... 5

1.3. OBJETIVOS .......................................................................................................... 6

1.4. ESTRUTURA DA DISSERTAÇÃO .................................................................... 7

ESTADO DE ARTE ......................................................................................................... 9

2.1. PROPRIEDADES DOS SINAIS DE ÁUDIO ...................................................... 9

2.2. ARQUITETURA DE UNIDADES DE PROCESSAMENTO DIGITAL PARA

SINAIS DE ÁUDIO ....................................................................................................... 12

2.2. PROCESSADORES DE SINAL DIGITAL ....................................................... 14

2.3. EFEITOS ............................................................................................................. 18

2.3.1. DELAY/ECHO ................................................................................................ 18

2.3.2. VIBRATO ........................................................................................................ 19

2.3.3. CHORUS ......................................................................................................... 20

2.3.4. FLANGER ....................................................................................................... 20

2.3.5. DISTORÇÃO ................................................................................................... 21

CAPÍTULO 3 ................................................................................................................. 25

ANÁLISE DO SISTEMA .............................................................................................. 25

3.1. FUNCIONAMENTO DO SISTEMA ................................................................. 25

3.2. CARACTERÍSTICAS DA GUITARRA ELÉTRICA ........................................ 27

3.3. INTERFACE ANALÓGICO .............................................................................. 30

3.3.1. SISTEMA DE AQUISIÇÃO ........................................................................... 31

3.3.2. SISTEMA DE CONVERSÃO E REPRODUÇÃO DO SINAL ..................... 33

3.3.3. SISTEMA DE PROCESSAMENTO E CONTROLO .................................... 35

CAPITULO 4 ................................................................................................................. 37

DESENVOLVIMENTO DO SISTEMA ........................................................................ 37

4.1. HARDWARE ...................................................................................................... 37

4.1.1. ADC ................................................................................................................. 37

4.1.2. DAC ................................................................................................................. 42

4.1.3. ASPETO FINAL DO HARDWARE DO SISTEMA ...................................... 45

Page 12: Artur Diogo Rodrigues Anjo Processador de efeitos digitalintranet.dei.uminho.pt/gdmi/galeria/temas/pdf/50822.pdf · processador de efeitos em FPGA para guitarra elétrica. Esta abordagem,

x

4.2. IMPLEMENTAÇÃO EM FPGA ........................................................................ 46

4.2.1. MÓDULO ADC .............................................................................................. 46

4.2.2. MÓDULO DAC .............................................................................................. 51

4.2.3. IMPLEMENTAÇÃO DOS EFEITOS ............................................................. 55

DELAY ........................................................................................................................... 56

ECHO ............................................................................................................................. 61

DISTORÇÃO ................................................................................................................. 64

VIBRATO ...................................................................................................................... 66

4.2.4. MÓDULO UART ............................................................................................ 68

4.2.5. ESCOLHA DOS EFEITOS ............................................................................. 70

4.3. IMPLEMENTAÇÃO DO SOFTWARE ............................................................. 75

CAPÍTULO 5 ................................................................................................................. 77

RESULTADOS .............................................................................................................. 77

5.1. RESULTADOS DO HARDWARE .................................................................... 77

5.2. RESULTADOS SIMULADOS ........................................................................... 79

5.3. RESULTADOS EXPERIMENTAIS .................................................................. 81

5.4. RESULTADOS DOS CUSTOS DO PROJETO ................................................. 84

CAPÍTULO 6 ................................................................................................................. 91

CONCLUSÃO E TRABALHO FUTURO .................................................................... 91

BIBLIOGRAFIA ............................................................................................................ 93

Page 13: Artur Diogo Rodrigues Anjo Processador de efeitos digitalintranet.dei.uminho.pt/gdmi/galeria/temas/pdf/50822.pdf · processador de efeitos em FPGA para guitarra elétrica. Esta abordagem,

xi

Índice de Figuras

Figura 1 - Exemplo de pedal analógico de distorção........................................................ 2

Figura 2 - Exemplo de pedal analógico de Chorus ........................................................... 2 Figura 3 - Exemplo de pedal analógico de Flanger .......................................................... 3 Figura 4 - Exemplo de pedaleira multi-effect (ME-25) .................................................... 3 Figura 5 - Exemplo de pedaleira multi-effect (ME-70) .................................................... 4 Figura 6- Domínio do tempo e frequência........................................................................ 9

Figura 7- Frequências audíveis ....................................................................................... 10 Figura 8 - Frequências típicas de notas musicais ........................................................... 11 Figura 9 - Arquitetura de aplicações de áudio ................................................................ 12 Figura 10 - Representação dos sinais ............................................................................. 13 Figura 11- Exemplo de um chip DSP ............................................................................. 15

Figura 12 - Exemplo de placa de desenvolvimento FPGA ............................................ 17 Figura 13 - Exemplo de algoritmo do efeito delay ......................................................... 18

Figura 14 - Exemplo de algoritmo do efeito Chorus ...................................................... 20 Figura 15 - Exemplo de algoritmo do efeito Flanger ..................................................... 20 Figura 16 - Clipping usado para o efeito distorção ........................................................ 21 Figura 17 - Exemplo de circuito lógico do efeito delay ................................................. 22

Figura 18 - Exemplo de circuito lógico do efeito vibrato ............................................... 23 Figura 19 - Exemplo de circuito lógico do efeito Chorus .............................................. 23

Figura 20 - Exemplo de circuito lógico do efeito Flanger .............................................. 24 Figura 21 - Diagrama geral do sistema ........................................................................... 26 Figura 22 - Forma de onda da nota Mi da guitarra ......................................................... 27

Figura 23 - Forma de onda da nota Lá da guitarra ......................................................... 28 Figura 24 - Forma de onda da nota Ré da guitarra ......................................................... 28

Figura 25 - Forma de onda da nota Sol da guitarra ........................................................ 29

Figura 26 - ADC CS5340 ............................................................................................... 31

Figura 27 - Diagrama dos componentes internos do ADC ............................................. 32 Figura 28- DAC CS4335 ................................................................................................ 33 Figura 29 - Diagrama dos componentes internos do DAC ............................................. 33

Figura 30 - Xilinx UPV5LX110T .................................................................................. 35 Figura 31 - Esquemático do ADC CS5340 .................................................................... 39

Figura 32 - Resultado do layout da PCB do ADC .......................................................... 40 Figura 33 - Resultado da primeira versão da PCB do ADC ........................................... 41 Figura 34 - Resultado da versão final da PCB do ADC ................................................. 41

Figura 35 - Esquemático do DAC CS4335 .................................................................... 43 Figura 36 - Resultado do layout da PCB do DAC .......................................................... 43

Figura 37 - Resultado da primeira versão da PCB do DAC ........................................... 44 Figura 38 - Resultado final da PCB do DAC ................................................................. 44 Figura 39 - Resultado final do sistema ........................................................................... 45

Figura 40 - Configurações do protocolo I2S .................................................................. 47 Figura 41 - Configuração I2S com controlador .............................................................. 47 Figura 42 - Diagrama temporal do protocolo I2S........................................................... 48 Figura 43 - Configuração da PLL para o sinal MCLK do ADC .................................... 49

Figura 44 - Instanciação do sinal MCLK do ADC ......................................................... 50 Figura 45 - Implementação do envio dos dados do ADC............................................... 51

Figura 46 - Diagrama temporal do protocolo Left-Justified........................................... 52

Page 14: Artur Diogo Rodrigues Anjo Processador de efeitos digitalintranet.dei.uminho.pt/gdmi/galeria/temas/pdf/50822.pdf · processador de efeitos em FPGA para guitarra elétrica. Esta abordagem,

xii

Figura 47 - Geração do sinal MCLK do DAC................................................................ 53

Figura 48 - Geração do sinal LRCK do DAC ................................................................ 53 Figura 49 - Geração do sinal SCLK do DAC ................................................................. 54 Figura 50 - Implementação do envio dos dados do DAC............................................... 55

Figura 51 - Algoritmo do efeito delay ............................................................................ 56 Figura 52 - Block memory generator da Xilinx ............................................................. 56 Figura 53 - Definição de parâmetros do block memory generator ................................. 57 Figura 54 - Instanciação da single port Ram do efeito delay ......................................... 57 Figura 55 - Exemplificação do tratamento dos dados para o efeito delay ...................... 58

Figura 56 - Implementação do contador para o efeito delay .......................................... 59 Figura 57 - Implementação do contador de uma segunda abordagem para o efeito delay

........................................................................................................................................ 60 Figura 58 – True dual port Ram para o efeito Echo ....................................................... 61 Figura 59 - Definição dos parâmetros do block memory generator para o efeito Echo . 62

Figura 60 - Instanciação da dual port Ram para o efeito Echo....................................... 62

Figura 61 - Implementação do contador de 64k para o efeito Echo ..... Error! Bookmark

not defined. Figura 62 - Implementação do contador de 128k para o efeito Echo ............................. 63 Figura 63 - Processo clipping ......................................................................................... 64 Figura 64 - Fluxograma do efeito Distorção .................................................................. 65

Figura 65 - Implementação do efeito Distorção com base em hard-clipping ................. 65 Figura 66 - Implementação do efeito Distorção com base em soft-clipping .................. 66

Figura 67 - Algoritmo do efeito vibrato ......................................................................... 66 Figura 68 - Instanciação da dual port Ram para o efeito vibrato ................................... 67 Figura 69 - Implementação do contador para o efeito vibrato ....................................... 67

Figura 70 - Formato dos dados do protocolo UART ...................................................... 68 Figura 71 - Geração do sinal BaudTick .......................................................................... 69

Figura 72 - Diagrama lógico da escolha dos efeitos ....................................................... 70 Figura 73 - Ativação/desativação do efeito vibrato ........................................................ 71

Figura 74 - Máquina de estados utilizada na escolha dos efeitos ................................... 72 Figura 75 - Estado IDLE ................................................................................................ 73

Figura 76 - Estados Enable_effects e Disable_effects.................................................... 73

Figura 77 - Estado 'sel_param' ........................................................................................ 74 Figura 78 - Aspeto da aplicação 'Audio Effects Processor' ............................................ 75

Figura 79 - Fluxograma da aplicação ............................................................................. 76 Figura 80 - Resultado de teste efetuado ao ADC – 200mV ........................................... 78 Figura 81 - Resultado de teste efetuado ao ADC - 300mV ............................................ 78

Figura 82 - Resultado de teste efetuado ao DAC ........................................................... 79 Figura 83 - Resultado em simulação do comportamento do ADC ................................. 80

Figura 84 - Resultado em simulação do comportamento do DAC ................................. 80 Figura 85 - Resultado em simulação do comportamento do efeito delay ...................... 81 Figura 86 - Resultado do efeito delay - 1ª abordagem ................................................... 82

Figura 87 - Resultado do efeito delay - 2ª abordagem ................................................... 82 Figura 88- Resultado do efeito Echo .............................................................................. 83 Figura 89 - Resultado do efeito Distorção (hard-clipping)............................................. 83 Figura 90 - Recursos utilizados no FPGA ...................................................................... 85

Figura 91 - FPGA Nexys 7 ............................................................................................. 86 Figura 92 - Virtex-5 ........................................................................................................ 86 Figura 93 - KORG Pandora ............................................................................................ 88 Figura 94 - BOSS ME-25 ............................................................................................... 89

Page 15: Artur Diogo Rodrigues Anjo Processador de efeitos digitalintranet.dei.uminho.pt/gdmi/galeria/temas/pdf/50822.pdf · processador de efeitos em FPGA para guitarra elétrica. Esta abordagem,

xiii

Índice de Tabelas

Tabela 1 - Características do CS5340............................................................................. 31 Tabela 2 - Características do CS4335............................................................................. 34

Tabela 3 - Modos de operação do ADC ......................................................................... 38

Page 16: Artur Diogo Rodrigues Anjo Processador de efeitos digitalintranet.dei.uminho.pt/gdmi/galeria/temas/pdf/50822.pdf · processador de efeitos em FPGA para guitarra elétrica. Esta abordagem,

xiv

Page 17: Artur Diogo Rodrigues Anjo Processador de efeitos digitalintranet.dei.uminho.pt/gdmi/galeria/temas/pdf/50822.pdf · processador de efeitos em FPGA para guitarra elétrica. Esta abordagem,

1

Capítulo 1

Introdução

Efeitos sonoros são sons criados e utilizados em vários meios de comunicação mais

concretamente no mundo da música. Estes efeitos são editados de maneira a alterar o

som original proveniente de instrumentos musicais ou até mesmo de vozes. Estas

alterações podem ser adições de sons, com repetições, sons com distorção, entre outros.

A maioria dos efeitos começaram a surgir em equipamentos analógicos nos anos

1950 a 1970 [1]. Nessa época, foram inventadas unidades de efeitos, normalmente

ativados por “pedais”. Estas unidades de efeitos são equipamentos que alteram o som

proveniente de um instrumento musical de maneiras diferentes e utilizados em vários

estilos de música. Estas unidades podem apenas alterar um pouco o sinal original como

altera-lo completamente. Normalmente, este tipo de unidades são utilizados em

instrumentos eletrônicos como guitarra, baixo, teclado.

Mais tarde, despontaram equipamentos que utilizavam sinais digitais para

reproduzir os efeitos de guitarra, que até então, eram unicamente reproduzidos por

eletrónica analógica, denominados por processadores de efeitos. Este tipo de

equipamento consiste num dispositivo digital que permite alterar o sinal de uma guitarra

elétrica e adicionar efeitos. É normalmente utilizado como um pré amplificador que

envia o sinal processado para ser reproduzido através de um dispositivo de saída de

áudio, normalmente um amplificador. No entanto, também será necessário considerar os

amplificadores de guitarra como uma unidade de efeitos, pois este, também muda de

forma explícita o sinal proveniente do instrumento, ou seja, não se limita a reproduzi-lo.

Os amplificadores também podem criar efeitos como distorção, echo, reverb, overdrive,

entre outros mas, na maioria das vezes, é necessário ativar o efeito pretendido

manualmente o que fará com que o guitarrista perca tempo e não consiga combinar

vários efeitos na mesma música de forma encadeada.

Numa atuação ao vivo, um guitarrista necessita em determinadas alturas de mudar

de efeito rapidamente no decorrer de uma música. Apesar de alguns amplificadores

fornecerem um pedal remoto, um processador de efeitos permite alterar

instantaneamente entre vários efeitos. Esta ativação pode ser realizada através de um ou

Page 18: Artur Diogo Rodrigues Anjo Processador de efeitos digitalintranet.dei.uminho.pt/gdmi/galeria/temas/pdf/50822.pdf · processador de efeitos em FPGA para guitarra elétrica. Esta abordagem,

2

vários pedais. Pedal single-effect ou pedaleira multi-effect para guitarra são conceitos

conhecidos pela maioria dos músicos. Um pedal single-effect que na maioria dos casos é

um pedal analógico tem, normalmente, como função produzir um único efeito. Podemos

observar exemplos de pedais single-effect analógicos nas figuras 1,2 e 3 [2] [3] [4].

Figura 1 - Exemplo de pedal analógico de distorção

Figura 2 - Exemplo de pedal analógico de Chorus

Page 19: Artur Diogo Rodrigues Anjo Processador de efeitos digitalintranet.dei.uminho.pt/gdmi/galeria/temas/pdf/50822.pdf · processador de efeitos em FPGA para guitarra elétrica. Esta abordagem,

3

Figura 3 - Exemplo de pedal analógico de Flanger

Ao calcar no pedal será ativado, por exemplo, o efeito distorção. Se calcar mais

uma vez irá desativar o efeito distorção e passará a ter o som amplificado “limpo” sem

efeitos. Este tipo de pedal é limitado pois, consoante o efeito que o amplificador tiver

definido, só será possível alterar entre dois efeitos.

Por outro lado, uma pedaleira multi-effect ou designada também por processador de

efeitos digital, pode produzir desde dezenas a centenas de efeitos. Nas figuras 4 e 5 [5]

[6], é possível visualizar exemplos de pedaleiras multi-effect ou processadores de efeitos

digitais.

Figura 4 - Exemplo de pedaleira multi-effect (ME-25)

Page 20: Artur Diogo Rodrigues Anjo Processador de efeitos digitalintranet.dei.uminho.pt/gdmi/galeria/temas/pdf/50822.pdf · processador de efeitos em FPGA para guitarra elétrica. Esta abordagem,

4

Figura 5 - Exemplo de pedaleira multi-effect (ME-70)

O processador de efeitos também detém um funcionamento On/Off, mas, no entanto,

possui vários pedais que o guitarrista pode usar para escolher o efeito que pretende de

forma rápida, simultânea e quantas vezes pretender. Um processador de efeitos digital

poderá também ser programável o que permite a um guitarrista guardar os efeitos que

pretende e utilizar mais tarde na sequência que desejar se assim o pretender.

1.1. Enquadramento

Esta dissertação enquadra-se na área da música mais concretamente nos

equipamentos que adicionam efeitos aos instrumentos musicais, como a guitarra

elétrica.

Relativamente á guitarra elétrica, quando se aborda o tópico processadores de

efeitos analógicos, estes são associados a pedais single-effect, enquanto quando os

processadores de efeitos digitais são referenciados, estes também são associados a

pedais single-effect mas no entanto são mais utilizados como pedais ou pedaleiras multi-

effects. Pois, a grande vantagem dos processadores de efeitos digitais consiste na

capacidade de utilizar vários efeitos num só equipamento, bem como a possibilidade de

o utilizador personalizar, configurar ou até guardar os efeitos que pretender da maneira

ou sequência que desejar.

No que diz respeito à implementação deste tipo de processadores de efeitos digitais

existem pelo menos duas abordagens diferentes. Implementação através da utilização de

Page 21: Artur Diogo Rodrigues Anjo Processador de efeitos digitalintranet.dei.uminho.pt/gdmi/galeria/temas/pdf/50822.pdf · processador de efeitos em FPGA para guitarra elétrica. Esta abordagem,

5

microprocessadores ou DSP (Digital Signal Processor) [1] ou então através de FPGA

(Field Programmable Gate Array) [7]. Estas abordagens proporcionam vários

benefícios, devido ao fato de estas possuírem bom desempenho e boa resposta em

tempo real. Mas, a abordagem com recurso ao uso de FPGA [8] [9], proporciona

algumas vantagens relativamente ao uso de microprocessadores ou DSPs,

principalmente no que diz respeito à flexibilidade e custo reduzido. No entanto, será

efetuado um estudo mais detalhado relativamente aos diferentes tipos de implementação

de processadores de efeitos.

É neste sentido que se enquadra esta dissertação, na implementação de uma unidade

de efeitos, na área de sistema embebidos e processamento digital de sinal, denominado

processador de efeitos digital. A sua implementação será por hardware digital em

FPGA.

Esta abordagem poderá permitir ao utilizador, guitarrista amador ou profissional,

melhorar e personalizar ainda mais a sua criatividade musical.

1.2. Motivação

A música sempre foi considerada para grande parte das pessoas como uma área de

grande interesse e que atualmente está ligada a diversas atividades. É uma área bastante

atrativa e abrangente com cada vez mais seguidores, dentro da enorme variante de

estilos que existe atualmente devido à sua expansão. Devido à evolução da tecnologia

foi possível melhorar a qualidade de som como a personalização dos instrumentos

musicais. Neste sentido, foram surgindo produtos de personalização musical como os

processadores de efeitos ou pedaleiras multi-effect, os quais permitem alterar

substancialmente o som de instrumentos, adicionando cumulativamente efeitos como

reverb, distorção, etc. Estes produtos são bastante procurados por profissionais musicais

bem como por amadores, pois este tipo de produto tem um grande valor de mercado e

podem ser implementados tanto por software como por hardware. Por sua vez, os

produtos como os processadores de efeitos implementados por hardware digital com

recurso ao uso de FPGA (Field Programmable Gate Array) são bastantes mais

aliciantes e atrativos. Atualmente, dispositivos programáveis do tipo FPGA, tal como

DSPs, são considerados excelentes no que se refere à performance, pois possuem uma

resposta em tempo real bastante boa. No entanto, este tipo de solução oferece bastantes

Page 22: Artur Diogo Rodrigues Anjo Processador de efeitos digitalintranet.dei.uminho.pt/gdmi/galeria/temas/pdf/50822.pdf · processador de efeitos em FPGA para guitarra elétrica. Esta abordagem,

6

vantagens como por exemplo, menor tempo de colocação do produto no mercado, baixo

custo, manutenção a longo prazo, entre outras. [8] [9] [10] O uso de FPGA em produtos

como processadores de efeitos é bastante vantajosa também pela possibilidade de tornar

este num produto personalizável e reconfigurável, transformando-o assim num produto

mais cativante.

1.3. Objetivos

O objetivo principal desta dissertação consiste no desenvolvimento de uma

plataforma de processamento de efeitos para guitarra elétrica implementada por

hardware digital utilizando um FPGA. Numa primeira fase será necessário realizar o

estudo do que já existe relativamente a processadores de efeitos que é o foco desta

dissertação. Será importante realizar toda a pesquisa necessária a nível de processadores

de efeitos tanto no domínio digital como analógico. Depois será essencial estudar as

técnicas de processamento digital de sinal existentes e decidir quais as melhores

abordagens para posteriormente implementar os efeitos pretendidos em hardware

digital em FPGA.

Após esta primeira análise do sistema, será realizada a especificação de cada

componente de hardware a utilizar bem como o interface de comunicação com o

mesmo, neste caso será necessário especificar o hardware a utilizar no interface

analógico entre guitarra e amplificador. Especificar como o hardware fará a aquisição

dos dados e como os dados serão posteriormente processados. Posteriormente, é

essencial dividir o projeto em subsistemas, em que neste caso pode-se definir a

implementação de cada efeito como um subsistema, e explicar o funcionamento de cada

um de maneira a facilitar a sua implementação.

Depois de efetuada toda a análise e especificação do sistema será então realizada

a fase da implementação. Após a especificação de cada subsistema, será realizada a

implementação de cada uma deles, ou seja, a implementação em hardware digital de

cada um dos efeitos já definidos anteriormente, Após, realizar-se-á a integração dos

subsistemas e adicionalmente o desenvolvimento do hardware de controlo dos vários

efeitos e a sobreposição destes.

Posteriormente serão também efetuados todos os casos de teste necessários de

maneira a comprovar o funcionamento do projeto em relação ao que é pretendido.

Page 23: Artur Diogo Rodrigues Anjo Processador de efeitos digitalintranet.dei.uminho.pt/gdmi/galeria/temas/pdf/50822.pdf · processador de efeitos em FPGA para guitarra elétrica. Esta abordagem,

7

1.4. Estrutura da dissertação

O primeiro capítulo é composto pela introdução à música e aos equipamentos de

criação de efeitos para guitarra elétrica, tanto no domínio analógico como digital,

normalmente associados a pedais single-effect e pedais-multi-effect respetivamente.

Também é mencionada a motivação para esta dissertação bem como o seu

enquadramento. São referidos igualmente os objetivos desta dissertação.

O segundo capítulo é composto pelo estado de arte. Neste capítulo é efetuado o

estudo sobre as propriedades dos sinais de áudio, tal como o estudo de diferentes tipos

de implementações de processadores de efeitos digitais. Também é realizado o estudo

sobre as técnicas de processamento de sinal existentes relativamente aos efeitos, ou seja,

conhecer os algoritmos correspondentes aos efeitos mais conhecidos e utilizados na

guitarra elétrica e escolher o melhor modo a seguir se possível. São igualmente

mencionadas algumas abordagens diferentes no que se refere à implementação RTL de

alguns dos efeitos mencionados.

O terceiro capítulo é responsável por toda a análise do sistema. Este capítulo é o

responsável pela especificação do hardware necessário para o interface analógico a

utilizar consoante os requisitos deste projeto. Analisar como será feita a aquisição do

sinal bem como a conversão e reprodução deste. Em suma é neste capítulo que são

analisados cada um dos subsistemas e especificadas as necessidades de cada um deles.

No quarto capítulo é detalhada a implementação de todo o sistema. Relativamente

ao hardware, interface analógico, circuitos e PCBs. Bem como em relação ao gateware

implementado, protocolos de comunicação, processamento e controlo dos efeitos de

áudio. Também é demonstrada a implementação correspondente à aplicação

desenvolvida em C# de maneira a permitir ao utilizador escolher os efeitos bem como

os parâmetros de cada um.

No quinto capítulo são demonstrados e analisados os resultados do sistema. São

especificados os resultados em simulação e posteriormente os resultados experimentais.

Será também efetuada a análise dos custos inerentes a este projeto, custos na criação das

placas, do FPGA, etc e realizada a comparação com sistemas semelhantes existentes no

mercado atual.

O sexto capítulo é composto pela conclusão do trabalho efetuado bem como

melhoramentos que possam ser implementados no futuro em relação a este trabalho.

Page 24: Artur Diogo Rodrigues Anjo Processador de efeitos digitalintranet.dei.uminho.pt/gdmi/galeria/temas/pdf/50822.pdf · processador de efeitos em FPGA para guitarra elétrica. Esta abordagem,

8

Por fim, o oitavo e nono capítulo são constituídos pela bibliografia utilizada nesta

dissertação e por anexos referentes a implementação deste trabalho, respetivamente.

Page 25: Artur Diogo Rodrigues Anjo Processador de efeitos digitalintranet.dei.uminho.pt/gdmi/galeria/temas/pdf/50822.pdf · processador de efeitos em FPGA para guitarra elétrica. Esta abordagem,

9

Capítulo 2

Estado de Arte

2.1. Propriedades dos sinais de áudio

Figura 6- Domínio do tempo e frequência

O propósito desta dissertação consiste na implementação de efeitos sonoros daí que

é essencial conhecer as propriedades dos sinais de áudio mais relevantes [11]. O som é

definido como uma onda mecânica como uma oscilação de pressão [12]. Este propaga-

se, até ao ponto de ser audível pelo ser humano, numa determinada gama de frequência.

Essa gama situa-se normalmente entre 20Hz e os 20kHz. Esta gama de valores é

aproximada podendo o valor mínimo audível ser inferior para alguns autores. O som

pode ser representado no domínio do tempo bem como no domínio da frequência, como

podemos observar na figura 6.

Page 26: Artur Diogo Rodrigues Anjo Processador de efeitos digitalintranet.dei.uminho.pt/gdmi/galeria/temas/pdf/50822.pdf · processador de efeitos em FPGA para guitarra elétrica. Esta abordagem,

10

Figura 7- Frequências audíveis

Como já foi referido as frequências audíveis ao ser humano situam-se

aproximadamente entre os 20Hz e os 20kHz. As frequências superiores a 20kHz são

designadas por ultrassons enquanto as frequências inferiores a 20Hz são nomeadas de

infrassons. Na figura 7, pode-se verificar isso mesmo, bem como em que gama os sons

graves e agudos estão, dentro do espectro audível.

As frequências que estão entre 20Hz e 300Hz são denominadas frequências

baixas, nesta gama de valores consegue-se ouvir sons graves. Enquanto frequências

entre 3kHz e 20kHz são designadas frequências altas e é possível obter sons agudos. No

entanto, ainda dentro do espectro audível, o ser humano é mais sensível a frequências

dentro da gama de valores entre 300Hz e 3kHz.

Posto isto, é também necessário perceber em que gama de valores os sons são

produzidos pelo instrumento a usar nesta dissertação, sendo neste caso particular a

guitarra elétrica. Este instrumento referido, produz obviamente sons dentro do espectro

audível mas numa gama bem mais reduzida. Para isso, foi necessário verificar que

valores de frequência obtém-se de algumas notas provenientes da guitarra elétrica, esta

análise concreta será abordada mais à frente nesta dissertação. No entanto, estes valores

já são conhecidos e serão utilizados como comparação com a análise experimental já

referida.

Page 27: Artur Diogo Rodrigues Anjo Processador de efeitos digitalintranet.dei.uminho.pt/gdmi/galeria/temas/pdf/50822.pdf · processador de efeitos em FPGA para guitarra elétrica. Esta abordagem,

11

Figura 8 - Frequências típicas de notas musicais

Na figura 8, é possível verificar as frequências das correspondentes notas que

consegue-se obter a partir da guitarra elétrica. Os valores a vermelho representam as

frequências das notas das seis “cordas soltas” de uma guitarra. É possível verificar que a

frequência proveniente da corda solta mais grave da guitarra é de aproximadamente

80Hz e a corda solta mais aguda é de 330Hz. No entanto, é possível atingir frequências

numa gama superior com recurso aos harmónicos da guitarra, podendo obter-se valores

máximos próximos dos 15kHz.

Perante isto, será essencial introduzir o conceito do teorema de amostragem de

Nyquist-Shannon [13]. Este teorema tem como objetivo analisar uma parte de um sinal

contínuo e construir um sinal discreto a partir de do sinal original sem perder a

informação proveniente deste. Para isso, é utilizada uma frequência de amostragem.

Esta frequência tem de ser superior a pelo menos duas vezes o valor de frequência mais

elevado do sinal original,

,

quanto maior for o valor da frequência de amostragem maior será também a

qualidade do sinal amostrado. Idealmente, por experiência empírica define-se que para

obter maior qualidade na amostragem a frequência a utilizar deve ser 10 vezes superior

ao valor máximo de frequência encontrado no sinal de entrada. Geralmente, para sinais

de áudio, a frequência de amostragem deve ser superior a 40kHz de maneira a evitar

efeitos de aliasing.

Page 28: Artur Diogo Rodrigues Anjo Processador de efeitos digitalintranet.dei.uminho.pt/gdmi/galeria/temas/pdf/50822.pdf · processador de efeitos em FPGA para guitarra elétrica. Esta abordagem,

12

Posto isto, para este caso concreto depois de analisadas as frequências das notas

musicais, o valor a utilizar aconselhado deve ser superior a 40kHz, mas idealmente deve

possuir uma frequência de aproximadamente 150kHz, de maneira a atingir qualidade

suficiente na amostragem.

2.2. Arquitetura de unidades de

processamento digital para sinais de áudio

Figura 9 - Arquitetura de aplicações de áudio

Normalmente, existe uma arquitetura a seguir em aplicações de áudio para o

processamento de sinal. Esta arquitetura pode ser visualizada no diagrama de blocos

representado na figura 9.

Esta arquitetura deve possuir uma unidade de processamento do sinal, este é o

responsável por receber o sinal proveniente do sistema de aquisição do sinal, composto

por um conversor analógico para digital (ADC), e adicionar efeitos e efetuar o controlo

dos mesmos. Os efeitos são implementados seguindo os respetivos algoritmos e podem

ser efeitos baseados em adições com tempos de atraso como delay, echo, vibrato, ou

outro tipo de efeitos baseado no processo clipping como overdrive e distorção entre

muitos outros. O sinal alterado é depois enviado por um conversor digital para

analógico (DAC), este deve possuir os filtros e ajustes de amplificação do sinal

necessários para a devida reprodução do sinal. O sinal é reproduzido num dispositivo de

output de áudio, sendo que para o caso particular da guitarra elétrica é normalmente

utilizado um amplificador.

Page 29: Artur Diogo Rodrigues Anjo Processador de efeitos digitalintranet.dei.uminho.pt/gdmi/galeria/temas/pdf/50822.pdf · processador de efeitos em FPGA para guitarra elétrica. Esta abordagem,

13

Processamento dos sinais digitais

Figura 10 - Representação dos sinais

A representação digital de um sinal de áudio analógico é realizada através de um

conversor analógico para digital, ADC (analog-to-digital converter) [14]. O ADC

adquire amostras das amplitudes do sinal analógico, , ao longo do eixo horizontal

do tempo e quantifica as amplitudes lidas convertendo-as em amostras fixas

representadas por números no eixo vertical, , como podemos observar na figura

10.

O sinal analógico é então representado por um sinal contínuo, no domínio do

tempo, e por os seus valores de amplitude. De maneira a efetuar a conversão deste sinal,

é utilizado um ADC (Analog to Digital Converter) para converter o sinal contínuo para

um sinal discreto. Este sinal é exibido por uma sequência de amostras durante o tempo

discreto n, representado na figura 10, por linhas verticais e pontos nos topos. O tempo

de distância entre duas amostras seguidas retrata o período de amostragem e por

conseguinte o inverso desta, representa a frequência de amostragem previamente

definida. Esta frequência representa o número de amostras por segundo em Hertz (Hz),

e tem de seguir o teorema de amostragem já referido anteriormente, possuir um valor

maior que dez vezes o valor máximo da frequência máxima encontrada, dentro da

Page 30: Artur Diogo Rodrigues Anjo Processador de efeitos digitalintranet.dei.uminho.pt/gdmi/galeria/temas/pdf/50822.pdf · processador de efeitos em FPGA para guitarra elétrica. Esta abordagem,

14

largura de banda, do sinal analógico. Quando é pretendido usar uma frequência de

amostragem fixa, é essencial garantir que o sinal de entrada possui uma largura de

banda de acordo com a seguinte expressão,

Caso contrário é necessário rejeitar frequências elevadas, usando para isso um

filtro passa-baixo que deixa passar as frequências baixas e atenua, isto é, reduz a

amplitude, dos sinais com frequências superiores ao valor da frequência de corte,

.

Após, a conversão do sinal analógico, o sinal digital procede para a unidade de

processamento de sinal digital, este sistema realiza uma simples multiplicação de 0.5 de

cada amostra obtendo o sinal a saída,

este sinal procede para o conversor DAC(Digital-to-Analog Converter), onde o sinal

analógico é reconstruído, . O sinal de saída possui metade da amplitude do

sinal de entrada, .

2.2. Processadores de sinal digital

Depois de analisadas as propriedades dos sinais de áudio, a arquitetura de unidades

de processamento de sinais e de como é realizado o tratamento e conversão dos sinais

de entrada e saída destes sistemas, é então essencial analisar a unidade mais importante

do sistema, a unidade de processamento do sinal digital. Neste caso particular, esta

unidade será responsável pelo processamento e controlo dos efeitos digitais de áudio.

Este tipo de unidade de processamento de sinais digitais oferece várias vantagens

em relação aquelas baseadas em sinal analógico como já foi mencionado anteriormente.

Estes processadores digitais oferecem vantagens como maior insensibilidade ao

ambiente que o rodeia, como por exemplo a temperatura, desde que o dispositivo

encontre-se dentro da gama de operação, este funciona com a mesma eficiência a

temperaturas superiores ao contrário das unidades baseadas em sinal analógico [15]. As

unidades digitais são reprogramáveis o que permite que estes possam ser utilizados para

Page 31: Artur Diogo Rodrigues Anjo Processador de efeitos digitalintranet.dei.uminho.pt/gdmi/galeria/temas/pdf/50822.pdf · processador de efeitos em FPGA para guitarra elétrica. Esta abordagem,

15

várias funções utilizando o mesmo hardware, não necessitando de componentes

adicionais, isto vai de encontro com outra das suas vantagens, o número reduzido de

componentes. Toda a lógica é implementada num único chip, permitindo assim a

aplicabilidade em sistemas complexos e que tenham como requisito o tamanho reduzido

ou a portabilidade.

No entanto, processadores digitais têm algumas desvantagens como o tempo de

processamento limitado e o espaço de memória que é limitado consoante o dispositivo

utilizado.

O componente a utilizar nestes processadores digitais podem ser

microprocessadores, normalmente DSP (Digital Signal Processor), ou

microcontroladores. Neste caso particular, o de processadores de efeitos digitais ou

pedaleiras multi-effect, é mais comum serem utilizadas implementações com recurso ao

uso de DSP.

Como o pretendido nesta dissertação é a implementação de um processador de

efeitos de audio em FPGA, tornou-se essencial fazer uma análise mais concreta,

apresentando as vantagens e desvantagens, entre processadores de efeitos em DSP e

processadores de efeitos em FPGA.

Processadores de efeitos em DSP

Figura 11- Exemplo de um chip DSP

Relativamente à unidade de processamento de um processador de efeitos digital,

atualmente, uma das possibilidades é com a utilização de um DSP (Digital Signal

Processor). Na década de 1980, surgiu o primeiro DSP. Foi apresentado em 1983 o

Page 32: Artur Diogo Rodrigues Anjo Processador de efeitos digitalintranet.dei.uminho.pt/gdmi/galeria/temas/pdf/50822.pdf · processador de efeitos em FPGA para guitarra elétrica. Esta abordagem,

16

TMS320C10, pela Texas Instruments, o microprocessador concebido especialmente

para resolver problemas de processamento digital de sinal [16] [17].

Um processador de sinais digitais permite utilizar sinais do mundo real como, voz,

som, vídeo, temperatura, pressão ou posição e que depois de digitalizados, são

manipulados pelo processador em questão. [18]. Este tipo de processador é otimizado

principalmente para realizar algoritmos de elevado cálculo matemático. Um DSP tem

como objetivo realizar o maior número de processos possíveis antes que um novo dado

tenha que ser manipulado. Funções como soma, subtração, divisão e multiplicação

devem ser executadas muito rapidamente, normalmente mais rápido do que um

microprocessador de uso geral. Os sinais, provenientes de qualquer modelo de origem,

necessitam de ser processados para que a informação contida nesses sinais possa ser

analisada, disponibilizada ou convertida para qualquer outro tipo de sinal que possa ser

utilizado. As conversões dos sinais são executadas a altas velocidades.

Os DSPs são vantajosos em vários aspetos e utilizados em diversas aplicações. Para

além, de um DSP ser um microprocessador otimizado para aplicações de processamento

numérico de alta velocidade, são também projetados para manipular sinais digitais,

consoante o algoritmo fornecido pelo utilizador, bem como realizar operações em tempo

real em sistemas flexíveis e adaptativos. Este tipo de microprocessador, tem como

principal vantagem ser reprogramável, o que possibilita reprogramar o

microprocessador para solucionar o problema sem que seja necessária a troca de

hardware. Em alguns casos nem existe a necessidade de reprogramá-lo, em que uma

solução do problema possa ser apenas melhorar a performance. A redução de custos

também é outra das vantagens pois devido à programabilidade os requisitos de

hardware são reduzidos, pois a quantidade de circuitos integrados exigidos são

reduzidos e o tempo de desenvolvimento também é inferior comparado com

dispositivos semelhantes. Estabilidade e facilidades de implementação de algoritmos

adaptativos, são outras das vantagens deste tipo de implementação.

No que diz respeito a implementações de efeitos digitais com recurso a DSPs, já

existiram alguns desenvolvimentos nesse aspeto. Como exemplo, no artigo [19], é

possível ficar a conhecer os algoritmos de alguns efeitos conhecidos para guitarra

elétrica e as técnicas de implementação usando DSP.

Page 33: Artur Diogo Rodrigues Anjo Processador de efeitos digitalintranet.dei.uminho.pt/gdmi/galeria/temas/pdf/50822.pdf · processador de efeitos em FPGA para guitarra elétrica. Esta abordagem,

17

Processadores de efeitos em FPGA

Figura 12 - Exemplo de placa de desenvolvimento FPGA

Implementação de um processador de efeitos com a utilização de um FPGA é outra

possibilidade atrativa e vantajosa.

Em 1985, surgiu o primeiro FPGA inventado por Ross Freeman, cofundador da

Xilinx, atualmente um dos principais fornecedores de dispositivos lógicos programáveis

a nível mundial [20]. Este chip é composto por portas lógicas, como portas AND, OR,

NOT e shift registers. Quanto à constituição de FPGAs, estes são compostos por chips

lógicos digitais reprogramáveis formados em silício. Neste tipo de chips é possível

programar praticamente qualquer tipo de função digital [8] [9]. A programação de um

FPGA é vista como a reconfiguração do próprio chip para implementar a funcionalidade

desejada, ou seja, para cada vez que se programa um FPGA obtém-se o circuito lógico

equivalente, por isso, a necessidade de executar uma aplicação de software é excluída.

FPGA é um dispositivo semicondutor que pode ser programado mesmo depois de ser

fabricado [10], este permite programar as características e funções do produto, adaptar-

se a novas normas e reconfigurar hardware para aplicações específicas em vez de estar

restrito a qualquer função de hardware predeterminada.

A grande vantagem deste tipo de implementação sobre a implementação com

recurso a DSP, consiste no fato de que FPGA é um componente único, otimizado para

cada aplicação e com os recursos desejados para tal, isto faz com que os custos sejam

reduzidos bem como o espaço numa placa, pois não existe desperdício de recursos. Por

Page 34: Artur Diogo Rodrigues Anjo Processador de efeitos digitalintranet.dei.uminho.pt/gdmi/galeria/temas/pdf/50822.pdf · processador de efeitos em FPGA para guitarra elétrica. Esta abordagem,

18

outro lado, a desvantagem vai de encontro com os custos e tempo de desenvolvimento,

pois este tipo de soluções são talhados para linhas de produção de larga escala.

Em relação aos DSPs, estes nem sempre possuem as funções que se deseja ou

necessárias para aplicações específicas, o que obriga à adição de circuitos externos

complexos. Neste tipo de soluções, existe o desperdício de recursos, pois, na maioria

dos casos, há funções que não são utilizadas, o que resulta em custos superiores.

Perante isto, soluções com uso de FPGA têm sido cada vez mais adotadas, pois as

funções pretendidas são implementadas pelo utilizador, visto que, estas não são

programadas de fábrica. Tornando-se assim soluções bastante flexíveis, possivelmente

de custo reduzido, e atingir também elevados níveis de desempenho.

2.3. Efeitos

Relativamente aos efeitos a serem implementados, serão escolhidos alguns dos mais

conhecido efeitos utilizados em guitarra elétrica [14]. Neste subcapítulo são abordados e

explicados alguns efeitos, com recursos aos algoritmos mais utilizados nas suas

implementações. No entanto, não serão propriamente implementados todos os efeitos

mencionados, mas sim todos aqueles que o tempo permitir durante toda a conceção do

projeto.

2.3.1. Delay/Echo

Figura 13 - Exemplo de algoritmo do efeito delay

O efeito delay/echo é composto pelo sinal original (sinal de entrada) adicionado por

um atraso repetitivo. O tempo de atraso será um parâmetro a definir de maneira a que o

Page 35: Artur Diogo Rodrigues Anjo Processador de efeitos digitalintranet.dei.uminho.pt/gdmi/galeria/temas/pdf/50822.pdf · processador de efeitos em FPGA para guitarra elétrica. Esta abordagem,

19

efeito seja audível. Se o atraso estiver entre 10 a 25 ms poderemos ouvir uma repetição

rápida do sinal denominada doubling ou slapback. Se o tempo de atraso for superior a

50 ms o que iremos ouvir será um echo [14]. De maneira a implementar o efeito delay, é

possível utilizar um algoritmo semelhante ao da figura 13.

O sinal de saída deste algoritmo, y(t), é formado pela combinação do sinal de

entrada, x(t), e o mesmo com um atraso. É usado um filtro FIR em que o sinal de

entrada é atrasado por uma determinada duração. O sinal do efeito em questão, só será

audível quando o sinal processado for adicionado ao sinal de entrada.

2.3.2. Vibrato

O efeito vibrato é muito peculiar, pois quando conseguimos ouvi-lo, este transmite a

sensação de que a distância entre a origem do som e os nossos ouvidos está a variar.

Neste caso particular, a variação da distância, corresponde à variação do tempo de

atraso.

De maneira a obter o efeito vibrato, é possível variar periodicamente o tempo de

atraso resultando assim numa variação do tom periódica.

Os valores típicos de tempo de atraso, para o efeito vibrato, normalmente situam-se

entre 5 a 10 ms. Este efeito, é usualmente utilizado como base em outros efeitos, como

por exemplo, Chorus e Flanger que são abordados de seguida.

Page 36: Artur Diogo Rodrigues Anjo Processador de efeitos digitalintranet.dei.uminho.pt/gdmi/galeria/temas/pdf/50822.pdf · processador de efeitos em FPGA para guitarra elétrica. Esta abordagem,

20

2.3.3. Chorus

Figura 14 - Exemplo de algoritmo do efeito Chorus

O efeito chorus tem como propósito reproduzir várias réplicas do sinal original, isto

é, uma espécie de coro. Se estas réplicas do sinal de entrada forem atrasados entre 10 a

25 ms com pequenas e aleatórias variações nos tempos de atraso, iremos ouvir o efeito

chorus, que tem como base o efeito vibrato que reproduz um atraso variável.

Normalmente, este tipo de efeito é utilizado quando um guitarrista pretende simular o

som de várias guitarras ao mesmo tempo [14].

2.3.4. Flanger

Figura 15 - Exemplo de algoritmo do efeito Flanger

Relativamente ao efeito flanger, o algoritmo deste é bastante semelhante ao do

efeito chorus. A grande diferença deve-se ao fato que, em relação a este efeito a

velocidade da variação do atraso é menor comparativamente ao efeito chorus. Este

efeito simula um som semelhante ao de um “avião a jato”. Se o tempo de atraso possuir

um valor abaixo dos 15ms e se este for continuamente variado a uma frequência baixa,

por volta de 1Hz, poderemos ouvir o efeito flanger [14].

Page 37: Artur Diogo Rodrigues Anjo Processador de efeitos digitalintranet.dei.uminho.pt/gdmi/galeria/temas/pdf/50822.pdf · processador de efeitos em FPGA para guitarra elétrica. Esta abordagem,

21

2.3.5. Distorção

Figura 16 - Clipping usado para o efeito distorção

Quando se fala em distorção, certamente será identificável pela maior parte das

pessoas, sendo este um dos efeitos mais conhecidos e preferidos mesmo por quem não

esteja no “mundo” musical [21]. Este tipo de efeito é normalmente utilizado em estilos

de música rock ou variantes deste. O objetivo principal da implementação deste tipo de

efeito é, comprimir os picos da onda de sinal original e adicionar harmônicos. O

processo de alterar o sinal do modo referido é denominado clipping.

No entanto, existem duas variantes deste processo, hard-clipping e soft-clipping. Na

figura 16, podemos verificar a forma de onda original bem como hard-clipping e soft-

clipping. Estes processos são utilizados para obter os efeitos distorção e overdrive,

respetivamente. O efeito overdrive, também é designado como um tipo de distorção mas

possui uma compressão do som mais natural, sendo assim menos utilizado do que o

efeito distorção (hard-clipping) para estilos de música rock e variantes como referido.

Page 38: Artur Diogo Rodrigues Anjo Processador de efeitos digitalintranet.dei.uminho.pt/gdmi/galeria/temas/pdf/50822.pdf · processador de efeitos em FPGA para guitarra elétrica. Esta abordagem,

22

Exemplos de implementação RTL de efeitos

Figura 17 - Exemplo de circuito lógico do efeito delay

Em fase de implementação, poderemos ter como base os circuitos lógicos

correspondentes aos efeitos desejados demonstrados no artigo [7]. Neste artigo, o

objetivo é bastante semelhante ao referido nesta dissertação, em que sugere como

implementar alguns dos efeitos já referidos. São demonstrados alguns circuitos lógicos

correspondentes aos efeitos para implementação em hardware digital. De maneira a

poder implementar este tipo de efeitos em FPGA, será utilizada uma linguagem de

hardware HDL (Hardware Description Language), denominada Verilog.

Na figura 17, podemos observar um circuito lógico de exemplo. Este pode servir

como base de implementação do efeito delay em HDL.

Page 39: Artur Diogo Rodrigues Anjo Processador de efeitos digitalintranet.dei.uminho.pt/gdmi/galeria/temas/pdf/50822.pdf · processador de efeitos em FPGA para guitarra elétrica. Esta abordagem,

23

Figura 18 - Exemplo de circuito lógico do efeito vibrato

Na figura 18, podemos verificar um circuito lógico exemplo, como base de

implementação do efeito vibrato.

Figura 19 - Exemplo de circuito lógico do efeito Chorus

Page 40: Artur Diogo Rodrigues Anjo Processador de efeitos digitalintranet.dei.uminho.pt/gdmi/galeria/temas/pdf/50822.pdf · processador de efeitos em FPGA para guitarra elétrica. Esta abordagem,

24

Figura 20 - Exemplo de circuito lógico do efeito Flanger

Na figura 19, podemos observar um circuito lógico exemplo do efeito chorus como

possível base para a sua implementação. Na figura 20, podemos observar um circuito

lógico exemplo, como base de implementação do efeito flanger em HDL.

Page 41: Artur Diogo Rodrigues Anjo Processador de efeitos digitalintranet.dei.uminho.pt/gdmi/galeria/temas/pdf/50822.pdf · processador de efeitos em FPGA para guitarra elétrica. Esta abordagem,

25

Capítulo 3

Análise do Sistema

3.1. Funcionamento do sistema

Neste capítulo é realizada toda a análise do sistema, explicação do seu

funcionamento e especificação do hardware a utilizar neste projeto. Como já foi

referido anteriormente, tornou-se imprescindível implementar o interface analógico para

guitarra e amplificador.

A aquisição do sinal proveniente do instrumento musical, neste caso particular da

guitarra elétrica, foi efetuada através de um ADC (Analog-to-Digital Converter). Depois

do processamento dos dados em FPGA, o qual também é abordado neste capítulo, os

sinais terão de ser reproduzidos num amplificador mas antes, convertidos por um DAC

(Digital-to-Analog Converter).

Assim, podemos facilmente identificar os três principais subsistemas deste projeto:

Sistema de aquisição do sinal;

Sistema de processamento e controlo;

Sistema de Conversão e reprodução do sinal.

Page 42: Artur Diogo Rodrigues Anjo Processador de efeitos digitalintranet.dei.uminho.pt/gdmi/galeria/temas/pdf/50822.pdf · processador de efeitos em FPGA para guitarra elétrica. Esta abordagem,

26

Figura 21 - Diagrama geral do sistema

Posto isto, é possível verificar o funcionamento de todo o sistema representado na

figura 21.

Neste diagrama básico estão representados os blocos de aquisição do sinal (ADC) e

bloco de conversão e reprodução do sinal (DAC). O bloco de processamento dos efeitos

é representado pelo FPGA, este que possui um diagrama de exemplo simples de como

implementar o efeito delay. Como entrada temos o sinal da guitarra “limpo” e a saída

representada por um amplificador.

É então essencial escolher devidamente o hardware com características apropriadas

ao sistema em causa. Para tal, foi necessário analisar as formas de onda e frequências

dos sinais das notas provenientes da guitarra elétrica, bem como as caraterísticas do

FPGA a usar e o protocolo de comunicação a ser implementado entre o hardware.

Page 43: Artur Diogo Rodrigues Anjo Processador de efeitos digitalintranet.dei.uminho.pt/gdmi/galeria/temas/pdf/50822.pdf · processador de efeitos em FPGA para guitarra elétrica. Esta abordagem,

27

3.2. Características da guitarra elétrica

Figura 22 - Forma de onda da nota Mi da guitarra

De maneira a poder escolher o hardware que vai de encontro com as exigências do

sistema, foram analisadas as formas de onda e frequências de algumas notas

provenientes da guitarra.

Na figura 22, podemos observar a forma de onda da nota Mi (6ª corda da guitarra).

Podemos verificar que este sinal tem uma frequência a rondar os 83Hz, valor próximo

do esperado de 82Hz. E com valores de tensão de pico a pico próximos dos 200mV.

Page 44: Artur Diogo Rodrigues Anjo Processador de efeitos digitalintranet.dei.uminho.pt/gdmi/galeria/temas/pdf/50822.pdf · processador de efeitos em FPGA para guitarra elétrica. Esta abordagem,

28

Figura 23 - Forma de onda da nota Lá da guitarra

Na figura 23, podemos visualizar a forma de onda da nota Lá (5ª corda da

guitarra). Neste caso, a nota Lá, possui uma frequência de aproximadamente 110Hz,

valor próximo do esperado, e valores de tensão de pico a pico a rondar os 260mV.

Figura 24 - Forma de onda da nota Ré da guitarra

Page 45: Artur Diogo Rodrigues Anjo Processador de efeitos digitalintranet.dei.uminho.pt/gdmi/galeria/temas/pdf/50822.pdf · processador de efeitos em FPGA para guitarra elétrica. Esta abordagem,

29

Figura 25 - Forma de onda da nota Sol da guitarra

Na figura 24, é possível observar o sinal correspondente à nota Ré (4ª corda da

guitarra). Para o caso do sinal da nota Ré, podemos verificar que este detém um valor de

frequência próximo dos 147Hz, como seria de esperar. Como valores de tensão de pico

a pico estes rondam os 240mV.

Na figura 25, podemos observar as características da nota Sol (3ª corda da guitarra).

É possível verificar que no caso do sinal da nota Sol, este possui frequência próxima

dos 200Hz esperados e valores de pico a pico a rondar os 270mV.

Após a análise das características de algumas das notas da guitarra, foi possível

confirmar os valores de frequência destas, depois do estudo efetuado anteriormente, e

verificar que não existem grandes restrições relativamente aos valores de amplitude.

Como já foi referido anteriormente, e segundo o teorema de Nyquist [13], a frequência

de amostragem de um sinal analógico, deve ser idealmente dez vezes superior à

frequência máxima do sinal, de maneira a que se perca a menor quantidade de

informação possível. Para que seja possível alcançar amostragens com qualidade

suficiente, idealmente, a frequência de amostragem deve ser pelo menos dez vezes a

frequência máxima do sinal de entrada. Perante isto, chega-se à conclusão de que

Page 46: Artur Diogo Rodrigues Anjo Processador de efeitos digitalintranet.dei.uminho.pt/gdmi/galeria/temas/pdf/50822.pdf · processador de efeitos em FPGA para guitarra elétrica. Esta abordagem,

30

necessitamos, como principal requisito, a gama de frequências com que o hardware

opere. Como já foi referido, esta gama deve ser superior a 40kHz, idealmente próximo

dos 150kHz.

3.3. Interface Analógico

Como já foi referido anteriormente, é necessária a implementação do interface

analógico para realizar a aquisição do sinal proveniente da guitarra, e para efetuar-se a

reprodução do sinal, depois de processado na FPGA, num dispositivo de output de

áudio, neste caso um amplificador.

A seleção dos componentes de hardware necessários para este projeto é crucial, pois

o bom funcionamento de todo o sistema depende do hardware que o constitui.

É importante que a aquisição do sinal proveniente da guitarra sejam efetuadas com

qualidade, sem ruídos e com frequência de amostragem adequada aos requisitos do

sistema. Também foram necessários estes cuidados com o sistema de conversão e

reprodução do sinal processado, já com efeitos. Pois, mesmo que a aquisição do sinal

seja realizada com qualidade, este sistema necessita de operar à mesma frequência e

com a mesma eficiência do que o sistema de aquisição do sinal.

Perante estas restrições mencionadas, a escolha dos componentes de hardware para

os sistemas de aquisição do sinal e reprodução do mesmo, foram focados nos seguintes

fatores:

Gama de frequências;

Capacidade de resolução;

Uso frequente em aplicações de áudio;

Ruído;

Custo;

Facilidade de aquisição.

Page 47: Artur Diogo Rodrigues Anjo Processador de efeitos digitalintranet.dei.uminho.pt/gdmi/galeria/temas/pdf/50822.pdf · processador de efeitos em FPGA para guitarra elétrica. Esta abordagem,

31

3.3.1. Sistema de aquisição

Figura 26 - ADC CS5340

Para o sistema de aquisição do sinal foi necessário escolher um ADC, o

escolhido foi o CS5340 da CIRRUS LOGIC [22] , este circuito integrado é um

conversor analógico para digital stereo normalmente utilizado em aplicações de áudio

digital. Este possui filtragem anti-aliasing, conversão em 24 bits para cada um dos

canais de entrada, esquerdo e direito, a valores de frequência de amostragem até

200kHz por canal. O CS5340 utiliza um modulador multi-bit de 5ª ordem que exclui a

necessidade de usar um filtro anti-aliasing externo. Este ADC é bastante apropriado

para sistemas de áudio com baixo nível de ruído e distorção desprezável [23].

A seguir podemos verificar algumas das características mais importantes do

CS5340.

Tabela 1 - Características do CS5340

Alimentação 3.3V a 5V

Protocolo de comunicação I2S/LJ

Frequência de amostragem Até 200kHz

Resolução 24 bits

Consumo 10mA

Page 48: Artur Diogo Rodrigues Anjo Processador de efeitos digitalintranet.dei.uminho.pt/gdmi/galeria/temas/pdf/50822.pdf · processador de efeitos em FPGA para guitarra elétrica. Esta abordagem,

32

Figura 27 - Diagrama dos componentes internos do ADC

Visto que, o CS5340 possui valores de frequência de amostragem até 200kHz e

elevada resolução é perfeitamente adequado para o sistema referido, pois seria

necessário no mínimo valores próximos dos 150kHz. Outras das vantagens deste

componente são os valores comuns de alimentação como 3.3V e 5V, utiliza como

protocolo de comunicação a tecnologia I2S [24] e Left-Justified, normalmente utilizados

em aplicações de áudio. Este também componente detém geração automática dos

barramentos de clock necessários ao seu funcionamento apenas com a deteção do master

clock. A facilidade de adquirir este hardware também foi um fator importante na sua

escolha.

No diagrama da figura 27, podemos ter uma visão geral dos componentes

internos do ADC, de maneira a verificar o seu funcionamento. Como já foi referido

anteriormente, este é um conversor stereo, possui dois canais de entrada e filtros passa-

alto e de baixa latência de maneira a reduzir possíveis ruídos. Este componente detém

tensões analógica, digital e lógica, bem como, o já mencionado, mecanismo de deteção

do master clock que gera os restantes sinais de clock necessários ao seu funcionamento

(Slave clock e Left-Right clock).

Page 49: Artur Diogo Rodrigues Anjo Processador de efeitos digitalintranet.dei.uminho.pt/gdmi/galeria/temas/pdf/50822.pdf · processador de efeitos em FPGA para guitarra elétrica. Esta abordagem,

33

3.3.2. Sistema de conversão e reprodução do

sinal

Figura 28- DAC CS4335

No que diz respeito ao sistema de conversão e reprodução do sinal, foi preciso

escolher um DAC, focado nos fatores já mencionados anteriormente.

O integrado escolhido foi o CS4335, também da CIRRUS LOGIC [22], este é um

conversor digital/analógico da família CS4334 (CS4335/8/9), a única diferença entre

estes componentes é o formato de como os dados são processados, no caso do CS4335,

o protocolo de comunicação suportado é o Left-Justified. Este protocolo é bastante

semelhante ao da tecnologia I2S, apenas difere no formato dos dados a processar, e será

especificado mais à frente. O CS4335 também detém valores de frequência de

amostragem de 2kHz até aproximadamente 100kHz [25] .

Figura 29 - Diagrama dos componentes internos do DAC

Page 50: Artur Diogo Rodrigues Anjo Processador de efeitos digitalintranet.dei.uminho.pt/gdmi/galeria/temas/pdf/50822.pdf · processador de efeitos em FPGA para guitarra elétrica. Esta abordagem,

34

No diagrama da figura 29, podemos obter uma visão geral do funcionamento interno

do conversor digital analógico CS4334.

O CS4335 é um conversor stereo, ou seja, possui dois canais de saída. Este

componente é baseado na modulação Delta-Sigma e utiliza um filtro passa baixo de

maneira a reduzir possíveis ruídos, em cada um dos canais. Este dispositivo é bastante

adequado ao sistema em questão, pois é possível obter frequências de amostragem

dentro da gama pretendida e semelhantes ao do ADC utilizado no sistema de aquisição

do sinal, bem como alta resolução. A tensão de alimentação deste componente é de 5V.

A facilidade de aquisição e custo nulo, do DAC em questão, também foi um fator

importante na sua escolha. A escolha recaiu neste componente pois foi também mais

rápido adquiri-lo do que outros dispositivos da mesma família como CS4334.

Na tabela 2, podemos observar algumas das principais características do DAC,

CS43345.

Tabela 2 - Características do CS4335

Alimentação 5V

Protocolo de comunicação Left-Justified

Frequência de amostragem 2kHz a 200kHz

Resolução 24 bits

Consumo 10mA

Page 51: Artur Diogo Rodrigues Anjo Processador de efeitos digitalintranet.dei.uminho.pt/gdmi/galeria/temas/pdf/50822.pdf · processador de efeitos em FPGA para guitarra elétrica. Esta abordagem,

35

3.3.3. Sistema de processamento e controlo

Figura 30 - Xilinx UPV5LX110T

A parte central deste projeto não podia deixar de ser o sistema de processamento e

controlo. É neste subsistema que o sinal proveniente da guitarra, depois de convertido

pelo ADC, é processado e enviado para o DAC. Este sistema foi responsável pela

implementação dos efeitos, bem como pelo controlo dos mesmos. A escolha dos efeitos

foi efetuada pelo utilizador através de uma aplicação user friendly que será abordada

mais à frente.

Como já foi referido anteriormente, foi utilizado um FPGA como unidade de

processamento deste sistema. Para isso, foi necessário escolher a plataforma a utilizar

com base na disponibilidade.

Definida a necessidade de utilizar FPGA neste projeto, passou-se então a escolha

da plataforma mais indicada a ser utilizada. O sistema não é de extrema complexidade,

o que não exige grandes preocupações no que diz respeito ao número de logic elements

do FPGA, o que já facilita bastante o processo de escolha do mesmo.

Como plataforma de desenvolvimento a utilizar no sistema de processamento e

controlo do sinal, foi então escolhida um plataforma da Xilinx [9], denominada XUPV5-

LX110T, como podemos observar na figura 30. Esta placa possui bastantes periféricos

Page 52: Artur Diogo Rodrigues Anjo Processador de efeitos digitalintranet.dei.uminho.pt/gdmi/galeria/temas/pdf/50822.pdf · processador de efeitos em FPGA para guitarra elétrica. Esta abordagem,

36

que poderão ajudar na implementação e verificação do sistema e é composta por um

FPGA da família virtex 5, mais concretamente, XC5VLX110T [26]

Esta placa de desenvolvimento é composta por outras características e

periféricos. Algumas das características são:

Duas Flash PROMS (32Mbyte cada);

256Mbyte DDR2;

USB host;

Codec stereo AC97 com SPDIF áudio jacks;

Porta RS-232;

LCD 16x2;

LEDs de propósito geral;

Botões cada com LED correspondente;

Encoder rotativo;

Oito DIP Switches;

JTAG;

Cartão de memória flash de 1GB;

Módulo SODIMM de 256MB.

Page 53: Artur Diogo Rodrigues Anjo Processador de efeitos digitalintranet.dei.uminho.pt/gdmi/galeria/temas/pdf/50822.pdf · processador de efeitos em FPGA para guitarra elétrica. Esta abordagem,

37

Capitulo 4

Desenvolvimento do sistema

4.1. Hardware

Após a escolha cuidada do hardware indispensável para o bom funcionamento de

todo o sistema foi então fundamental passar à fase de desenvolvimento e integração do

mesmo.

Como as placas de desenvolvimento ou kits existentes no mercado associados ao

hardware escolhido são de preço elevado, optou-se pelo desenvolvimento das placas de

circuito impresso, com base nos circuitos recomendados pelo próprio fabricante do

respetivo hardware ou através dos esquemáticos fornecidos pelas placas de

desenvolvimento existentes no mercado.

Procedeu-se então à criação de duas PCBs para o sistema de aquisição do sinal

(ADC) e para o sistema de conversão e reprodução do sinal (DAC).

4.1.1. ADC

O desenvolvimento da PCB para o ADC teve como base o circuito recomendado

do datasheet do CS5340 [23] bem como o esquemático da Evaluation Board existente

no mercado fornecido pela cirrus logic, CDB5340 [27].

Na criação desta PCB houve a necessidade de ter alguns cuidados, como por

exemplo, a utilização de condensadores de acoplamento o mais próximos possível do

integrado, e de preferência que o condensador com valor mais pequeno seja o que fique

mais próximo do ADC. Os pinos de tensão VA e VL não devem ser alimentados pelo

mesmo ponto de alimentação e todos os sinais devem ficar afastados dos pinos de

FILT+ e VQ, principalmente os sinais de clock gerados pelo hardware, de maneira a

evitar acoplamentos indesejados nos moduladores. E todos os pinos de massa devem

estar conectados à mesma referência de massa. Estes são alguns dos cuidados a ter na

criação desta PCB bem como a utilização de uma resistência de pull-up de 10kΩ nos

Page 54: Artur Diogo Rodrigues Anjo Processador de efeitos digitalintranet.dei.uminho.pt/gdmi/galeria/temas/pdf/50822.pdf · processador de efeitos em FPGA para guitarra elétrica. Esta abordagem,

38

Tabela 3 - Modos de operação do ADC

terminais de VL, para que seja selecionado o protocolo de comunicação I2S. Outro

aspeto a ter em conta é a seleção do modo de controlo do ADC, em que se pode tirar

vantagem da já referida deteção automática do master clock. Este ADC pode funcionar

como clock master ou clock slave. Em modo clock master, o integrado gera

automaticamente os restantes sinais de relógio, LRCK (Left-right clock) e SCK (slave

clock), ou seja, passam a ser outputs. Enquanto, no modo clock slave, todos os clocks

são inputs, gerados externamente. Na tabela 3, é possível verificar os modos de

controlo, para diferentes valores de M0 (pino1) e M1 (pino 16).

Page 55: Artur Diogo Rodrigues Anjo Processador de efeitos digitalintranet.dei.uminho.pt/gdmi/galeria/temas/pdf/50822.pdf · processador de efeitos em FPGA para guitarra elétrica. Esta abordagem,

39

Esquemático do ADC

Figura 31 - Esquemático do ADC CS5340

Posto isto, após todos os cuidados a ter na criação da PCB do ADC CS5340, foi

possível avançar para a criação do esquemático. Para isso, foi utlizada a ferramenta

eagle [28].

Page 56: Artur Diogo Rodrigues Anjo Processador de efeitos digitalintranet.dei.uminho.pt/gdmi/galeria/temas/pdf/50822.pdf · processador de efeitos em FPGA para guitarra elétrica. Esta abordagem,

40

ADC Board

Figura 32 - Resultado do layout da PCB do ADC

Depois de finalizado o esquemático do ADC, passou-se ao desenho da PCB. Na

figura 32, podemos visualizar o desenho final.

Page 57: Artur Diogo Rodrigues Anjo Processador de efeitos digitalintranet.dei.uminho.pt/gdmi/galeria/temas/pdf/50822.pdf · processador de efeitos em FPGA para guitarra elétrica. Esta abordagem,

41

Resultado PCB do ADC

Figura 33 - Resultado da primeira versão da PCB do ADC

Figura 34 - Resultado da versão final da PCB do ADC

Page 58: Artur Diogo Rodrigues Anjo Processador de efeitos digitalintranet.dei.uminho.pt/gdmi/galeria/temas/pdf/50822.pdf · processador de efeitos em FPGA para guitarra elétrica. Esta abordagem,

42

O resultado da primeira versão da PCB do ADC podemos observar na figura 33.

Esta primeira versão ainda continha componentes de packages diferentes daqueles que

seriam os pretendidos e que seriam corrigidos na versão final. Esta placa foi utilizada

em vários testes no entanto, devido a possíveis problemas de conectividade, degradação

da placa e também por estética optou-se pela realização de outra versão, que passaria a

ser a versão final, a qual podemos observar na figura 34.

4.1.2. DAC

No que diz respeito à placa do ADC, esta também foi desenvolvida baseada no

circuito recomendado presente no datasheet do hardware em questão, CS4335 [25],

fornecido igualmente pela CIRRUS LOGIC.

Tal como para o ADC, foram necessários alguns cuidados a ter em conta no

desenvolvimento da PCB do CS4335. No entanto, neste caso, trata-se de uma

implementação menos minuciosa. Como precauções foi então essencial utilizar os

condensadores de desacoplamento o mais próximo possível do integrado com o

condensador com menor capacidade a ser o mais próximo dos dois. Será também

necessário alimentar o hardware com um sinal de tensão limpa de 5V.

Page 59: Artur Diogo Rodrigues Anjo Processador de efeitos digitalintranet.dei.uminho.pt/gdmi/galeria/temas/pdf/50822.pdf · processador de efeitos em FPGA para guitarra elétrica. Esta abordagem,

43

Esquemático do DAC

Figura 35 - Esquemático do DAC CS4335

Posto isto, procedeu-se ao desenvolvimento do esquemático para PCB do

CS4335, como podemos observar na figura 35. Na figura 36, é possível visualizar o

resultado do desenho da PCB.

DAC Board

Figura 36 - Resultado do layout da PCB do DAC

Page 60: Artur Diogo Rodrigues Anjo Processador de efeitos digitalintranet.dei.uminho.pt/gdmi/galeria/temas/pdf/50822.pdf · processador de efeitos em FPGA para guitarra elétrica. Esta abordagem,

44

Resultado PCB DAC

Figura 37 - Resultado da primeira versão da PCB do DAC

Figura 38 - Resultado final da PCB do DAC

Tal como para a PCB do ADC, foi feita uma primeira versão, presente na figura 37.

Pelas mesmas razões foi criada uma versão final da referida placa sem erros como os

presentes na primeira versão. Na figura 38, podemos observar o resultado da versão

final da PCB desenvolvida para o DAC, CS4335.

Page 61: Artur Diogo Rodrigues Anjo Processador de efeitos digitalintranet.dei.uminho.pt/gdmi/galeria/temas/pdf/50822.pdf · processador de efeitos em FPGA para guitarra elétrica. Esta abordagem,

45

4.1.3. Aspeto final do hardware do

sistema

Figura 39 - Resultado final do sistema

Depois de as PCBs do sistema de aquisição do sinal (ADC) e do sistema de

conversão e reprodução do sinal (DAC) estarem finalizadas procedeu-se à integração

com os restantes elementos do sistema. Na figura 39, podemos observar o sistema quase

completo faltando apenas a guitarra como sinal de entrada.

Page 62: Artur Diogo Rodrigues Anjo Processador de efeitos digitalintranet.dei.uminho.pt/gdmi/galeria/temas/pdf/50822.pdf · processador de efeitos em FPGA para guitarra elétrica. Esta abordagem,

46

4.2. Implementação em FPGA

Como já foi referido, o FPGA foi o componente responsável por todo o

processamento do sinal e controlo do sistema. A placa de desenvolvimento utilizada foi

a XUPV5-LX110T, já mencionada anteriormente, da família da virtex 5 da Xilinx.

Como linguagem descritiva de hardware foi usada a linguagem Verilog e como

software de desenvolvimento o Xilinx ISE Design suite também este da Xilinx. A

implementação deste sistema foi desenvolvido em paralelo com os hardware, de

maneira a facilitar a sua integração.

4.2.1. Módulo ADC

Para o módulo ADC, foi necessário implementar o protocolo I2S (Inter-IC

Sound). Pois, como já foi referido anteriormente, o ADC CS5340 utiliza como

protocolo de comunicação esta tecnologia. Este protocolo foi desenvolvido pela NXP

semiconductors tornando-o apropriado para ser utilizado em aplicações de áudio. O

protococo I2S é semelhante ao protocolo I2C, normalmente mais conhecido e mais

utilizado. A grande diferença é que o barramento de comunicação do I2S possui três

linhas ao invés de 2 como o I2C. E são elas as seguintes:

Serial Clock (SCLK) – Linha que define a frequência da transmissão dos

dados;

Left-Right Clock (LRCK) – Linha que seleciona o canal;

Serial Data (SDATA) – Linha de transmissão de dados.

O protocolo estabelece uma multiplexação temporal (TDM) entre dois canais,

esquerda e direita, que são transmitidos pela linha SDATA. O LRCK estabelece esta

mesma multiplexação, escolhendo o canal pelo qual os dados são transmitidos.

Uma vez que neste tipo de protocolo o tamanho da palavra e a velocidade de

transmissão são variáveis, o dispositivo master está encarregue de controlar estes dois

fatores através das linhas SCLK e o LRCK. Estes sinais de relógico são enviados

sempre pelo o dispositivo master.

Page 63: Artur Diogo Rodrigues Anjo Processador de efeitos digitalintranet.dei.uminho.pt/gdmi/galeria/temas/pdf/50822.pdf · processador de efeitos em FPGA para guitarra elétrica. Esta abordagem,

47

Figura 40 - Configurações do protocolo I2S

Na figura 40, é possível observar dois tipos de configuração do protocolo I2S.

No primeiro caso o dispositivo master funciona como transmissor, no segundo caso

funciona como recetor.

Figura 41 - Configuração I2S com controlador

O protocolo I2S também permite outro tipo configuração diferente dos dois

anteriores. Nesta abordagem existe um terceiro dispositivo adicional que tem como

responsabilidade controlar as linhas SCLK e LRCK.

Page 64: Artur Diogo Rodrigues Anjo Processador de efeitos digitalintranet.dei.uminho.pt/gdmi/galeria/temas/pdf/50822.pdf · processador de efeitos em FPGA para guitarra elétrica. Esta abordagem,

48

Figura 42 - Diagrama temporal do protocolo I2S

É de sublinhar que devido à palavra poder variar em extensão é enviado

inicialmente o bit mais significativo (MSB), que normalmente é enviado um ciclo após

a transição do sinal LRCK, enviando depois os restantes até ao menos significativo. Ou

seja, isto permite que por exemplo um dispositivo master de 16 bits envie dados para

um dispositivo slave de 8 bits ou vice-versa sem que o valor mais significativo seja

perdido independentemente do tamanho da palavra. Na figura 42, podemos observar o

diagrama temporal que demonstra o formato mencionado. É possível verificar que a

transição do sinal LRCK acontece na transição negativa do sinal SCLK. E que o MSB é

atrasado um ciclo após transição do LRCK como referido.

Nos dispositivos que usam este protocolo aparece frequentemente um quarto

sinal acrescentado ao barramento: o master clock (MCLK). Este sinal é usado para

permitir a sincronização do dispositivo slave com o master. O período do sinal LRCK

tem que manter uma relação com o período do MCLK, de maneira a garantir a

sincronização. Essa relação terá de ser de 64, 128, 256 ou 512 para 1.

Este protocolo foi implementado para a comunicação com o ADC (CS5340), daí

que houve a necessidade de implementar o módulo master funcionando como recetor.

O valor da frequência de amostragem do sistema, que é igual ao sinal LRCK, foi

definido em 130kHz. Chegou-se a este valor porque devido às divisões que foram feitas

para os sinais de clock necessários, tanto para o funcionamento do módulo ADC como

para o módulo DAC, este será explicado mais à frente, foi o valor mais conveniente e

Page 65: Artur Diogo Rodrigues Anjo Processador de efeitos digitalintranet.dei.uminho.pt/gdmi/galeria/temas/pdf/50822.pdf · processador de efeitos em FPGA para guitarra elétrica. Esta abordagem,

49

Figura 43 - Configuração da PLL para o sinal MCLK do ADC

mais fácil de gerar para os dois sistemas. E, como este valor está dentro da gama de

valores de frequência de amostragem exigidas e definidas anteriormente, 130kHz é um

valor aceitável para o bom funcionamento de todo o sistema.

Procedeu-se então, para a geração dos sinais de relógio essenciais para o seu

funcionamento. No entanto, como já foi referido anteriormente, o ADC escolhido

possui o mecanismo de deteção automática do MCLK, gerando por si os restantes

clocks, LRCK e SCLK. Portanto, apenas foi necessário gerar o MCLK para este

módulo.

Posto isto, de maneira a respeitar a relação MCLK/LRCK = 64, e como LRCK

já foi definido em 130kHz, será necessário obter um sinal MCLK com uma frequência

de aproximadamente 8,333MHz.

Para isso, foi utilizada uma PLL (Phase Locked Loop) [29]. Uma PLL é utilizada

para gerar vários sinais de relógio, definindo parâmetros como fase e frequência, a partir

de um sinal de relógio de entrada. Isto permite que se possa utilizar o sinal de clock

interno da FPGA e dividi-lo em sinais de relógio com frequência menores ou então

multiplicando-o de maneira a atingir valores de frequência superiores ao do sinal do

clock interno. O uso de PLL também permite que haja vantagem na sincronização dos

sinais em relação à divisão directa do clock interno. Perante isto, e como nesta

abordagem foi possível obter o valor exato pretendido, o sinal de MCLK foi então

gerado a partir de uma PLL. Através do assistente da Xilinx para gerar a PLL, podemos

definir os parâmetros pretendidos, como podemos observar na figura 43. O sinal de

clock de entrada utilizado foi o de 100MHz existente na placa de desenvolvimento

utilizada, e dividindo esse mesmo sinal por 120 foi possível obter como sinal de saída

da PLL 8,333MHz como desejado.

Page 66: Artur Diogo Rodrigues Anjo Processador de efeitos digitalintranet.dei.uminho.pt/gdmi/galeria/temas/pdf/50822.pdf · processador de efeitos em FPGA para guitarra elétrica. Esta abordagem,

50

Depois de definidos os parâmetros foi necessário por fim instanciar o módulo da

PLL gerada para o sinal MCLK, como podemos observar no excerto da figura 44.

Após o sinal MCLK ter sido gerado, os sinais LRCK e SCLK são gerados

automaticamente como já foi dito. Sendo o sinal LRCK de 130kHz, é possível também

verificar o sinal SCLK, tal como se fosse gerado manualmente. Como é necessário

transmitir 24 bits em cada semiciclo do LRCK, teve-se de chegar a um valor de 6.2MHz

seguindo a seguinte formula:

Tratada a geração dos sinais de relógio necessários ao funcionamento do ADC,

procedeu-se para a implementação do envio dos dados sincronizados. Repare-se que

sempre que for detetada uma transição ascendente do sinal LRCK os dados são

envidados pelo canal direito, caso contrário se for detetada uma transição descendente

do sinal LRCK os dados são enviados pelo canal esquerdo. Sempre que acontece esta

transição os dados são processados na transição negativa do sinal SCLK como

pretendido. No excerto de código figura 45, pode-se verificar a implementação desta

abordagem.

// MCLK ADC 8.333MHz

pll_Mclk_adc MCLK_ADC (

.CLKIN1_IN(clk_50),

.RST_IN(~rst),

.CLKOUT0_OUT(Mclk_adc),

.LOCKED_OUT()

);

Figura 44 - Instanciação do sinal MCLK do

ADC

Page 67: Artur Diogo Rodrigues Anjo Processador de efeitos digitalintranet.dei.uminho.pt/gdmi/galeria/temas/pdf/50822.pdf · processador de efeitos em FPGA para guitarra elétrica. Esta abordagem,

51

4.2.2. Módulo DAC

Para este módulo também foi necessário implementar o respetivo protocolo de

comunicação como foi feito para o ADC, no entanto num formato um pouco diferente,

o Left-Justified. A única diferença neste formato comparativamente com o utilizado para

o ADC, é que o Left-Justified, embora envie igualmente no início o bit mais

significativo (MSB) da palavra, este não é enviado um ciclo após a transição do sinal

LRCK, mas sim no instante em que acontece a transição deste.

always @(negedge SCK_adc)

begin

if (old_LRCK_adc && ~LRCK_adc)

begin

i <= 24;

end

else if ( ~old_LRCK_adc && LRCK_adc )

begin

i <= 24;

end

else if(i > 0)

begin

i <= i - 1;

end

end

always @(posedge SCK_adc)

begin

if(~rst)

begin

old_LRCK_adc <= 0;

data_out_adc <= 0;

end

else

begin

old_LRCK_adc <= LRCK_adc;

if (old_LRCK_adc && ~LRCK_adc)

begin

right_d_adc <= data_out_adc;

end

else if ( ~old_LRCK_adc && LRCK_adc )

begin

left_d_adc <= data_out_adc;

end

else if(i > 0 && i!=24)

data_out_adc[i] <= Sdata_adc;

else data_out_adc[0] <= Sdata_adc;

end

end

Figura 45 - Implementação do envio dos dados do ADC

Page 68: Artur Diogo Rodrigues Anjo Processador de efeitos digitalintranet.dei.uminho.pt/gdmi/galeria/temas/pdf/50822.pdf · processador de efeitos em FPGA para guitarra elétrica. Esta abordagem,

52

Figura 46 - Diagrama temporal do protocolo Left-Justified

Na figura 46, podemos verificar o comportamento na transmissão dos dados do

formato Left-Justified.

Tal como para o ADC, os dispositivos que utilizam este protocolo possuem as

linhas de sinal LRCK, SCLK e SDATA, bem como o sinal MCLK que controla a

sincronização do dispositivo slave com o master.

Este protocolo foi usado para comunicar com o DAC (CS4335) e, ao contrário

do que sucede com o ADC, foi implementado o módulo master funcionando como

transmissor. Na geração dos sinais para o ADC, este possuía um mecanismo de geração

automática, o que não acontece neste dispositivo. Daí que os sinais LRCK, SCLK e

MCLK serão gerados manualmente, ou seja, são tratados como sinais de entrada.

Como já foi referido anteriormente, a frequência de amostragem do sistema é de

130kHz, tornado assim necessário o sinal de LRCK obter esse mesmo valor. Este sinal

tem de manter uma relação com MCLK de modo a garantir a sincronização. Para isso,

foi fundamental seguir a relação presente na seguinte expressão:

Seguindo então a relação de MCLK com LRCK igual a 192, e visto que LRCK é

de 130kHz facilmente chegamos ao valor do sinal MCLK de aproximadamente 25MHz.

Para isso, foi utlizado um dos sinais de clock internos do FPGA neste caso de

100MHz, este foi dividido manualmente através de um ciclo até atingir o valor

pretendido de 25MHz.

Page 69: Artur Diogo Rodrigues Anjo Processador de efeitos digitalintranet.dei.uminho.pt/gdmi/galeria/temas/pdf/50822.pdf · processador de efeitos em FPGA para guitarra elétrica. Esta abordagem,

53

Relativamente ao sinal de LRCK, este já foi referido que teria de possuir um

valor de 130kHz. Este foi gerado através da mesma abordagem na geração do MCLK,

como se pode verificar no excerto de código da figura 48.

always@(posedge clk_mclk)

begin

if(~rst)

begin

MCLK_ger <= 0;

count <= 24'd0;

end

else

begin

if (count == 0)

begin

MCLK_ger <= ~MCLK_ger;

count <= 24'd1;

end

else

begin

count <= count - 24'd1;

end

end

end

always@(posedge clk_lrck)

begin

if(~rst)

begin

LRCK_ger <= 0;

count <= 24'd0;

end

else

begin

if (count == 0)

begin

LRCK_ger <= ~LRCK_ger;

count <= 24'd383;

end

else

begin

count <= count - 24'd1;

end

end

end

Figura 48 - Geração do sinal LRCK do DAC

Figura 47 - Geração do sinal MCLK do DAC

Page 70: Artur Diogo Rodrigues Anjo Processador de efeitos digitalintranet.dei.uminho.pt/gdmi/galeria/temas/pdf/50822.pdf · processador de efeitos em FPGA para guitarra elétrica. Esta abordagem,

54

Por fim, foi gerado o sinal de SCLK. Sabendo que seria necessário transmitir 24

bits em cada semiciclo do sinal de LRCK. O sinal de SCLK foi gerado com base na

seguinte expressão:

A implementação do terceiro sinal de relógio do DAC pode ser verificada no

excerto de código da figura 49.

Gerados todos os sinais essenciais ao bom funcionamento do DAC escolhido,

procedeu-se à implementação do modo de transmissão dos dados. Como foi

mencionado, o cuidado a ter em conta neste caso, foi o formato do protocolo, Left-

Justified.

Os dados são transmitidos a cada transição negativa do sinal de SCLK logo após

qualquer transição do sinal LRCK, enviando-os pelo canal direito, caso seja detetada

uma transição positiva do sinal LRCK, ou pelo canal esquerdo caso seja detetada uma

transição negativa deste. No exemplo do excerto de código da figura 50, o q é enviado

diretamente para o DAC são os dados provenientes do ADC, pois ainda não foi

implementado qualquer efeito.

always@(posedge clk_sclk)

begin

if(~rst)

begin

SCLK_ger <= 1;

count <= 24'd0;

rst_out <= 0;

end

else

begin

if (count == 0)

begin

SCLK_ger <= ~SCLK_ger;

count <= 24'd7;

end

else

begin

count <= count - 24'd1;

rst_out <= 1;

end

end

end

Figura 49 - Geração do sinal SCLK do DAC

Page 71: Artur Diogo Rodrigues Anjo Processador de efeitos digitalintranet.dei.uminho.pt/gdmi/galeria/temas/pdf/50822.pdf · processador de efeitos em FPGA para guitarra elétrica. Esta abordagem,

55

4.2.3. Implementação dos Efeitos

Depois de tratados os módulos ADC e DAC com a implementação do respetivo

protocolo de comunicação e de testado o funcionamento do sistema procedeu-se então

para a implementação dos efeitos. Para isso, foi necessário ter como base os algoritmos

de alguns dos efeitos estudados anteriormente.

always @(negedge SCK_dac)

begin

if(~rst_sck)

begin

y <= 22;

end

else

begin

old_LRCK_dac <= LRCK_dac;

if (old_LRCK_dac && ~LRCK_dac)

begin

data_in_dac <= out_dist;

y <= 22;

Sdata_dac <= out_dist[23];

end

else if ( ~old_LRCK_dac && LRCK_dac )

begin

data_in_dac <= out_dist;

y <= 22;

Sdata_dac <= out_dist[23];

end

else if(y >= 0)

begin

y <= y - 1;

Sdata_dac <= out_dist[y];

end

end

end

Figura 50 - Implementação do envio dos dados do DAC

Page 72: Artur Diogo Rodrigues Anjo Processador de efeitos digitalintranet.dei.uminho.pt/gdmi/galeria/temas/pdf/50822.pdf · processador de efeitos em FPGA para guitarra elétrica. Esta abordagem,

56

Delay

Figura 51 - Algoritmo do efeito delay

O primeiro efeito a ser implementado foi o efeito delay. Para isso, teve-se como

base um dos algoritmos estudados, como o representado na figura 51.

De uma maneira sucinta, é possível dizer que o efeito delay consiste na soma do

seu sinal original mais o próprio sinal com um atraso. Foi neste sentido que se tentou

implementar este efeito usando as potencialidades da linguagem de hardware verilog.

De maneira a adicionar o sinal com atraso foi gerada uma memória single port

Ram através do block memory generator da Xilinx.

Figura 52 - Block memory generator da Xilinx

Page 73: Artur Diogo Rodrigues Anjo Processador de efeitos digitalintranet.dei.uminho.pt/gdmi/galeria/temas/pdf/50822.pdf · processador de efeitos em FPGA para guitarra elétrica. Esta abordagem,

57

Figura 53 - Definição de parâmetros do block memory generator

Esta memória possui sinais de entrada como sinal de clock, reset, write enable,

entrada de dados e endereço. Possui também o sinal de saída de dados da memória,

entre outros sinais mas que para o caso não foram utilizados.

Definidas as entradas e saídas da memória foi essencial definir alguns

parâmetros desta, como podemos observar na figura 53.

O parâmetro Width foi definido com valor 24 pois este é o tamanho da palavra

utilizada no sistema em bits. Como Depth este tomou o valor de 64000 pois este será o

valor máximo de comparação que será explicado a seguir. Foi também definido que

seria feita a operação de leitura primeiro e só depois a escrita na memória. Após

definidos os parâmetros foi necessário instanciar o módulo.

singleport SinglePortRam_Delay (

.clka(clk), // input clka

.rsta(~rst), // input rsta

.wea(1'b1 && rst), // input [0 : 0] wea

.addra(rst_count), // input [16 : 0] addra

.dina(ADCout), // input [23 : 0] dina

.douta(DelayOut_wire) // output [23 : 0] douta

);

Figura 54 - Instanciação da single port Ram do efeito delay

Page 74: Artur Diogo Rodrigues Anjo Processador de efeitos digitalintranet.dei.uminho.pt/gdmi/galeria/temas/pdf/50822.pdf · processador de efeitos em FPGA para guitarra elétrica. Esta abordagem,

58

Figura 55 - Exemplificação do tratamento dos dados para o efeito delay

Como sinal de entrada dos dados, ‘dina’, este toma os valores provenientes da

aquisição do sinal efetuada pelo ADC. O sinal ‘addra’ fica com o valor do contador

utilizado num ciclo de maneira a que o sinal de saída, ‘douta’, seja um valor desfasado

do valor inicial proveniente do ADC, ou seja, com atraso. Este sinal de saída da

memória foi depois adicionado ao sinal de saída do ADC.

Na figura 55, podemos verificar este comportamento. Em que se por exemplo o

endereço da memória estiver na posição do valor 19 (exemplo de um valor proveniente

do ADC), este valor estará ainda a ser lido pela memória. Enquanto o endereço do valor

18 já estará a ser escrito passando a ser este o valor de saída da memória. Isto é

processado sucessivamente pois o endereço é sempre incrementado por um contador. O

sinal final é então composto pelo valor atual do ADC mais o valor de saída da memória

que é diferente do atual, adicionando assim um atraso.

No excerto de código da figura 56, podemos verificar a implementação do

contador mencionado referente ao endereço da memória.

Page 75: Artur Diogo Rodrigues Anjo Processador de efeitos digitalintranet.dei.uminho.pt/gdmi/galeria/temas/pdf/50822.pdf · processador de efeitos em FPGA para guitarra elétrica. Esta abordagem,

59

O valor utilizado no contador corresponde a um valor de atraso de

aproximadamente 300 ms. Como a frequência de amostragem do sistema é de 130kHz,

este valor é facilmente calculado através da seguinte expressão:

Com esta implementação obteve-se bons resultados quer analisando o sinal quer

sonoramente. No entanto, foi implementado outro módulo bastante semelhante em que

foram geradas três memórias em vez de uma. As duas memórias adicionais possuem

parâmetros iguais à inicialmente utilizada e dois respetivos contadores para alterar o

endereço da memória. Os valores dos contadores de maneira a alterar os endereços são

diferentes para as três memórias mas no máximo de 64000 como definido.

always @(posedge clk)

begin

if(~rst)

begin

delay_const <= 17'd40000;

rst_count <= 17'd0;

end

else

begin

if (rst_count == delay_const)

begin

rst_count <= 17'd0;

end

else

begin

rst_count <= rst_count + 17'd1;

end

end

end

Figura 56 - Implementação do contador para o efeito delay

Page 76: Artur Diogo Rodrigues Anjo Processador de efeitos digitalintranet.dei.uminho.pt/gdmi/galeria/temas/pdf/50822.pdf · processador de efeitos em FPGA para guitarra elétrica. Esta abordagem,

60

always @(posedge clk)

begin

if(~rst)

begin

delay_const <= 17'd32000;

rst_count <= 17'd0;

end

else

begin

if (rst_count == delay_const)

begin

rst_count <= 17'd0;

end

else

begin

rst_count <= rst_count + 17'd1;

end

end

end

Foram então utilizados três contadores diferentes. Na figura 57, podemos

observar o excerto de código correspondente a um dos contadores utilizados, este com

valor até 32000. Os outros foram implementados de maneira idêntica mas com valores

diferentes, um com valor de 48000 e outro com 64000. Estes valores possibilitaram

adicionar valores de atraso diferentes o que resultou numa abordagem mais agradável

sonoramente. Foram então obtidos valores de atraso apresentados nas seguintes

expressões:

Figura 57 - Implementação do contador de uma segunda abordagem para o efeito

delay

Page 77: Artur Diogo Rodrigues Anjo Processador de efeitos digitalintranet.dei.uminho.pt/gdmi/galeria/temas/pdf/50822.pdf · processador de efeitos em FPGA para guitarra elétrica. Esta abordagem,

61

Echo

Figura 58 – True dual port Ram para o efeito Echo

Outro dos efeitos implementados nesta dissertação foi o efeito Echo. Este é

bastante semelhante ao efeito delay já demonstrado. A grande diferença consiste no

tempo de atraso imposto neste efeito.

Em termos concretos de implementação também houve uma diferença pois ao

invés de ter sido utilizada uma single port Ram foi utilizada desta vez uma true dual

port Ram como pode-se observar na figura 58.

Relativamente a este tipo de memória, esta é praticamente igual à single port

Ram utilizada no efeito anterior, pois possui as mesmas entradas e saídas.

Page 78: Artur Diogo Rodrigues Anjo Processador de efeitos digitalintranet.dei.uminho.pt/gdmi/galeria/temas/pdf/50822.pdf · processador de efeitos em FPGA para guitarra elétrica. Esta abordagem,

62

Figura 59 - Definição dos parâmetros do block memory generator para o efeito Echo

Como para o efeito delay o tamanho da palavra a utilizar foi de 24 bits, no

entanto para este caso a capacidade máxima da memória utilizada foi de 128k. Como

podemos verificar na figura 59.

Definidos os parâmetros foi essencial instanciar o módulo em questão como

pode-se visualizar no excerto de código da figura 60.

dualRam2 DualRam_Echo (

.clka(clk), // input clka

.rsta(~rst), // input rsta

.wea(1'b1 && rst), // input [0 : 0] wea

.addra(rst_count), // input [16 : 0] addra

.dina(ADCout), // input [23 : 0] dina

.douta(VibratoOut_wire), // output [23 : 0] douta

.clkb(clk), // input clkb

.rstb(~rst), // input rstb

.web(1'b1 && rst), // input [0 : 0] web

.addrb(rst_countb), // input [16 : 0] addrb

.dinb(ADCout), // input [23 : 0] dinb

.doutb(VibratoOut_wireb) // output [23 : 0] doutb

);

Figura 60 - Instanciação da dual port Ram para o efeito Echo

Page 79: Artur Diogo Rodrigues Anjo Processador de efeitos digitalintranet.dei.uminho.pt/gdmi/galeria/temas/pdf/50822.pdf · processador de efeitos em FPGA para guitarra elétrica. Esta abordagem,

63

Foram utilizados 2 contadores para este módulo um de 128k outro de 64k, como

podemos verificar nos excertos de código das figura 61 e 62.

Posto isto, esta abordagem permitiu atingir valores de atraso para o efeito Echo

presentes nas seguintes expressões:

begin

if(~rst)

begin

delay_const <= 17'd128000;

rst_count <= 17'd0;

end

else

begin

if (rst_count == delay_const)

begin

rst_count <= 17'd0;

end

else

begin

rst_count <= rst_count + 17'd1;

end

end

end

always @(posedge clk)

begin

if(~rst)

begin

delay_constb <= 17'd64000;

rst_countb <= 17'd0;

end

else

begin

if (rst_countb == delay_constb)

begin

rst_countb <= 17'd0;

end

else

begin

rst_countb <= rst_countb + 15'd1;

end

end

end

Figura 62 - Implementação do contador de 128k para o efeito Echo

Figura 61 - Implementação do contador de 64k para o efeito Echo

Page 80: Artur Diogo Rodrigues Anjo Processador de efeitos digitalintranet.dei.uminho.pt/gdmi/galeria/temas/pdf/50822.pdf · processador de efeitos em FPGA para guitarra elétrica. Esta abordagem,

64

Distorção

Figura 63 - Processo clipping

Implementados os efeitos delay e Echo procedeu-se então à implementação de um

dos mais conhecidos e preferidos efeitos pelos guitarristas amadores e profissionais, o

efeito distorção. Sendo este efeito bastante apreciado existem consequentemente tipos

de distorção diferentes de maneira a tentar satisfazer todos os gostos.

No que diz respeito à implementação do efeito distorção o objetivo consiste na

compressão dos picos da onda do sinal original e adicionar harmônicos, como já foi

referido anteriormente. Este processo é denominado clipping. Neste sentido, existem

duas abordagens diferentes, e são elas Hard-clipping e Soft-clipping. Estes dois

processos são normalmente utilizados para obter os efeitos distorção normal e overdrive

respetivamente. O efeito overdrive também designado como um tipo de distorção ou

variante deste, este possui uma compressão do som mais natural, o que torna este efeito

um pouco menos utilizado do que o efeito distorção. Pois, este é mais utilizado em

estilos música rock e em muitas variantes do mesmo.

Posto isto, procedeu-se então à implementação utilizando a abordagem do processo

hard-clipping. Para isso, seguiu-se o fluxograma presente na figura 64.

Page 81: Artur Diogo Rodrigues Anjo Processador de efeitos digitalintranet.dei.uminho.pt/gdmi/galeria/temas/pdf/50822.pdf · processador de efeitos em FPGA para guitarra elétrica. Esta abordagem,

65

Figura 64 - Fluxograma do efeito Distorção

Seguindo então o fluxograma apresentado procedeu-se para a sua implementação

em verilog como podemos observar no excerto de código na figura 65.

assign DAC_in = (ADC_out[23]) ? negative_sat:

positive_sat;

assign positive_sat = (ADC_out[23:21]!=3'b000) ? 24'h1fffff:

ADC_out;

assign negative_sat = ADC_out & 24'h8fffff;

Figura 65 - Implementação do efeito Distorção com base em hard-clipping

Page 82: Artur Diogo Rodrigues Anjo Processador de efeitos digitalintranet.dei.uminho.pt/gdmi/galeria/temas/pdf/50822.pdf · processador de efeitos em FPGA para guitarra elétrica. Esta abordagem,

66

Também foi implementada uma abordagem mais próxima do soft-clipping como

podemos verificar no excerto de código da figura 66.

Vibrato

Figura 67 - Algoritmo do efeito vibrato

Outro dos efeitos integrados nesta dissertação foi o efeito vibrato. A sua

implementação teve como base um algoritmo semelhante ao presente na figura 67.

O objetivo principal deste efeito consiste em atingir um atraso variável

permitindo obter um som aparentemente vibratório. Esta é a grande diferença

comparativamente ao efeito delay por exemplo, em que este possui um tempo de atraso

não variável no tempo. Para isso foi adicionada uma função seno ao atraso variável de

maneira a alcançar o efeito desejado.

Utilizando as potencialidades da linguagem de hardware verilog recorreu-se, tal

como para os efeitos delay, à geração de uma memória single port Ram,

assign DAC_in = (ADC_out[23:21]!=3'b000) ? 24'h1fffff:

ADC_out[23:6],6’d0;

Figura 66 - Implementação do efeito Distorção com base em soft-clipping

Page 83: Artur Diogo Rodrigues Anjo Processador de efeitos digitalintranet.dei.uminho.pt/gdmi/galeria/temas/pdf/50822.pdf · processador de efeitos em FPGA para guitarra elétrica. Esta abordagem,

67

O contador utilizado para a memória usada neste módulo possui um valor de

32000 e pode ser observado na figura 69. Perante isto, o tempo de atraso induzido neste

efeito foi calculado através da seguinte expressão:

dualRam DualRam_Vibrato (

.clka(clk), // input clka

.rsta(~rst), // input rsta

.wea(1'b1 && rst), // input [0 : 0] wea

.addra(rst_count), // input [15 : 0] addra

.dina(ADCout), // input [23 : 0] dina

.douta(VibratoOut_wire), // output [23 : 0] douta

.clkb(clk), // input clkb

.rstb(~rst), // input rstb

.web(1'b1 && rst), // input [0 : 0] web

.addrb(rst_countb), // input [15 : 0] addrb

.dinb(ADCout), // input [23 : 0] dinb

.doutb(VibratoOut_wireb) // output [23 : 0] doutb

);

Figura 68 - Instanciação da dual port Ram para o efeito vibrato

always @(posedge clk)

begin

if(~rst)

begin

delay_constb <= 16'd32000;

rst_countb <= 16'd0;

end

else

begin

if (rst_countb == delay_constb)

begin

rst_countb <= 16'd0;

end

else

begin

rst_countb <= rst_countb + 16'd1;

end

end

end

Figura 69 - Implementação do contador para o efeito vibrato

Page 84: Artur Diogo Rodrigues Anjo Processador de efeitos digitalintranet.dei.uminho.pt/gdmi/galeria/temas/pdf/50822.pdf · processador de efeitos em FPGA para guitarra elétrica. Esta abordagem,

68

4.2.4. Módulo UART

Figura 70 - Formato dos dados do protocolo UART

De modo a que o sistema possa comunicar com o computador foi implementado

o módulo UART. Para isso foi utilizada a porta RS232 existente na placa de

desenvolvimento escolhida para esta dissertação que através de um cabo série permite a

desejada comunicação. Este módulo servirá como base da implementação de alto nível,

que será explicada mais à frente, com o objetivo de interagir com o utilizador.

O protocolo UART (Universal Asynchronous Receiver Transmitter) é um

componente de hardware que permite comunicações em formatos série assíncronas

entre dois dispositivos sem a necessidade de um dispositivo slave. A designação

universal indica que o formato dos dados e a velocidade de transmissão são parâmetros

configuráveis no entanto tem de haver coerência na configuração destes. O formato dos

dados a ser utilizada no protocolo UART pode ser observada na figura 70.

Neste formato é sempre utilizado inicialmente o start bit a nível lógico zero

depois seguem-se os bits de dados normalmente 8 bits do LSB para o MSB (podem ser

5 ou 8) e por fim stop bit também a nível lógico alto que também são configuráveis e

que tomar valores de 1, 1.5 ou 2. Opcionalmente pode-se utilizar o bit de paridade para

deteção de erros. Outro parâmetro que é essencial configurar é o baud rate, taxa de

transmissão.

O protocolo UART permite várias configurações no entanto foi escolhida uma

configuração pré-definida com 1 stop bit, 8 bits de dados, sem bit de paridade, 1 stop bit

e com baud rate de 9600.

Depois de estudado o protocolo e de definidos todos os parâmetros necessários

para o sistema em questão. Procedeu-se então para a implementação propriamente dita.

Page 85: Artur Diogo Rodrigues Anjo Processador de efeitos digitalintranet.dei.uminho.pt/gdmi/galeria/temas/pdf/50822.pdf · processador de efeitos em FPGA para guitarra elétrica. Esta abordagem,

69

Primeiramente foi fundamental implementar a geração do baud rate deste módulo.

Como o valor pretendido para o baud rate é de 9600 e a frequência a utilizar é de

130kHz, frequência de amostragem do sistema, foi então essencial um acumulador para

este efeito. Antes disso, foi preciso calcular o valor a ser adicionado a esse acumulador

presente na seguinte expressão:

Após gerado o valor a ser adicionado no acumulador procedeu-se então à

geração da taxa de transmissão desejada de 9600. Este valor foi designado de BaudTick,

este será utilizado na receção e na transmissão da informação. A geração deste sinal

pode ser observada no excerto de código presente na figura 71.

Este módulo foi implementado com o intuito de, com a ajuda de uma aplicação,

ser possível para um utilizador interagir com o sistema podendo escolher os efeitos que

pretende usar bem como os parâmetros dos efeitos que pretender. Neste sentido, para

este módulo UART foram implementados dois módulos, transmissor e recetor, no

entanto chegou-se à conclusão de que apenas seria necessário implementar o módulo

recetor.

Figura 71 - Geração do sinal BaudTick

always @(posedge clk)

begin

Baud8GeneratorAcc <= Baud8GeneratorAcc[Baud8GeneratorAccWidth-1:0]

+ Baud8GeneratorInc;

end

wire Baud8Tick = Baud8GeneratorAcc[Baud8GeneratorAccWidth];

Page 86: Artur Diogo Rodrigues Anjo Processador de efeitos digitalintranet.dei.uminho.pt/gdmi/galeria/temas/pdf/50822.pdf · processador de efeitos em FPGA para guitarra elétrica. Esta abordagem,

70

4.2.5. Escolha dos Efeitos

Figura 72 - Diagrama lógico da escolha dos efeitos

Depois de implementado o módulo UART foi igualmente fundamental

implementar a lógica por detrás deste módulo. Como já foi dito anteriormente, a lógica

deste módulo tem como objetivo permitir a interação com o utilizador a partir de uma

aplicação que será explicada mais à frente. Antes disso será importante explicar o estado

atual de todo o sistema, já com os efeitos, e toda a lógica que foi implementada de

maneira a que se pudesse escolher os efeitos tal como os seus parâmetros.

No diagrama da figura 72, é possível verificar como serão ativados os efeitos e

toda a lógica a implementar.

Como podemos ver foram implementados multiplexadores à entrada de cada

efeito. Para que quando for pretendido escolher os efeitos o valor destes

multiplexadores serão ativados. Ou seja, o valor do multiplexador correspondente ao

efeito escolhido terá como valor de nível lógico ‘1’. Se algum dos efeitos não tiver sido

ativado o valor do respetivo multiplexador terá como valor de nível lógico ‘0’, ficando

com o valor do proveniente do multiplexador anterior. Por fim, se nenhum dos efeitos

for escolhido os dados chegam ao DAC diretamente do ADC, isto é, o sinal obtido a

saída é o sinal ‘limpo’ sem efeitos.

Page 87: Artur Diogo Rodrigues Anjo Processador de efeitos digitalintranet.dei.uminho.pt/gdmi/galeria/temas/pdf/50822.pdf · processador de efeitos em FPGA para guitarra elétrica. Esta abordagem,

71

Como é possível verificar no excerto de código da figura 73, temos o exemplo

do caso da ativação/desativação do efeito vibrato. Depois de instanciado o módulo do

efeito vibrato foi então necessário implementar o respetivo multiplexador. Quando o

valor do índice do registo ‘Enable_mux’ correspondente ao efeito vibrato passar a nível

lógico ‘1’ este será ativado. Este também será o valor de entrada no módulo seguinte, o

módulo do efeito Echo. Senão o efeito vibrato não será ativado e o valor do registo

correspondente a este efeito terá valor ‘0’, isto faz com que o valor de entrada do efeito

Echo seja o valor proveniente do ADC, o sinal SDATA deste.

Isto vai de encontro ao que já foi referido anteriormente, caso o valor do índice

do registo do multiplexador correspondente ao efeito tenha o valor de ‘1’, este é ativado,

caso contrário este toma o valor proveniente do módulo anterior.

teste_effect Vibrato(

.clk(LRCK_adc),

.rst(rst),

.ADCout(data_out_adc),

.DACin(vibrato_a)

);

always @(vibrato_a or data_out_adc or Enable_mux)

begin

if(~rst)

out_vibrato <= 23'b0;

else if ( Enable_mux[0] == 1'd1 )

out_vibrato <= vibrato_a;

else out_vibrato <= data_out_adc;

end

Figura 73 - Ativação/desativação do efeito vibrato

Page 88: Artur Diogo Rodrigues Anjo Processador de efeitos digitalintranet.dei.uminho.pt/gdmi/galeria/temas/pdf/50822.pdf · processador de efeitos em FPGA para guitarra elétrica. Esta abordagem,

72

Figura 74 - Máquina de estados utilizada na escolha dos efeitos

Na máquina de estados presente na figura 74, é possível verificar a lógica a

seguir na escolha dos efeitos.

O estado inicial é o estado IDLE que é o estado “parado”, mudando de estado

caso seja lido algum caracter na porta série. Se esse valor for um ‘E’ passa ao estado

Enable Effects, neste estado serão ativados os efeitos pretendidos pelo utilizador. Para

isso será atualizado o registo Enable_mux, registo este utilizado nos multiplexadores

mencionados anteriormente, passando depois a estado IDLE de seguida. Caso seja lido

o caracter ‘D’ o registo Enable_mux será novamente atualizado com o objetivo desta

vez de desativar os efeitos. Por fim caso o valor lido na porta série pelo registo Rx_data,

seja o caracter ‘P’ serão atualizados os registos relativos aos parâmetros de cada um dos

efeitos.

Page 89: Artur Diogo Rodrigues Anjo Processador de efeitos digitalintranet.dei.uminho.pt/gdmi/galeria/temas/pdf/50822.pdf · processador de efeitos em FPGA para guitarra elétrica. Esta abordagem,

73

É possível visualizar a implementação do estado IDLE no excerto de código

presente na figura 75.

Tal como os estados Enable_effects e Disable_effects presentes na figura 76 e o

estado ‘sel_param’ na figura 77.

Figura 75 - Estado IDLE

Enable_effects:

begin

Enable_mux <= (Enable_mux | RxD_data);

state <= IDLE;

end

Disable_effects:

begin

Enable_mux <= (Enable_mux & ~RxD_data);

state <= IDLE;

end

Figura 76 - Estados Enable_effects e Disable_effects

IDLE:

begin

if( Rx_data == 8'b01000101 )

begin

state <= Enable_effects;

end

else

begin

if ( Rx_data == 8'b01000100)

begin

state <= Disable_effects;

end

else

begin

if (Rx_data == 8'b01010000)

begin

state <= sel_param;

end

else

state <= IDLE;

end

end

end

Page 90: Artur Diogo Rodrigues Anjo Processador de efeitos digitalintranet.dei.uminho.pt/gdmi/galeria/temas/pdf/50822.pdf · processador de efeitos em FPGA para guitarra elétrica. Esta abordagem,

74

Figura 77 - Estado 'sel_param'

sel_param:

begin

state <= IDLE;

if( Rx_data == 8'b01110110)

tempo_vib <= 16'd32000;

else

if( Rx_data == 8'b01010110)

tempo_vib <= 16'd64000;

else

if ( Rx_data == 8'b01101000)

tempo_echo <= 17'd64000;

else

if (Rx_data == 8'b01001000)

tempo_echo <= 17'd128000;

else

if(Rx_data == 8'b01100100)

tempo_delay <= 17'd64000;

else

if(Rx_data == 8'b01000100)

tempo_delay <= 17'd128000;

else

if(Rx_data == 8'b01110100)

begin

pos_value <= 24'h1fffff;

neg_value <= 24'h8fffff;

end

else

if(Rx_data == 8'b01010100)

begin

pos_value <= 24'h1fffff;

neg_value <= 24'h8fffff;

end

end

Page 91: Artur Diogo Rodrigues Anjo Processador de efeitos digitalintranet.dei.uminho.pt/gdmi/galeria/temas/pdf/50822.pdf · processador de efeitos em FPGA para guitarra elétrica. Esta abordagem,

75

4.3. Implementação do Software

Figura 78 - Aspeto da aplicação 'Audio Effects Processor'

Neste capítulo é abordada a implementação do software utilizado nesta

dissertação. Tem-se como objetivo principal interagir com o utilizador e de mostrar a

aplicabilidade deste projeto num sistema On/off mais apropriado para um guitarrista,

como uma pedaleira multi-effect.

Mais concretamente é explicado o desenvolvimento de uma aplicação user-

friendly, intuitiva e de fácil utilização desenvolvida na linguagem orientada a objetos

C#. O aspeto principal da aplicação implementada através de Windows forms pode ser

visualizado na figura 78.

Nesta aplicação é possível escolher os efeitos, ativa-los e desativa-los assim que

o utilizador pretender. Também tem a possibilidade de escolher os parâmetros dos

efeitos, entre duas opções para cada efeito.

O fluxograma presente na figura 79, ajuda a perceber o comportamento da

aplicação desenvolvida. Quando esta é executada a porta série é inicializada com a

configuração definida previamente, baud rate de 9600, 1 start bit, 8 bits de dados e 1

stop bit. Depois é testada a condição de reset a porta série é novamente inicializada e os

textos dos botões ficam com os valores por defeito. Depois são testados os botões

relativos aos efeitos, se algum deles for pressionado, o caracter ‘E’ é enviado pela porta

série, correspondente a ‘0x45’ em hexadecimal, fazendo assim com que o sistema entre

Page 92: Artur Diogo Rodrigues Anjo Processador de efeitos digitalintranet.dei.uminho.pt/gdmi/galeria/temas/pdf/50822.pdf · processador de efeitos em FPGA para guitarra elétrica. Esta abordagem,

76

no estado ‘Enable_effects’. De seguida é enviado o caracter correspondente ao efeito,

por exemplo no caso do efeito Delay é enviado o valor 00000100 que corresponde a

‘0x04’ em hexadecimal, este valor será depois atualizado com o registo de escolha dos

efeitos Enable_mux, já referido anteriormente. Também é alterado o texto do botão

pressionado passando a ‘Disable “nome_do_efeito”’.

Após, é possível desativar algum dos efeitos previamente ativados e, nessa

situação é enviado o caracter ‘D’ fazendo com que o sistema passe para o estado

‘Disable_effects’. Tal como para o estado anterior é enviado o caracter correspondente

ao efeito desativado e comparado também com o registo de escolha dos efeitos,

Enable_mux. A qualquer altura é igualmente possível ativar a opção Reset.

Figura 79 - Fluxograma da aplicação

Page 93: Artur Diogo Rodrigues Anjo Processador de efeitos digitalintranet.dei.uminho.pt/gdmi/galeria/temas/pdf/50822.pdf · processador de efeitos em FPGA para guitarra elétrica. Esta abordagem,

77

Capítulo 5

Resultados

Neste capítulo é possível verificar os resultados da implementação do processador

de efeitos. Será possível verificar os resultados do funcionamento do hardware, alguns

resultados em simulação bem como resultados experimentais. Os resultados simulados

foram conseguidos a partir da ferramenta da ISim da Xilinx. Enquanto os resultados

experimentais foram todos obtidos através de testes efetuados com guitarra elétrica, em

que foram gravadas as formas de ondas resultantes.

5.1. Resultados do Hardware

Em relação aos resultados de hardware é importante demonstrar os resultados dos

testes realizados ao hardware. Estes foram efetuados com o objetivo de comprovar o

bom funcionamento do ADC e DAC, correspondentes aos sistemas de aquisição e

reprodução do sinal respetivamente. Estes testes foram gerados com a ajuda da

ferramenta disponível no ISE da Xilinx, Chipscope. Esta ferramenta permite visualizar

os sinais provenientes do FPGA, o que possibilitou adquirir os dados à saída dos

módulos do ADC e DAC.

Nas figuras 80 e 81, é possível observar resultados de testes efetuados ao ADC,

ou seja, o sinal proveniente do módulo recetor. Nestes testes foram utilizados sinais de

entrada de 127Hz de frequência e de 200mV e 300mV de valor de pico respetivamente.

Estes sinais foram produzidos através de um gerador de sinais.

Page 94: Artur Diogo Rodrigues Anjo Processador de efeitos digitalintranet.dei.uminho.pt/gdmi/galeria/temas/pdf/50822.pdf · processador de efeitos em FPGA para guitarra elétrica. Esta abordagem,

78

Figura 80 - Resultado de teste efetuado ao ADC – 200mV

Figura 81 - Resultado de teste efetuado ao ADC - 300mV

-2500000

-2000000

-1500000

-1000000

-500000

0

500000

1000000

1500000

2000000

2500000

0 200 400 600 800 1000 1200

Teste ADC 127Hz - 200mV

-4000000

-3000000

-2000000

-1000000

0

1000000

2000000

3000000

4000000

0 200 400 600 800 1000 1200

Teste ADC 127Hz - 300mV

Page 95: Artur Diogo Rodrigues Anjo Processador de efeitos digitalintranet.dei.uminho.pt/gdmi/galeria/temas/pdf/50822.pdf · processador de efeitos em FPGA para guitarra elétrica. Esta abordagem,

79

Figura 82 - Resultado de teste efetuado ao DAC

Relativamente ao sistema de conversão e reprodução do sinal, também foram

efetuados testes ao DAC. Na figura 82, é possível observar a resposta deste hardware

com um sinal de entrada de 127Hz e 300mV de valor de pico.

5.2. Resultados simulados

Com o intuito de verificar o funcionamento do hardware foi utilizada a ferramenta

disponível no ISE da Xilinx, ISim.

De maneira a verificar a implementação do protocolo I2S necessário para o

funcionamento do hardware foram geradas simulações tanto para o sistema de

aquisição como para o sistema de conversão e reprodução do sinal. Na figura 83, pode-

se visualizar o comportamento dos sinais correspondentes ao ADC.

-400000

-300000

-200000

-100000

0

100000

200000

300000

400000

1

39

77

11

5

15

3

19

1

22

9

26

7

30

5

34

3

38

1

41

9

45

7

49

5

53

3

57

1

60

9

64

76

85

72

3

76

1

79

9

83

78

75

91

3

95

1

98

9

Teste DAC 127Hz - 300mV

Page 96: Artur Diogo Rodrigues Anjo Processador de efeitos digitalintranet.dei.uminho.pt/gdmi/galeria/temas/pdf/50822.pdf · processador de efeitos em FPGA para guitarra elétrica. Esta abordagem,

80

Figura 83 - Resultado em simulação do comportamento do ADC

É possível verificar que os 24 bits são enviados em cada semi ciclo do sinal de

relógio LRCK, sendo que o MSB é enviado no semi ciclo seguinte.

Quanto ao DAC também foi efetuada uma simulação para verificar o funcionamento

do protocolo.

Figura 84 - Resultado em simulação do comportamento do DAC

Em relação aos efeitos implementados a melhor maneira de verificar os resultados

foi através do som proveniente do amplificador. No entanto, para o efeito delay foi

gerada uma simulação como pode-se observar na figura 85.

Page 97: Artur Diogo Rodrigues Anjo Processador de efeitos digitalintranet.dei.uminho.pt/gdmi/galeria/temas/pdf/50822.pdf · processador de efeitos em FPGA para guitarra elétrica. Esta abordagem,

81

Figura 85 - Resultado em simulação do comportamento do efeito delay

O sinal ‘DACin’ é formado pela soma dos dados provenientes do ADC, ‘ADCout’,

com o atraso oriundo da memória utilizada para o efeito, ‘DelayOut’. O valor do atraso

utilizado foi de 100, este valor foi utilizado apenas para facilitar a visualização da

simulação.

5.3. Resultados Experimentais

Relativamente aos efeitos implementados foi essencial obter os resultados

destes. Foram gravados os sinais provenientes do amplificador e convertidos em formas

de onda através de uma ferramenta de edição de áudio.

Na figura 86, pode-se visualizar o resultado do efeito delay. O resultado

apresentado provém da abordagem com as três memórias, como foi referido

anteriormente.

Page 98: Artur Diogo Rodrigues Anjo Processador de efeitos digitalintranet.dei.uminho.pt/gdmi/galeria/temas/pdf/50822.pdf · processador de efeitos em FPGA para guitarra elétrica. Esta abordagem,

82

Figura 86 - Resultado do efeito delay - 1ª abordagem

Por outro lado, na figura 87, é possível visualizar o efeito delay implementado

com recurso à abordagem com uma memória.

Figura 87 - Resultado do efeito delay - 2ª abordagem

Page 99: Artur Diogo Rodrigues Anjo Processador de efeitos digitalintranet.dei.uminho.pt/gdmi/galeria/temas/pdf/50822.pdf · processador de efeitos em FPGA para guitarra elétrica. Esta abordagem,

83

Figura 88- Resultado do efeito Echo

Na figura 88, é então possível verificar o resultado do efeito Echo. Por fim,

pode-se observar o resultado do efeito distorção na figura 89. O sinal obtido provém do

processo de implementação, hard-clipping.

Figura 89 - Resultado do efeito Distorção (hard-clipping)

Page 100: Artur Diogo Rodrigues Anjo Processador de efeitos digitalintranet.dei.uminho.pt/gdmi/galeria/temas/pdf/50822.pdf · processador de efeitos em FPGA para guitarra elétrica. Esta abordagem,

84

5.4. Resultados dos custos do projeto

Depois de realizados todos os testes e de apresentados os respetivos resultados,

tornou-se essencial fazer uma comparação. Comparar os custos deste projeto com um

produto existente no mercado, o mais equivalente possível. Foi então necessário

verificar os custos envolventes na criação das placas criadas para o ADC e DAC, bem

como escolher o FPGA com menor capacidade possível desde que suporte os requisitos

do projeto em questão. De salientar, que a placa de desenvolvimento Virtex-5 utilizada

nesta dissertação, foi usada pela sua disponibilidade e não pela sua capacidade, pois

assim esta escolha teria sido considerada overkill. Para isso, foi então importante

analisar a ocupação do projeto no FPGA utilizada para poder ser possível escolher uma

solução de custo mais reduzido.

Na figura 90, pode-se observar os recursos utilizados no que diz respeito à ocupação

da placa.

Page 101: Artur Diogo Rodrigues Anjo Processador de efeitos digitalintranet.dei.uminho.pt/gdmi/galeria/temas/pdf/50822.pdf · processador de efeitos em FPGA para guitarra elétrica. Esta abordagem,

85

Figura 90 - Recursos utilizados no FPGA

Posto isto, podemos verificar que os recursos utilizados não atingem a

capacidade total do FPGA. Será então possível, encontrar um FPGA com menor

capacidade, desde que possua os recursos exigidos, tornando assim este projeto numa

solução de menor custo.

Uma maneira de reduzir ainda mais os recursos utilizados, seria tentar otimizar

ou até se possível usar menos blocos de memória nos efeitos implementados para que

fosse possível escolher um FPGA o mais económico possível.

Serão agora apresentadas duas soluções, em que uma delas apresenta-se um

produto com capacidade semelhante a utilizada no produto, mas mais económica. A

outra solução passa por um produto de custo inferior em que a capacidade total do

FPGA é a menor possível, desde que esteja dentro da capacidade necessária para o bom

funcionamento do design atual.

Page 102: Artur Diogo Rodrigues Anjo Processador de efeitos digitalintranet.dei.uminho.pt/gdmi/galeria/temas/pdf/50822.pdf · processador de efeitos em FPGA para guitarra elétrica. Esta abordagem,

86

1ª Solução:

Figura 91 - FPGA Nexys 7

Como primeira solução foi selecionado o FPGA Nexys-Artix 7 [30], o preço

situa-se aproximadamente entre os 100€-220€, mais acessível que a virtex 5 utilizada

nesta dissertação, pois possui menos recursos e periféricos.

Este FPGA assemelha-se, no que a recursos diz respeito, ao utilizado neste

projeto, possui 6 PLLs,4.860 KBits de blocos de Ram, 15k de elementos lógicos entre

outras.

2ª Solução:

Figura 92 - Virtex-5

Outra solução passa por utilizar um FPGA da mesma família do utilizado nesta

dissertação, virtex 5 – XC6LX75T [31]. Este possui cerca 11k de blocos lógicos e

aproximadamente 3170k de blocos de memória Ram. Este valor está próximo mas é

Page 103: Artur Diogo Rodrigues Anjo Processador de efeitos digitalintranet.dei.uminho.pt/gdmi/galeria/temas/pdf/50822.pdf · processador de efeitos em FPGA para guitarra elétrica. Esta abordagem,

87

superior ao número de bolocos utilizado por este projeto, cerca de 3168k, como

podemos confirmar na figura 90.

O preço deste FPGA ronda os 80€, o que torna esta solução bastante mais

acessível que qualquer outra e com potencial para competir com os processadores de

efeitos existentes no mercado.

Antes de poder fazer a comparação, foi também necessário analisar os custos

relativamente à criação das placas do ADC e DAC, correspondentes aos sistemas de

aquisição e reprodução do sinal, respetivamente.

Custos da PCB do ADC:

~12€

Custos da PCB do DAC:

~8€

Lista dos componentes:

Condensadores Resistências

1uF 267k

0.01uF 10k

470pf 100k

2200pf 560

0.1uf 634

3.3uf 150

4700pf 90.9

4.7uf 22.1

Ferrite: 4.7uH 5.1

Tabela 4 – Lista de componentes

Custo total dos componentes: ~1,20€

Page 104: Artur Diogo Rodrigues Anjo Processador de efeitos digitalintranet.dei.uminho.pt/gdmi/galeria/temas/pdf/50822.pdf · processador de efeitos em FPGA para guitarra elétrica. Esta abordagem,

88

Figura 93 - KORG Pandora

Posto isto, depois de apresentadas soluções e os custos envolventes para este

projeto foi possível fazer a comparação com produtos existentes no mercado. Como

objeto de comparação escolhemos um produto existente no mercado equivalente, ou o

mais próximo possível com o implementado nesta dissertação. De seguida, serão

apresentados dois produtos.

Como primeiro objeto de comparação, deparamo-nos com o seguinte produto,

Korg Pandora Mini PXMINI Guitar Multi-Effects Processor [32], como podemos

observar na figura 93.

Este produto é um processador multi-effect portátil. Este produto da marca

KORG [33], consegue utilizar sete efeitos em simultâneo e possui um preço a rondar os

75€. Este produto é um modelo portátil, no entanto, de capacidade e número de efeitos

bastante semelhante ao implementado nesta dissertação. Iremos agora fazer uma

comparação com outro produto com mais funcionalidades.

Page 105: Artur Diogo Rodrigues Anjo Processador de efeitos digitalintranet.dei.uminho.pt/gdmi/galeria/temas/pdf/50822.pdf · processador de efeitos em FPGA para guitarra elétrica. Esta abordagem,

89

Figura 94 - BOSS ME-25

Então uma das outras possibilidades é o produto da marca BOSS, o modelo ME-

25 [34]. Este possui 31 efeitos diferentes e pode ser adquirida por um valor próximo de

150€.

Posto isto, é possível verificar que o sistema desenvolvido nesta dissertação seria

uma solução viável, com custos próximos dos produtos existentes no mercado. No

entanto, se esta solução fosse otimizada o mais possível poderia tornar-se numa solução

mais acessível.

Page 106: Artur Diogo Rodrigues Anjo Processador de efeitos digitalintranet.dei.uminho.pt/gdmi/galeria/temas/pdf/50822.pdf · processador de efeitos em FPGA para guitarra elétrica. Esta abordagem,

90

Page 107: Artur Diogo Rodrigues Anjo Processador de efeitos digitalintranet.dei.uminho.pt/gdmi/galeria/temas/pdf/50822.pdf · processador de efeitos em FPGA para guitarra elétrica. Esta abordagem,

91

Capítulo 6

Conclusão e trabalho futuro

Nesta dissertação foi realizada a implementação de um processador de efeitos digital

em FPGA aplicado para guitarra elétrica.

Os algoritmos que foram alvos de estudo e apresentados nesta dissertação

permitiram implementar alguns efeitos dentro do que era pretendido. Com recurso à

idealização e criação do interface analógico foi possível efetuar a aquisição do sinal e a

reprodução do mesmo. Também com recurso a uma aplicação de software, foi possível

mostrar a aplicabilidade do processador desenvolvimento num sistema On/Off, como

uma pedaleira.

Os resultados obtidos até então foram bastante promissores provando a viabilidade

dos algoritmos implementados. Estes resultados foram considerados viáveis tanto

através das formas de onda obtidas do sinal de saída, como pela boa qualidade de som

apresentada. No entanto, o sistema é limitado devido ao número reduzido de efeitos

comparativamente aos sistemas semelhantes existentes no mercado. O sistema atual

também não foi implementado como um protótipo integrando todos os subsistemas em

uma plataforma acessível e designada unicamente para esta ideia. Também possui um

pequeno ruído indesejado no efeito distorção.

De maneira a melhorar o sistema implementado, seria necessário adicionar efeitos e

integrar o sistema, em algo mais próximo de um produto final. Seria essencial possuir

um pedal ou vários pedais, de maneira a que fosse possível o utilizador escolher e/ou

mudar de efeitos quase instantaneamente e sempre que pretende-se faze-lo. Em relação

à implementação dos atuais efeitos, seria interessante ter em conta uma otimização do

design atual, pelo menos no que diz respeito à utilização das memórias virtuais

presentes em alguns dos efeitos. O objetivo principal seria reduzir a ocupação dos

recursos, se assim fosse possível. Outra das possibilidades seria recorrer a outro tipo de

abordagem na implementação dos efeitos, no que diz respeito ao armazenamento das

amostras do sinal de entrada. Esta observação também deveria ser algo a ter em atenção

na implementação de novos efeitos.

Page 108: Artur Diogo Rodrigues Anjo Processador de efeitos digitalintranet.dei.uminho.pt/gdmi/galeria/temas/pdf/50822.pdf · processador de efeitos em FPGA para guitarra elétrica. Esta abordagem,

92

Page 109: Artur Diogo Rodrigues Anjo Processador de efeitos digitalintranet.dei.uminho.pt/gdmi/galeria/temas/pdf/50822.pdf · processador de efeitos em FPGA para guitarra elétrica. Esta abordagem,

93

Bibliografia

[1] M. H. S. M. a. U. Z. K. Dempwolf, “GEB1 - A ROBUST DSP PLATFORM FOR

AUDIO AND GUITAR SIGNAL PROCESSING IN EDUCATION,” Proceedings of the

4th European DSP in Education and Research Conference, pp. 11-14.

[2] BOSS, “BOSS,” [Online]. Available:

http://www.bossus.com/gear/productdetails.php?ProductId=127.

[3] BOSS. [Online]. Available:

http://www.bossus.com/gear/productdetails.php?ProductId=137.

[4] BOSS. [Online]. Available:

http://www.bossus.com/gear/productdetails.php?ProductId=134.

[5] BOSS. [Online]. Available:

http://www.bossus.com/gear/productdetails.php?ProductId=1058.

[6] BOSS. [Online]. Available:

http://www.bossus.com/gear/productdetails.php?ProductId=1001.

[7] J. A. L. Guerra, “Digital Audio Effects Based On Delay and Implementation on FPGA”.

[8] S. M. I. M. J. M. M. I. a. M. D. V. M. I. Juan J. Rodriguez-Andina, “Features, Design

Tools, and Application Domains of FPGAs,” IEEE TRANSACTIONS ON

INDUSTRIAL ELECTRONICS, VOL. 54, NO. 4, pp. 1810-1823, 2007.

[9] A. P. T. f. X. Inc., “www.xilinx.com”.

[10] F. C. a. A. f. Altera, www.altera.com.

[11] K. B. Mark Kahrs, Applications of Digital Signal Processing to Audio and Acoustics

(The International Series in Engineering and Computer Science), Springer, 2001.

[12] "ERZETICH," [Online]. Available: http://www.erzetich-audio.com/knowledgebase-05-

time-vs-frequency.

[13] S. J. Orfanidis, Introduction to Signal Processing, Pearson Education, Inc, 2009.

[14] U. Zölzer, DAFX - Digital Audio Effects, 2002.

[15] M. V. Paolo Prandoni, Signal Processing for Communications, EFPL Press, 2008.

[16] B. Paillard, An Introduction To Digital Signal Processors.

[17] S. W. Smith, Digital Signal Processing, USA: Newnes, 2003.

Page 110: Artur Diogo Rodrigues Anjo Processador de efeitos digitalintranet.dei.uminho.pt/gdmi/galeria/temas/pdf/50822.pdf · processador de efeitos em FPGA para guitarra elétrica. Esta abordagem,

94

[18] “Analog Devices,” http://www.analog.com.

[19] J. K. M. I. R. P.-K. M. G. M. Miroslav Malko, “Implementation of digital audio effects

for electric guitar on DSP platform,” 19th Telecommunications forum TELFOR 2011,

pp. 1099-1102, 2011.

[20] N. Instruments, “www.ni.com”.

[21] "TEWM," [Online]. Available: http://www.co-

bw.com/Guitar_amplifiers_overdrive_distortion.htm.

[22] "CIRRUS LOGIC," [Online]. Available: http://www.cirrus.com.

[23] "CIRRUS LOGIC," [Online]. Available:

http://www.cirrus.com/en/pubs/proDatasheet/CS5340_F2.pdf.

[24] "I2SBUS," [Online]. Available:

https://www.sparkfun.com/datasheets/BreakoutBoards/I2SBUS.pdf.

[25] "CIRRUS LOGIC," [Online]. Available:

http://www.cirrus.com/en/pubs/proDatasheet/CS4334-5-8-9_F6.pdf.

[26] "Xilinx Virtex 5," [Online]. Available:

http://www.xilinx.com/support/documentation/data_sheets/ds100.pdf.

[27] [Online]. Available: http://www.cirrus.com/jp/pubs/rdDatasheet/CDB5340.pdf.

[28] "Eagle," [Online]. Available: http://www.cadsoftusa.com/.

[29] "PLL Xilinx," [Online]. Available:

http://www.xilinx.com/support/documentation/ip_documentation/pll_module.pdf.

[30] "Digilent Inc," [Online]. Available:

https://www.digilentinc.com/Products/Detail.cfm?NavPath=2,400,1184&Prod=NEXYS4.

[31] [Online]. Available: http://uk.farnell.com/xilinx/xc5vsx95t-1ffg1136c/fpga-virtex-5-95k-

cells-1136fbga/dp/1762508.

[32] [Online]. Available: http://www.guitarcenter.com/Korg-Pandora-Mini-PXMINI-Guitar-

Multi-Effects-Processor-H70754-i1746466.gc.

[33] [Online]. Available: http://www.korg.com/.

[34] [Online]. Available: http://www.sweetwater.com/store/detail/ME25/.