87
Módulo de Processamento de Sinal para um Amplificador de Áudio Digital Utilizando Modulação CLICK João Maria Sousa Paulino Líbano Monteiro Dissertação para obtenção do grau de Mestre em Engenharia Electrotécnica e de Computadores Orientador: Prof. Gonçalo Nuno Gomes Tavares Júri Presidente: Professor Horácio Cláudio de Campos Neto Orientador: Professor Gonçalo Nuno Gomes Tavares Vogal: Professor Fernando Manuel Duarte Gonçalves Novembro de 2015

Módulo de Processamento de Sinal para um Amplificador de ...Agradecimentos A conclusao de uma tese marca o fim de uma etapa marcante na vida profissional e pessoal de˜ cada um

  • Upload
    others

  • View
    0

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Módulo de Processamento de Sinal para um Amplificador de ...Agradecimentos A conclusao de uma tese marca o fim de uma etapa marcante na vida profissional e pessoal de˜ cada um

Módulo de Processamento de Sinal para um Amplificadorde Áudio Digital Utilizando Modulação CLICK

João Maria Sousa Paulino Líbano Monteiro

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

Engenharia Electrotécnica e de Computadores

Orientador: Prof. Gonçalo Nuno Gomes Tavares

Júri

Presidente: Professor Horácio Cláudio de Campos NetoOrientador: Professor Gonçalo Nuno Gomes TavaresVogal: Professor Fernando Manuel Duarte Gonçalves

Novembro de 2015

Page 2: Módulo de Processamento de Sinal para um Amplificador de ...Agradecimentos A conclusao de uma tese marca o fim de uma etapa marcante na vida profissional e pessoal de˜ cada um

ii

Page 3: Módulo de Processamento de Sinal para um Amplificador de ...Agradecimentos A conclusao de uma tese marca o fim de uma etapa marcante na vida profissional e pessoal de˜ cada um

Agradecimentos

A conclusao de uma tese marca o fim de uma etapa marcante na vida profissional e pessoal de

cada um. Desejo por isso agradecer a um conjunto de pessoas que ao longo destes anos de formacao,

e principalmente no perıodo correspondente a dissertacao, foram acompanhando mais de perto o meu

percurso.

Em primeiro lugar, gostaria de agradecer ao professor Goncalo Tavares a sua orientacao, a dispo-

nibilidade demonstrada e conhecimento partilhado. O seu contributo foi vital para este trabalho, sem o

qual nao teria sido concluıdo.

Em segundo lugar, um agradecimento especial ao Tiago Domingues, cujo trabalho anterior cons-

tituiu o ponto de partida e apoio fundamental para a dissertacao. A sua disponibilidade e paciencia,

particularmente para trabalho conjunto de minucia, revelaram-se valiosas e fundamentais.

A minha famılia, nomeadamente aos meus pais, irmaos, avos, primos e tios, o meu sincero agrade-

cimento pelo sustento dado em todas as fases do curso, muitas vezes de forma inconsciente e invisıvel,

nao so pelo gaudio em momentos de alegria como tambem pela compreensao em momentos menos

bons.

Por ultimo, mas nao em ultimo, um grande agradecimento a todos os meus amigos que, atraves

do trabalho ou convıvio, de varias formas e em diferentes alturas - que sao tantas, e tantos nomes a

elas associados que se tornam inumeraveis -, constituıram fontes de jubilo, inspiracao e sustentaculo,

proporcionando aprendizagens diversas que certamente ficarao para a vida.

iii

Page 4: Módulo de Processamento de Sinal para um Amplificador de ...Agradecimentos A conclusao de uma tese marca o fim de uma etapa marcante na vida profissional e pessoal de˜ cada um

iv

Page 5: Módulo de Processamento de Sinal para um Amplificador de ...Agradecimentos A conclusao de uma tese marca o fim de uma etapa marcante na vida profissional e pessoal de˜ cada um

Resumo

No contexto de amplificacao de sinais de audio para andares de classe D, a modulacao Click cons-

titui uma alternativa as modulacoes ja existentes, nomeadamente modulacao por largura de impulso e

modulacao Sigma-Delta. O espectro da onda binaria produzida possui bastantes vantagens em relacao

ao espectro das modulacoes anteriormente referidas, tais como a ausencia de distorcao na banda de

interesse do sinal e uma gama de frequencias sem conteudo informativo entre a banda de base e as

componentes de alta frequencia. Esta banda de guarda facilita muito a filtragem, dado que permite que

o projecto do filtro passa-baixo de desmodulacao possua uma banda de transicao maior. Adicional-

mente, o sinal possui tambem uma baixa frequencia de comutacao, da ordem de grandeza de metade

da frequencia de Nyquist do sinal de entrada. Este desempenho e conseguido a custa de processa-

mento de sinal bastante exigente.

Nesta dissertacao e descrita um modelo da modulacao Click em linguagem C, com operandos de

vırgula fixa, num trabalho que teve por base um algoritmo realizado em MATLAB. O processamento e

feito recorrendo a leitura de um ficheiro que contem amostras do sinal de entrada, e apresenta como

resultado um outro ficheiro que contem um conjunto de ciclos de trabalho de uma onda modulada em

largura de impulso.

Os resultados obtidos, que foram comparados com os resultados do modelo MATLAB, revelaram-se

bastante satisfatorios, tanto para sinais sinusoidais como para sinais multi-tom. Os espectros dos varios

sinais produzidos, principalmente o da onda modulada em largura de impulso gerada a partir dos ciclos

de trabalho, revelaram nao so o correcto funcionamento do algoritmo como validaram a sua utilizacao

em contextos de audio de alta resolucao.

Palavras-chave: Modulacao Click, Audio, Processamento Digital de Sinais, Vırgula Fixa

v

Page 6: Módulo de Processamento de Sinal para um Amplificador de ...Agradecimentos A conclusao de uma tese marca o fim de uma etapa marcante na vida profissional e pessoal de˜ cada um

vi

Page 7: Módulo de Processamento de Sinal para um Amplificador de ...Agradecimentos A conclusao de uma tese marca o fim de uma etapa marcante na vida profissional e pessoal de˜ cada um

Abstract

In the context of class D audio amplifiers, Click modulation is presented as an alternative to exis-

ting modulations, namely Pulse-Width Modulation and Sigma-Delta Modulation. The spectrum of the

resulting binary wave carries several benefits in comparison with the spectra of the previous referred

modulations, such as a distortion-free baseband and a guard-band between the baseband and the high

frequency components. In addition, the switching frequency of the signal is considerably low, its order of

magnitude being the same as half of the input signal’s Nyquist frequency. Such performance is obtained

at the cost of a complex signal processing.

This thesis comprises a description of a Click modulation model in C programming language, with

fixed-point operands, whose work was based in a MATLAB algorithm implementation. The signal pro-

cessing unit reads the input signal file and produces a set of duty cycles of a pulse-width modulated

wave that are written to another file.

The obtained results, which were compared with those of the MATLAB model, were deemed substan-

tially satisfactory, with both purely sinusoidal and multi-tone inputs. The spectra of the various generated

signals, namely the pulse-width modulated synthesized from the duty cycles, not only proved the correct

algorithm operation but also validated its use in the context of high-definition audio.

Keywords: Click Modulation, Audio, Digital signal Processing, Fixed Point

vii

Page 8: Módulo de Processamento de Sinal para um Amplificador de ...Agradecimentos A conclusao de uma tese marca o fim de uma etapa marcante na vida profissional e pessoal de˜ cada um

viii

Page 9: Módulo de Processamento de Sinal para um Amplificador de ...Agradecimentos A conclusao de uma tese marca o fim de uma etapa marcante na vida profissional e pessoal de˜ cada um

Conteudo

Agradecimentos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . iii

Resumo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . v

Abstract . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . vii

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

Lista de Figuras . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xv

Lista de Acronimos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xvii

1 Introducao 1

1.1 Motivacao e enquadramento . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1

1.2 Metodologia proposta e objectivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2

1.3 Estrutura do documento . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2

2 Modulacao Click 5

2.1 Aspectos teoricos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5

2.1.1 Introducao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5

2.1.2 Transformada de Hilbert . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7

2.1.3 Modulador exponencial analıtico e filtragem . . . . . . . . . . . . . . . . . . . . . . 9

2.1.4 Modulador em quadratura . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11

2.1.5 Passagem por zero . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12

2.2 Comparacao com outras modulacoes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15

2.2.1 Introducao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15

2.2.2 Modulacoes PWM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15

2.2.3 Modulacao Sigma-Delta . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17

2.2.4 Conclusoes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18

3 Estado da arte 20

3.1 Introducao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20

3.2 Modulacao Click em software . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20

3.3 Modulacao Click em hardware . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24

3.4 Modelo MATLAB . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28

3.4.1 Introducao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28

3.4.2 Transformada de Hilbert e interpolacao . . . . . . . . . . . . . . . . . . . . . . . . 28

ix

Page 10: Módulo de Processamento de Sinal para um Amplificador de ...Agradecimentos A conclusao de uma tese marca o fim de uma etapa marcante na vida profissional e pessoal de˜ cada um

3.4.3 Modulador exponencial analıtico e filtragem . . . . . . . . . . . . . . . . . . . . . . 29

3.4.4 Modulador em quadratura . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30

3.4.5 Passagem por zero . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31

4 Modelo desenvolvido 33

4.1 Plataforma de desenvolvimento e estrutura do programa . . . . . . . . . . . . . . . . . . . 33

4.2 Operandos de vırgula fixa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34

4.3 Operacoes de vırgula fixa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35

4.4 Aritmetica dos sinais de entrada . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37

4.5 Transformada de Hilbert e interpolacao . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38

4.6 Modulador exponencial analıtico e filtragem . . . . . . . . . . . . . . . . . . . . . . . . . . 40

4.7 Modulador em quadratura . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42

4.8 Passagem por zero . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43

4.8.1 Aspectos gerais . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43

4.8.2 Polinomio interpolador de Lagrange . . . . . . . . . . . . . . . . . . . . . . . . . . 44

4.8.3 Metodo da bisseccao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46

5 Resultados 49

5.1 Introducao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49

5.2 Transformada de Hilbert e interpolacao . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50

5.3 Modulador exponencial analıtico e filtragem . . . . . . . . . . . . . . . . . . . . . . . . . . 52

5.4 Modulador em quadratura . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55

5.5 Passagem por zero . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56

5.6 Outros sinais . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57

5.7 Consideracoes finais . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60

6 Conclusoes 63

6.1 Trabalho desenvolvido . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63

6.2 Trabalho futuro . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64

Bibliografia 66

A Apendice 67

A.1 Estrutura do programa em C (pseudo-codigo) . . . . . . . . . . . . . . . . . . . . . . . . . 67

x

Page 11: Módulo de Processamento de Sinal para um Amplificador de ...Agradecimentos A conclusao de uma tese marca o fim de uma etapa marcante na vida profissional e pessoal de˜ cada um

Lista de Tabelas

4.1 Exemplos de multiplicacao em vırgula fixa: combinacoes de formatos de operandos e

respectivos resultados. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36

4.2 Ficheiros de entrada do sistema e respectivos formatos em vırgula fixa. . . . . . . . . . . 38

5.1 Erros absolutos entre resultados do modelo em C e do modelo em MATLAB. . . . . . . . 61

5.2 SNR e THD do modelo em C e do modelo em MATLAB. . . . . . . . . . . . . . . . . . . . 61

xi

Page 12: Módulo de Processamento de Sinal para um Amplificador de ...Agradecimentos A conclusao de uma tese marca o fim de uma etapa marcante na vida profissional e pessoal de˜ cada um

xii

Page 13: Módulo de Processamento de Sinal para um Amplificador de ...Agradecimentos A conclusao de uma tese marca o fim de uma etapa marcante na vida profissional e pessoal de˜ cada um

Lista de Figuras

2.1 Esboco do espectro de um sinal q(t) gerado pela CM [Oliva et al., 2005]. . . . . . . . . . 5

2.2 Cadeia de processamento da CM - teoria [Oliva et al., 2005]. . . . . . . . . . . . . . . . . 6

2.3 Cadeia de processamento da CM - hardware. . . . . . . . . . . . . . . . . . . . . . . . . . 6

2.4 Modulo da transformada de Fourier de f(t): exemplo [Oliva et al., 2005]. . . . . . . . . . . 7

2.5 Esquema do bloco do calculo de fA(t) [Oliva et al., 2005]. . . . . . . . . . . . . . . . . . . 7

2.6 Modulo da transformada de Fourier de f(t) [Oliva et al., 2005]. . . . . . . . . . . . . . . . 8

2.7 Modulo da transformada de Fourier dos varios sinais envolvidos na criacao de fA(t) [Oliva

et al., 2005]. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8

2.8 Esquema do bloco AEM [Oliva et al., 2005]. . . . . . . . . . . . . . . . . . . . . . . . . . . 9

2.9 Modulo da transformada de Fourier de z(t) [Oliva et al., 2005]. . . . . . . . . . . . . . . . 10

2.10 Modulo da transformada de Fourier de zf (t) [Oliva et al., 2005]. . . . . . . . . . . . . . . . 10

2.11 Esquema do bloco Modulador em quadratura [Oliva et al., 2005]. . . . . . . . . . . . . . . 11

2.12 Modulo da transformada de Fourier de s(t) [Oliva et al., 2005]. . . . . . . . . . . . . . . . 12

2.13 Esquema do bloco Passagem por zero [Oliva et al., 2005]. . . . . . . . . . . . . . . . . . . 13

2.14 Modulo da transformada de Fourier de u(t) [Oliva et al., 2005]. . . . . . . . . . . . . . . . 13

2.15 Modulo da transformada de Fourier de jlog[u(t)] [Oliva et al., 2005]. . . . . . . . . . . . . 13

2.16 Caracterıstica do filtro passa-baixo e modulo da transformada de Fourier de jlog[u(t)]

[Oliva et al., 2005]. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13

2.17 Esboco de alguns sinais da CM [Oliva et al., 2005]. . . . . . . . . . . . . . . . . . . . . . 14

2.18 Circuito de implementacao da UPWM [Domingues et al., 2015]. . . . . . . . . . . . . . . 15

2.19 Espectro de uma onda UPWM com entrada sinusoidal de 1 kHz [Domingues et al., 2015]. 16

2.20 Circuito de implementacao da NPWM [Domingues et al., 2015]. . . . . . . . . . . . . . . 16

2.21 Espectro de uma onda NPWM com entrada sinusoidal de 6 kHz [Domingues et al., 2015]. 17

2.22 Espectro de uma onda NPWM com entrada sinusoidal de 6 kHz [Domingues et al., 2015]. 17

2.23 Esquema da modulacao Σ∆ de primeira ordem. . . . . . . . . . . . . . . . . . . . . . . . 18

3.1 Modulo da transformada de Fourier de q(t) (Oliva et al.). . . . . . . . . . . . . . . . . . . . 21

3.2 Modulo da transformada de Fourier de q(t) (Stefanazzi et al.). . . . . . . . . . . . . . . . . 22

3.3 Modulo da transformada de Fourier de q(t) desmodulado: medicao experimental (Stefa-

nazzi et al.). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23

3.4 Modulo da transformada de Fourier de q1(t) (Stefanazzi et al.). . . . . . . . . . . . . . . . 23

xiii

Page 14: Módulo de Processamento de Sinal para um Amplificador de ...Agradecimentos A conclusao de uma tese marca o fim de uma etapa marcante na vida profissional e pessoal de˜ cada um

3.5 Modulo da transformada de Fourier de x2A(n) (Stefanazzi et al.). . . . . . . . . . . . . . . 24

3.6 Modulo da transformada de Fourier de q2(t) (Stefanazzi et al.). . . . . . . . . . . . . . . . 24

3.7 Modulo da transformada de Fourier de q(t): 1a fase (simulacao, resolucao de 16 bit)

(Streitenberger and Mathis). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25

3.8 Modulo da transformada de Fourier de q(t): 1a fase (medicao experimental, resolucao de

11 bit) (Streitenberger and Mathis). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26

3.9 Modulo da transformada de Fourier de q(t): 2a fase, medicao experimental, resolucao de

10 bit (Streitenberger et al.). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27

3.10 Modulo da transformada de Fourier de q1(t): medicao experimental, resolucao de 13 bit

(Sozanski). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27

3.11 Modulo da transformada de Fourier de q2(t): medicao experimental, resolucao de 13 bit

(Sozanski). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28

3.12 Modulo da resposta em frequencia do filtro com coeficientes hLP (n). . . . . . . . . . . . . 29

3.13 Erro entre o valor real e aproximado de ez. . . . . . . . . . . . . . . . . . . . . . . . . . . 30

3.14 Modulo da transformada de Fourier de q(t): simulacao do modelo em MATLAB (Domin-

gues and Braga). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31

4.1 Esquema de implementacao da CM. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34

4.2 Esquema de representacao em vırgula fixa. . . . . . . . . . . . . . . . . . . . . . . . . . . 34

4.3 Esquema de implementacao do bloco da transformada de Hilbert e interpolacao. . . . . . 38

4.4 Modulo da resposta em frequencia de h1(n). . . . . . . . . . . . . . . . . . . . . . . . . . 39

4.5 Modulo da resposta em frequencia de h2(n). . . . . . . . . . . . . . . . . . . . . . . . . . 39

4.6 Esquema da implementacao do bloco AEM. . . . . . . . . . . . . . . . . . . . . . . . . . . 40

4.7 Funcao de transferencia do filtro passa-baixo pos AEM. . . . . . . . . . . . . . . . . . . . 42

4.8 Esquema de implementacao do bloco modulador em quadratura. . . . . . . . . . . . . . . 42

4.9 Esquema de implementacao do bloco passagem por zero. . . . . . . . . . . . . . . . . . 43

4.10 Amostras de s(n) (vermelho) e cos Ωpn (azul): ampliacao de exemplo. . . . . . . . . . . . 44

4.11 Estudo de agrupamentos diferentes de l−1. . . . . . . . . . . . . . . . . . . . . . . . . . . 46

4.12 Estudo de agrupamentos diferentes de l0. . . . . . . . . . . . . . . . . . . . . . . . . . . . 46

4.13 Estudo de agrupamentos diferentes de l1. . . . . . . . . . . . . . . . . . . . . . . . . . . . 47

4.14 Estudo de agrupamentos diferentes de l2. . . . . . . . . . . . . . . . . . . . . . . . . . . . 47

5.1 Modulo da transformada de Fourier do sinal de entrada (≈ 1 kHz). . . . . . . . . . . . . . 49

5.2 Modelo em C: modulo da transformada de Fourier de f(n) (≈ 1 kHz). . . . . . . . . . . . 50

5.3 Modelo em MATLAB: modulo da transformada de Fourier de f(n) (≈ 1 kHz). . . . . . . . 51

5.4 Modelo em C: modulo da transformada de Fourier de f(n) (≈ 1 kHz). . . . . . . . . . . . 51

5.5 Modelo em MATLAB: modulo da transformada de Fourier de f(n) (≈ 1 kHz). . . . . . . . 51

5.6 Modelo em C: modulo da transformada de Fourier de x(n) (≈ 1 kHz). . . . . . . . . . . . 52

5.7 Modelo em MATLAB: modulo da transformada de Fourier de x(n) (≈ 1 kHz). . . . . . . . 52

5.8 Modelo em C: modulo da transformada de Fourier de y(n) (1 kHz). . . . . . . . . . . . . . 53

xiv

Page 15: Módulo de Processamento de Sinal para um Amplificador de ...Agradecimentos A conclusao de uma tese marca o fim de uma etapa marcante na vida profissional e pessoal de˜ cada um

5.9 Modelo em MATLAB: modulo da transformada de Fourier de y(n) (≈ 1 kHz). . . . . . . . 53

5.10 Modelo em C: modulo da transformada de Fourier de xf (n) (≈ 1 kHz). . . . . . . . . . . . 54

5.11 Modelo em MATLAB: modulo da transformada de Fourier de xf (n) (≈ 1 kHz). . . . . . . . 54

5.12 Modelo em C: modulo da transformada de Fourier de yf (n) (≈ 1 kHz). . . . . . . . . . . . 54

5.13 Modelo em MATLAB: modulo da transformada de Fourier de yf (n) (≈ 1 kHz). . . . . . . . 55

5.14 Modelo em C: modulo da transformada de Fourier de s(n) (≈ 1 kHz). . . . . . . . . . . . 55

5.15 Modelo em MATLAB: modulo da transformada de Fourier de s(n) (≈ 1 kHz). . . . . . . . 56

5.16 Modelo em C: modulo da transformada de Fourier de q(t) (≈ 1 kHz). . . . . . . . . . . . . 56

5.17 Modelo em MATLAB: modulo da transformada de Fourier de q(t) (≈ 1 kHz). . . . . . . . . 57

5.18 Modelo em C: modulo da transformada de Fourier de q(t) (≈ 10 kHz). . . . . . . . . . . . 58

5.19 Modelo em MATLAB: modulo da transformada de Fourier de q(t) (≈ 10 kHz). . . . . . . . 58

5.20 Modelo em C: modulo da transformada de Fourier de q(t) (≈ 20 kHz). . . . . . . . . . . . 59

5.21 Modelo em MATLAB: modulo da transformada de Fourier de q(t) (≈ 20 kHz). . . . . . . . 59

5.22 Modelo em C: modulo da transformada de Fourier de q(t) (≈ 1 + ≈ 2 kHz). . . . . . . . . 60

5.23 Modelo em MATLAB: modulo da transformada de Fourier de q(t) (≈ 1 + ≈ 2 kHz). . . . . 60

xv

Page 16: Módulo de Processamento de Sinal para um Amplificador de ...Agradecimentos A conclusao de uma tese marca o fim de uma etapa marcante na vida profissional e pessoal de˜ cada um

xvi

Page 17: Módulo de Processamento de Sinal para um Amplificador de ...Agradecimentos A conclusao de uma tese marca o fim de uma etapa marcante na vida profissional e pessoal de˜ cada um

Lista de Acronimos

AEM Analytic Exponential Modulator. xiii, xiv, 7, 17–19, 22, 23, 28, 37–39

CM Click Modulation. xiii, xiv, 1–4, 12, 13, 15–17, 21, 23, 25, 30, 31, 34, 39, 54, 59

DSP Digital Signal Processor. 19, 22, 23, 59

FFT Fast Fourier Transform. 46, 47, 52, 54, 55

FIR Finite Impulse Response. 6, 9, 18, 19, 22, 23, 25, 35

FPGA Field Programmable Gate Array. 2, 22, 23, 37, 59

NPWM Natural-Sampling Pulse Width Modulation. xiii, 1, 13, 14

PCM Pulse Code Modulation. 1, 2, 22, 31

PWM Pulse Width Modulation. 1–3, 10, 11, 13–16, 28, 34, 40, 50, 53

SDM Sigma-Delta Modulation. 1, 13

SNR Signal-to-Noise Ratio. xi, 57, 58

THD Total Harmonic Distortion. xi, 57, 58

UPWM Uniform-Sampling Pulse Width Modulation. xiii, 1, 13, 14

xvii

Page 18: Módulo de Processamento de Sinal para um Amplificador de ...Agradecimentos A conclusao de uma tese marca o fim de uma etapa marcante na vida profissional e pessoal de˜ cada um

xviii

Page 19: Módulo de Processamento de Sinal para um Amplificador de ...Agradecimentos A conclusao de uma tese marca o fim de uma etapa marcante na vida profissional e pessoal de˜ cada um

Capıtulo 1

Introducao

1.1 Motivacao e enquadramento

A codificacao de sinais de audio num formato indicado para amplificacao em potencia e posterior

reproducao tem sido objecto de estudo ha varias decadas, sendo que mais recentemente verifica-se um

progressivo incremento na utilizacao de amplificadores de classe D [AES, 2013]. Esta na sua origem,

entre outras razoes, a crescente utilizacao de dispositivos moveis de reproducao audio que, devido a

limitada autonomia energetica, conferem ao rendimento do tipo de amplificacao uma importancia cada

vez maior. Os andares de classe D possuem um rendimento teorico que pode chegar a 100%, ao

contrario das restantes classes A (µ < 25%), B e AB (µ < 78, 5%) e C (µ < 90%) [Sedra and Smith,

2004], o que torna a sua utilizacao bastante atractiva.

Essa codificacao tem sido feita, em larga escala, recorrendo principalmente a um dos tipos de

modulacao por largura de impulso, ou Pulse Width Modulation (PWM), Natural-Sampling Pulse Width

Modulation (NPWM) ou Uniform-Sampling Pulse Width Modulation (UPWM), e a modulacao Sigma-

Delta, ou Sigma-Delta Modulation (SDM). A principal razao da utilizacao destas duas opcoes e a sim-

plicidade dos circuitos de modulacao e desmodulacao, que favorece nao so o projecto como o fabrico

e a implementacao em circuito integrado. O progresso verificado nos circuitos de andares de classe D,

bem como o crescimento da exigencia do rendimento energetico e de qualidade do sinal, impulsiona-

ram, por conseguinte, a investigacao de metodos de codificacao capazes de satisfazer os requisitos e

acompanhar estes desenvolvimentos.

E neste contexto que surge a modulacao Click (ou Click Modulation (CM)). O artigo que a descreve

em pormenor foi publicado em 1984 por Benjamin F. Logan [Logan, 1984a], tendo o autor proposto,

no mesmo documento, um projecto de implementacao para sinais analogicos. Contudo, so mais tarde

foram publicados os primeiros trabalhos com vista a sua implementacao no contexto de sinais de audio

digitais. Esta nova tecnica de codificacao permite produzir, a partir de um sinal Pulse Code Modulation

(PCM), uma onda do tipo PWM cujo espectro contem diferencas significativas que a tornam muito mais

competitiva em relacao as modulacoes referidas no paragrafo anterior.

Esta dissertacao engloba conhecimentos de varias Areas Cientıficas de Engenharia Electrotecnica e

1

Page 20: Módulo de Processamento de Sinal para um Amplificador de ...Agradecimentos A conclusao de uma tese marca o fim de uma etapa marcante na vida profissional e pessoal de˜ cada um

de Computadores. Da area de Electronica, o processamento digital de sinais, nomeadamente o projecto

e implementacao de filtros, da Transformada de Hilbert e moduladores. Da area de Computadores,

o Projecto de Sistemas Digitais, nomeadamente o desenho de harware especıfico para aplicacoes.

Sao abrangidos ainda conhecimentos de matematica do primeiro ciclo de estudos, nomeadamente

de Calculo (aproximacao de funcoes) e de Analise Numerica (algoritmos de procura de raızes de um

polinomio).

1.2 Metodologia proposta e objectivos

Devido a complexidade das operacoes da CM, principalmente considerando o requisito de funciona-

mento em tempo real, torna-se necessario dividir o trabalho. No contexto desta dissertacao foi definido

que, numa primeira fase, as operacoes matematicas descritas no artigo original seriam convertidas para

uma linguagem de programacao de alto nıvel (MATLAB). Numa segunda fase, a partir da primeira, o

algoritmo seria convertido para uma linguagem de programacao de baixo nıvel, neste caso a linguagem

C. Por fim, proceder-se-ia a sıntese do circuito, primeiro com recurso a hardware configuravel, atraves

de uma Field Programmable Gate Array (FPGA), e depois a sua implementacao em circuito integrado.

O objectivo incial desta dissertacao consistiu em realizar a segunda fase descrita acima, ou seja,

projectar um sistema electronico de processamento de sinal de vırgula fixa com vista a implementacao

da CM em tempo real numa FPGA, partindo do modelo em MATLAB. Conforme referido anteriormente,

como passo intermedio seria necessario desenvolver um modelo da modulacao Click em C. No de-

correr deste passo tornou-se perceptıvel que a complexidade exigida para o projecto deste modelo e

suficientemente grande para ser considerado como foco principal da dissertacao, pelo que o objectivo

inicial de implementacao em FPGA foi alterado para o referido desenho do modelo em linguagem C.

O sistema tem como entrada um sinal PCM de 16 bit amostrado a 48 kHz, e como resultado um

conjunto de ciclos de trabalho (duty cycles) de uma onda do tipo PWM com resolucao de 16 bit.

1.3 Estrutura do documento

No capıtulo 2 e feita uma descricao bloco a bloco, de forma essencialmente esquematica, da CM

- subseccoes 2.1.2 a 2.1.5. Na seccao 2.2 e dada tambem uma explicacao sucinta dos dois tipos de

modulacao referidos na seccao 1.1 e e feita uma comparacao das mesmas com a CM.

No capıtulo 3 sao explicadas as diversas formas de implementacao da CM ja realizadas, sendo estas

separadas em dois grupos: implementacoes em software (secccao 3.2) e implementacoes em hardware

(secccao 3.3). Na seccao 3.4 e descrita resumidamente a implementacao da CM em MATLAB.

No capıtulo 4 e exposta a parte principal do trabalho desenvolvido na dissertacao. Na seccao 4.1

sao descritos os aspectos gerais da implementacao, nas seccoes 4.2 e 4.3 sao resumidos conceitos

relacionados com operacoes e operandos de vırgula fixa e na seccao 4.4 sao detalhados os formatos

dos ficheiros que constituem entradas do sistema. Por fim, tendo como referencia a divisao feita por

blocos na seccao 2.1, sao expostos nas seccoes 4.5 a 4.8 os detalhes da implementacao de cada um.

2

Page 21: Módulo de Processamento de Sinal para um Amplificador de ...Agradecimentos A conclusao de uma tese marca o fim de uma etapa marcante na vida profissional e pessoal de˜ cada um

No capıtulo 5 sao apresentados os resultados do trabalho. A seccao 5.1 descreve o sinal de entrada

gerado para gerar os resultados bloco a bloco do sistema, que sao exibidos nas seccoes 5.2 a 5.5.

Em 5.6 sao apresentados resultados com varios sinais de entrada de caracterısticas diferentes do

utilizado anteriormente. Na seccao 5.7 sao apresentados alguns dados adicionais e sao comentados

os resultados gerais da implementacao.

Por fim, no capıtulo 6, mais concretamente na seccao 6.1, sao referidas as conclusoes do trabalho

desenvolvido. Na seccao seguinte, 6.2, sao propostos varios topicos de desenvolvimento futuro.

3

Page 22: Módulo de Processamento de Sinal para um Amplificador de ...Agradecimentos A conclusao de uma tese marca o fim de uma etapa marcante na vida profissional e pessoal de˜ cada um

4

Page 23: Módulo de Processamento de Sinal para um Amplificador de ...Agradecimentos A conclusao de uma tese marca o fim de uma etapa marcante na vida profissional e pessoal de˜ cada um

Capıtulo 2

Modulacao Click

2.1 Aspectos teoricos

2.1.1 Introducao

A CM, conforme referido na seccao 1.1, constitui um processo para gerar uma onda do tipo PWM

que servira como drive para dispositivos inseridos numa montagem amplificadora de classe D. O artigo

original, em conjunto com os artigos complementares do mesmo autor [Logan, 1977] [Logan, 1978]

[Logan, 1984b] [Logan, 1984c] [Logan, 1984d], foi escrito numa perspectiva de sıntese, ou seja, partindo

de um conjunto de condicoes iniciais, era explicitada a formulacao do problema, cuja resolucao era

revelada passo a passo. No contexto desta dissertacao nao se justifica uma abordagem deste genero,

pelo que para uma explicacao mais pormenorizada aconselha-se a consulta das referencias indicadas

anteriormente.

Apesar da implementacao ser feita para sinais digitais, a CM foi originalmente concebida para o

processamento de um qualquer sinal analogico passa-banda, isto e, um sinal real, contınuo na ampli-

tude e no tempo e com conteudo espectral limitado entre duas frequencias finitas. Assim, para este

capıtulo, toma-se como notacao para o sinal de entrada f(t), estando o seu espectro (para frequencias

positivas) contido no intervalo [ΩL,ΩH ], com 0 < ΩL < ΩH . Conforme referido no capıtulo introdutorio,

a CM produz um sinal equivalente a uma onda do tipo PWM, presente como q(t) na figura 2.1, cujo

espectro pode ser dividido essencialmente em 3 partes, conforme o esboco apresentado.

Figura 2.1: Esboco do espectro de um sinal q(t) gerado pela CM [Oliva et al., 2005].

5

Page 24: Módulo de Processamento de Sinal para um Amplificador de ...Agradecimentos A conclusao de uma tese marca o fim de uma etapa marcante na vida profissional e pessoal de˜ cada um

Na primeira parte, constituıda pelo conteudo espectral entre ΩL e ΩH , esta presente o sinal original

que se quer modular. Entre ΩH e ΩS , a banda de guarda (ou guardband), nao ha, idealmente, conteudo

espectral. A partir de ΩS encontram-se componentes de alta frequencia que constituem o resultado das

operacoes efectuadas pela modulacao, possibilitando a formacao de uma onda rectangular de duty

cycles variaveis, com frequencia de comutacao 2Ωp, que pode ser da mesma ordem de grandeza da

frequencia maxima do sinal de entrada, ΩH .

Um sinal com estas caracterısticas torna-se ideal para ser alimentado em potencia por um amplifi-

cador de classe D. Assumindo para o andar de potencia um rendimento teorico de 100% e introducao

de distorcao nula, a desmodulacao pode ser feita recorrendo a um filtro passa-baixo com uma carac-

terıstica semelhante a que se encontra referenciada na figura 2.1 como HA(f), sendo o sinal f(t) recu-

perado na sua ıntegra. Na figura 2.2 apresenta-se o esquema da cadeia de processamento completa

que servira de base para a explicacao teorica nas proximas subseccoes.

Figura 2.2: Cadeia de processamento da CM - teoria [Oliva et al., 2005].

O processamento de sinal envolve operacoes com aritmetica complexa, tanto do ponto de vista

teorico como do ponto de vista computacional. Dado que o principal objectivo e o projecto em hardware

da CM, e de forma a proporcionar uma perspectiva mais concreta da figura anterior, apresenta-se na

figura 2.3 a divisao por blocos da implementacao pratica da modulacao. Conforme referido na seccao

1.3, a explicacao dos modulos desta figura sera dada em detalhe no capıtulo 4.

Figura 2.3: Cadeia de processamento da CM - hardware.

Na figura 2.4 apresenta-se um esboco de um espectro possıvel para o sinal f(t). Como se pode

verificar, sendo f(t) um sinal real, a sua transformada de Fourier possui simetria hermitiana, isto e,

possui simetria par na parte real e simetria ımpar na parte imaginaria.

Nas subseccoes seguintes (2.1.2 a 2.1.5) sera dada uma explicacao teorica sucinta do funciona-

mento da CM baseada no artigo original [Logan, 1984a] e num white paper da Texas Instruments

[Oliva et al., 2005], de onde foi extraıdo parte do texto. Para tal, o algoritmo foi dividido em quatro partes

6

Page 25: Módulo de Processamento de Sinal para um Amplificador de ...Agradecimentos A conclusao de uma tese marca o fim de uma etapa marcante na vida profissional e pessoal de˜ cada um

Figura 2.4: Modulo da transformada de Fourier de f(t): exemplo [Oliva et al., 2005].

- descritas nas supra-referidas subseccoes -, agregando cada uma delas operacoes correspondentes

aos blocos da figura 2.2. Estas operacoes nao constituem necessariamente implementacoes directas

das mesmas, servem apenas o proposito de demonstrar de forma sequencial as modificacoes que o

sinal sofre. Assim, as subseccoes seguintes agrupam-se de acordo com o esquema apresentado na

figura 2.3.

2.1.2 Transformada de Hilbert

O primeiro bloco de operacoes pretende dar origem a um sinal que contenha componentes apenas

da parte positiva do espectro, ou seja, um sinal analıtico, doravante designado por fA(t). Por definicao,

o sinal analıtico e um sinal complexo, que neste caso tomara a forma

fA(t) = f(t) + jf(t), (2.1)

onde f(t) e a transformada de Hilbert do sinal de entrada, que constitui a principal operacao deste

bloco, que e obtida atraves da convolucao do mesmo com o sinal 1πt :

f(t) = f(t) ∗ 1

πt. (2.2)

Para a adicao das duas parcelas de fA(t) e ainda necessario introduzir um atraso ( ∆ ) no sinal de

entrada correspondente ao tempo de calculo da convolucao. O esquema completo do bloco encontra-se

na figura 2.5.

Figura 2.5: Esquema do bloco do calculo de fA(t) [Oliva et al., 2005].

Da convolucao em (2.2) resulta um sinal cujo espectro na parte positiva do eixo de frequencias

7

Page 26: Módulo de Processamento de Sinal para um Amplificador de ...Agradecimentos A conclusao de uma tese marca o fim de uma etapa marcante na vida profissional e pessoal de˜ cada um

se mantem inalterado, mas na parte negativa e reflectido em relacao ao mesmo eixo, conforme se

evidencia na figura 2.6.

Figura 2.6: Modulo da transformada de Fourier de f(t) [Oliva et al., 2005].

Da soma dos sinais f(t) e f(t) - cujos espectros se encontram representados novamente na fi-

gura 2.7 - facilmente se conclui que o espectro de fA(t) tera apenas componentes no semieixo de

frequencias positivas, tanto na parte real como na parte imaginaria, ou seja, fA(t) e um sinal analıtico.

(a) Modulo da transformada de Fourierde f(t).

(b) Modulo da transformada de Fourierde f(t).

(c) Modulo da trans-formada de Fourier defA(t).

Figura 2.7: Modulo da transformada de Fourier dos varios sinais envolvidos na criacao de fA(t) [Olivaet al., 2005].

E de notar que desta operacao nao resulta qualquer perda de informacao. Como f(t) e um sinal

real, o seu espectro possui simetria hermitiana. Por conseguinte, a componente do espectro presente

no semieixo negativo de frequencias, tanto na parte real como na parte imaginaria, esta tambem pre-

sente na parte positiva, pelo que e possıvel recuperar integralmente a informacao do sinal original.

O bloco de Hilbert pode ser implementado recorrendo ao desenho de dois filtros de resposta ao

impulso finita [Finite Impulse Response (FIR)] h1(n) e h2(n) que, tendo ambos como entrada o sinal

original digital, f(n), produzem cada um o seu sinal de saıda, yr(n) e yi(n), que sao transformada de

Hilbert um do outro [Oppenheim and Schafer]. Os coeficientes dos filtros podem ser obtidos por varios

metodos, entre eles a amostragem da resposta em frequencia, equiripple ou truncatura de resposta

ao impulso. O modulo da resposta em frequencia de ambos apresenta a caracterıstica de um filtro

passa-banda, sendo a fase da resposta em frequencia linear ao longo de toda a banda de passagem.

8

Page 27: Módulo de Processamento de Sinal para um Amplificador de ...Agradecimentos A conclusao de uma tese marca o fim de uma etapa marcante na vida profissional e pessoal de˜ cada um

A sequencia a tempo discreto

fA(n) = fAr (n) + jfAi(n), (2.3)

com parte real

fAr (n) = f(n) ∗ h1(n) (2.4)

e imaginaria

fAi(n) = f(n) ∗ h2(n), (2.5)

constitui a saıda do bloco de Hilbert.

2.1.3 Modulador exponencial analıtico e filtragem

O sinal fA(t), constituıdo pelas partes real e imaginaria de acordo com a equacao (2.1), e colocado

a entrada do bloco Analytic Exponential Modulator (AEM), que produz o sinal

zf (t) = z(t) ∗ hA(t) = e−jfA(t) ∗ hA(t), (2.6)

e cujo esquema se encontra na figura 2.8. E constituıdo por um bloco que calcula uma exponencial

complexa de base e em serie com um filtro passa-baixo com resposta ao impulso hA(t).

Figura 2.8: Esquema do bloco AEM [Oliva et al., 2005].

Partindo da igualdade (2.1) podemos desenvolver o expoente da equacao (2.6),

− jfA(t) = −j[f(t) + jf(t)] = −jf(t)− j2f(t) = f(t)− jf(t), (2.7)

ficando entao com

z(t) = e−jfA(t) = ef(t)−jf(t). (2.8)

O sinal z(t) tambem e analıtico, ou seja, complexo e com transformada de Fourier apenas no semi-

eixo positivo de frequencias. Contudo, o conteudo espectral estende-se por toda a gama de frequencias

(positivas) ate +∞, conforme ilustrado na figura 2.9.

Para garantir que o espectro de f(t) continua a poder ser recuperado a partir de z(t) e necessario

que a extensao analıtica de z(t), z(τ), com τ ∈ C, nao contenha zeros em Imτ ≥ 0. Para tal, e

9

Page 28: Módulo de Processamento de Sinal para um Amplificador de ...Agradecimentos A conclusao de uma tese marca o fim de uma etapa marcante na vida profissional e pessoal de˜ cada um

Figura 2.9: Modulo da transformada de Fourier de z(t) [Oliva et al., 2005].

condicao necessaria e suficiente que a amplitude do sinal de entrada seja limitada: |f(t)| < π2 [Logan,

1984a].

Dada a impossibilidade de usufruir de toda a banda de frequencias para a operacao de exponenciacao,

e essencial proceder-se a filtragem passa-baixo de z(t), cuja resposta ao impulso e definida por hA(t).

Atraves de um filtro de frequencia de corte ΩS , e com uma atenuacao suficientemente grande a partir

de uma determinada frequencia ΩU , obtemos o sinal

zf (t) =

∫ +∞

−∞z(τ)hA(t− τ)dτ, (2.9)

com 0 < ΩL < ΩH < ΩS < ΩU < +∞, e cujo espectro se encontra na figura 2.10.

Figura 2.10: Modulo da transformada de Fourier de zf (t) [Oliva et al., 2005].

E pertinente recordar que o sinal de saıda do filtro tambem e analıtico (e, portanto, complexo),

mas se for cumprida a condicao |f(t)| < π2 a sua extensao analıtica tambem nao possui zeros para

Imτ ≥ 0, pelo que continua a ser possıvel recuperar o sinal f(t) a partir de zf (t). Adicionalmente, as

transformadas de Fourier de log[zf (t)] e fA(t) coincidem no intervalo ]−∞,ΩS ] [Oliva et al., 2005].

A implementacao pratica do calculo da exponencial complexa de −fA(t) pode ser feita atraves da

expansao em serie de Taylor da funcao em torno de 0 (ou serie de MacLaurin) com um numero de

coeficientes finitos:

e−jfA(t) =

N−1∑k=0

(−jfA(t))k

k!= 1− jfA(t)− [fA(t)]2

2!+ j

[fA(t)]3

3!+ ... (2.10)

A aproximacao da funcao exponencial por este metodo tem como consequencia um aumento na

banda do espectro do sinal resultante por um factor deN [Domingues et al., 2014]. Como consequencia

desse facto, para que seja cumprido o criterio de Nyquist e necessario interpolar o sinal com o mesmo

factor antes da operacao de exponenciacao. A escolha do seu valor deve ter em conta a precisao

desejada para o calculo, por um lado, e por outro os recursos computacionais disponıveis. Acresce

ainda referir que, a semelhanca do bloco de Hilbert, o calculo das partes real e imaginaria e feito em

separado, e que este tem de ter em conta que o sinal de entrada, fA(t), tem parte real e imaginaria. A

10

Page 29: Módulo de Processamento de Sinal para um Amplificador de ...Agradecimentos A conclusao de uma tese marca o fim de uma etapa marcante na vida profissional e pessoal de˜ cada um

aproximacao de uma exponencial real e feita de forma semelhante a da exponencial complexa:

ef(t) =

N−1∑k=0

(f(t))k

k!= 1 + f(t) +

[f(t)]2

2!+

[f(t)]3

3!+ ... (2.11)

Os coeficientes dos filtros FIR anti-aliasing com resposta ao impulso hA(t) podem ser obtidos

atraves de qualquer um dos metodos ja referidos - amostragem da resposta em frequencia, equirip-

ple ou truncatura de resposta ao impulso. Em ambos os filtros (um para a parte real e outro para a

parte imaginaria) o modulo da resposta em frequencia apresenta uma caracterıstica passa-baixo com

os parametros apresentados no paragrafo anterior a figura 2.10. A fase da resposta em frequencia e

linear ao longo de toda a banda de passagem. O sinal de saıda tem a forma

zf (n) = xf (n) + jyf (n), (2.12)

sendo xf (n) a parte real e yf (n) a parte imaginaria.

2.1.4 Modulador em quadratura

Depois de filtrado, o sinal zf (t), cujo espectro, recorde-se, possui componentes apenas na parte

positiva, e modulado de forma a que o seu espectro fique contido num determinado intervalo [−Ωp,Ωp].

O esquema completo deste bloco pode ser visto na figura 2.11.

Figura 2.11: Esquema do bloco Modulador em quadratura [Oliva et al., 2005].

Em termos matematicos, tal como se pode ver na figura, procede-se ao calculo de z∗f (t), complexo

conjugado de zf (t), a multiplicacao deste pela exponencial complexa ejΩpt e, por ultimo, a extraccao da

parte real do resultado. Sabendo que

zf (t) = xf (t) + jyf (t), (2.13)

tem-se entao

s(t) = Rez∗f (t)ejΩpt = xf (t) cos(Ωpt) + yf (t) sin(Ωpt), (2.14)

que corresponde a estrutura de uma modulacao em quadratura e que e equivalente a expressao

s(t) = |zf (t)| cos(Ωpt− argzf (t)). (2.15)

A escolha do valor de Ωp constitui o aspecto mais importante deste bloco. O seu valor tem, por um

11

Page 30: Módulo de Processamento de Sinal para um Amplificador de ...Agradecimentos A conclusao de uma tese marca o fim de uma etapa marcante na vida profissional e pessoal de˜ cada um

lado, de ser maior do que ΩS , para que nao introduza componentes na banda de interesse do sinal,

e, por outro, o menor possıvel, para nao aumentar em demasia a frequencia de comutacao da onda

PWM final, que, como se vera, e igual a 2Ωp. Por conseguinte, o intervalo de valores [ΩS ,ΩU ] revela-se

adequado para Ωp, ou seja, Ωp poder ser tal que seja satisfeita a condicao

Ωp ≥ΩU + ΩS

2. (2.16)

O sinal s(t) e definido pelos seus zeros que, se for cumprida a restricao |f(t)| < π2 , sao simples

e reais, e estao entrelacados com os zeros de sin(Ωpt). O posicionamento dos mesmos e de vital

importancia para o processamento, pois e nele que esta codificada a informacao que sera utilizada

para formar a onda do tipo PWM q(t), referida na subseccao 2.1.1.

O espectro de s(t) esta esquematizado na figura 2.12, e dado s(t) tratar-se de um sinal real, o

seu espectro tem simetria hermitiana e possui componentes nos semieixos positivo e negativo de

frequencias.

Figura 2.12: Modulo da transformada de Fourier de s(t) [Oliva et al., 2005].

A concretizacao deste bloco passa pelo calculo do equivalente discreto da equacao (2.14):

s(n) = xf (n) cos(Ωpn) + yf (n) sin(Ωpn) (2.17)

O sinal s(n) ja e um sinal real, que engloba todas as operacoes descritas para este bloco. Os sinais

cos(Ωpn) e sin(Ωpn) sao obtidos atraves da amostragem uniforme dos seus equivalentes contınuos. Por

simplificacao, considera-se que ambos os sinais tem fase inicial nula, embora a operacao seja valida

para qualquer valor, desde que os sinais estejam em quadratura. O sinal de saıda do bloco, s(n), a

semelhanca do seu equivalente contınuo, s(t), tambem e definido pelas suas passagens por zero.

2.1.5 Passagem por zero

Conforme referido na subseccao anterior, se for cumprida a restricao |f(t)| < π2 , os zeros de s(t)

estao posicionados entre os zeros de sin(Ωpt), o que faz com que, por cada perıodo TP = 1Ωp

, com

Ωp = 2πfp, haja pelo menos quatro zeros, sendo dois deles no inıcio e a meio do perıodo em(kΩp e

(k + 12 )Ωp

)e os outros dois nos intervalos

]kΩp, (k + 1

2 )Ωp[

e](k + 1

2 )Ωp, (k + 1)Ωp[, resultantes das

operacoes da modulacao.

O sinal s(t) e novamente multiplicado por cos(Ωpt), dando origem ao sinal u(t). De seguida e calcu-

lado o seu logaritmo, multiplicado por j e retirada a parte real, resultando este processo no sinal v(t).

O esquema de processamento deste bloco encontra-se na figura 2.13.

12

Page 31: Módulo de Processamento de Sinal para um Amplificador de ...Agradecimentos A conclusao de uma tese marca o fim de uma etapa marcante na vida profissional e pessoal de˜ cada um

Figura 2.13: Esquema do bloco Passagem por zero [Oliva et al., 2005].

No primeiro bloco, que tem como saıda u(t), o espectro de s(t) sofre um novo deslocamento, ficando

confinado ao intervalo [0, 2Ωp]. Conforme e possıvel constatar atraves da comparacao das figuras 2.10

e 2.14, no intervalo ]−∞,ΩS ] os espectros de u(t) e de zf (t) coincidem.

Figura 2.14: Modulo da transformada de Fourier de u(t) [Oliva et al., 2005].

Tambem no mesmo intervalo explicitado anteriormente os espectros de jlog[u(t)], jlog[zf (t)] e fA(t)

sao coincidentes, e, por conseguinte, as transformadas de Fourier de v(t) e de f(t) sao iguais no

intervalo [−ΩS ,ΩS ], conforme se constata atraves da comparacao das figuras 2.4 e 2.15.

(a) Parte imaginaria (b) Parte real, ou modulo da transformada de Fourier de v(t)

Figura 2.15: Modulo da transformada de Fourier de jlog[u(t)] [Oliva et al., 2005].

A partir deste momento, apos uma filtragem passa-baixo do sinal v(t), que a semelhanca de s(t)

tambem e unicamente definido pelas suas passagens por zero, o sinal f(t) e recuperado na sua totali-

dade. O filtro possui uma caracterıstica semelhante a da figura 2.16 (a). Apos a filtragem, o sinal f(t) e

recuperado, apresentando um espectro igual ao da figura 2.4, conforme se constata na figura 2.16 (b):

(a) Possıvel caracterıstica do filtro passa-baixo (desmodulador)[Oliva et al., 2005].

(b) Espectro do sinal v(t) filtrado [Oliva et al., 2005].

Figura 2.16: Caracterıstica do filtro passa-baixo e modulo da transformada de Fourier de jlog[u(t)][Oliva et al., 2005].

No entanto, para gerar um sinal do tipo PWM e necessario subtrair o sinal v(t) a um sinal do tipo

dente-de-serra, σ(t) com frequencia de 2Ωp. Na figura 2.17 apresentam-se esbocos de sinais relevantes

para o ultimo bloco de processamento.

13

Page 32: Módulo de Processamento de Sinal para um Amplificador de ...Agradecimentos A conclusao de uma tese marca o fim de uma etapa marcante na vida profissional e pessoal de˜ cada um

Figura 2.17: Esboco de alguns sinais da CM [Oliva et al., 2005].

E desta forma gerada a onda q(t), que corresponde a um sinal binario, passıvel de ser amplificado

em potencia por um andar de classe D e cujo espectro tem a estrutura igual ao da figura 2.1.

A concretizacao deste bloco passa por encontrar os instantes de passagem por zero de s(n), sinal

de saıda do bloco anterior, que podem nao corresponder necessariamente a instantes discretos inteiros,

conforme referido anteriormente. As duas vias mais comuns para implementar este bloco passam por

duas estrategias distintas.

Uma consiste na interpolacao do sinal por inteiro, aumentando a sua frequencia de amostragem,

para que seja apenas necessario apurar a amostra mais proxima de 0 e recolher o instante em que

esta ocorre. O factor de sobreamostragem sera tanto maior quanto a precisao que se deseje obter.

Noutra estrategia, procede-se a localizacao dos zeros de s(n) a partir da mudanca de sinal das suas

amostras, numa primeira fase. Depois, a partir de um determinado numero de pontos seleccionados, e

gerada uma funcao interpoladora - normalmente um polinomio - que permite obter pontos intermedios

no intervalo que contem a mudanca de sinal. Por ultimo, com recurso a metodos de procura de raızes,

como o metodo da bisseccao ou o metodo de Newton (entre outros), obtem-se o instante pretendido.

14

Page 33: Módulo de Processamento de Sinal para um Amplificador de ...Agradecimentos A conclusao de uma tese marca o fim de uma etapa marcante na vida profissional e pessoal de˜ cada um

2.2 Comparacao com outras modulacoes

2.2.1 Introducao

Em aplicacoes audio, as modulacoes utilizadas para alimentar um andar de classe D tem de apre-

sentar idealmente cinco caracterısticas [Domingues et al., 2014]:

• o sinal resultante tem de ser binario no domınio do tempo;

• a frequencia de comutacao do mesmo sinal tem de ser a mais baixa possıvel de forma a minimizar

as perdas de comutacao no andar de potencia;

• a desmodulacao tem de ser feita recorrendo apenas a um filtro passa-baixo;

• no domınio da frequencia nao deve haver distorcao na banda que contem a informacao do sinal

original;

• de forma a facilitar a especificacao do filtro de desmodulacao, deve haver uma separacao en-

tre a referida banda de interesse do sinal e os componentes de alta frequencia resultantes da

modulacao.

O sinal gerado pela CM e do tipo PWM, ou seja, uma onda binaria rectangular com duty cycles

variaveis. A sua formacao e complexa, como visto na seccao 2.1. Ha, contudo, princıpios e cir-

cuitos substancialmente mais simples capazes de gerar sinais deste tipo, expostos sucintamente na

subseccao 2.2.2. Na subseccao 2.2.3 e tambem explicada de forma abreviada a modulacao Sigma-

Delta (SDM), que contitui uma melhoria em relacao as modulacoes PWM tradicionalmente utilizadas.

Por fim, ambas sao comparadas com a CM na subseccao 2.2.4.

2.2.2 Modulacoes PWM

Os dois principais tipos de modulacao PWM sao a UPWM e a NPWM. Na figura 2.18 pode ser visto

o esquema de implementacao da modulacao UPWM.

UPWMInput

Carrier

S/H

Figura 2.18: Circuito de implementacao da UPWM [Domingues et al., 2015].

Neste tipo de modulacao, o sinal de entrada analogico e amostrado numa unidade de amostragem

e retencao (sample-and-hold), que colhe uma amostra o ritmo de um sinal de relogio (que na figura

aparece associado a onda modulada carrier ), mantendo-o a saıda do bloco durante todo o perıodo de

amostragem. Durante esse intervalo, a amostra recolhida do sinal de entrada e a onda portadora (que

15

Page 34: Módulo de Processamento de Sinal para um Amplificador de ...Agradecimentos A conclusao de uma tese marca o fim de uma etapa marcante na vida profissional e pessoal de˜ cada um

normalmente e um sinal triangular ou dente-de-serra) sao comparados. O resultado dessa comparacao

tambem se mantem durante o perıodo de amostragem, sendo a onda PWM de saıda formada pelos

sucessivos resultados das comparacoes. Quanto maior a frequencia com que os resultados sao com-

parados, melhor o resultado da modulacao, mas maiores as perdas de comutacao dos dispositivos as

produzem.

Na figura 2.19 e apresentado o espectro de uma onda PWM gerada atraves de UPWM, em que o

sinal modulante e uma onda sinusiodal de 1 kHz e a onda portadora tem a frequencia de 48 kHz.

101

102

103

104

105

-150

-100

-50

0

Freq [Hz]

MA

G [

dB]

Figura 2.19: Espectro de uma onda UPWM com entrada sinusoidal de 1 kHz [Domingues et al., 2015].

E possıvel verificar a existencia de harmonicas do sinal modulante dentro da banda audio acima do

patamar de -50 dB em 2 kHz, bem como uma harmonica acima de -75 dB a 3 kHz. De facto, no caso

deste tipo de modulacao, a distorcao harmonica do sinal de entrada e o factor que mais contribui para

a degradacao do sinal [Domingues et al., 2015]. Este problema e contornado principalmente com a

elevada frequencia de amostragem do sinal de entrada, cujo projecto, para alem de nao ser simples de

implementar, nao garante um sinal livre de harmonicas na banda de interesse.

No caso da NPWM, o sinal de entrada e a onda modulada sao postos directamente a entrada

do comparador, nao recorrendo a amostragem e retencao do sinal. Na figura 2.20 pode ser visto o

esquema desta modulacao.

NPWM

Input

Carrier

Figura 2.20: Circuito de implementacao da NPWM [Domingues et al., 2015].

Na figura 2.21 e apresentado o espectro de uma onda PWM gerada atraves de NPWM, em que o

sinal modulante e uma onda sinusoidal de 1 kHz e a onda portadora tem a frequencia de 48 kHz. Para

o caso especıfico desta frequencia, o resultado apresentado e substancialmente melhor que a UPWM,

apresentando apenas uma harmonica a 2 kHz ligeiramente acima do patamar de -100 dB.

No entanto, no caso deste tipo de modulacao e ao contrario da UPWM, o tipo distorcao mais pre-

sente e a distorcao causada pela intermodulacao, ou seja, pelas harmonicas dos produtos dos dois

16

Page 35: Módulo de Processamento de Sinal para um Amplificador de ...Agradecimentos A conclusao de uma tese marca o fim de uma etapa marcante na vida profissional e pessoal de˜ cada um

101

102

103

104

105

-150

-100

-50

0

Freq [Hz]

MA

G [

dB]

Figura 2.21: Espectro de uma onda NPWM com entrada sinusoidal de 6 kHz [Domingues et al., 2015].

sinais [Domingues et al., 2015]. Para melhor demonstrar esse efeito, apresenta-se na figura 2.22 o es-

pectro de uma onda NPWM gerada a partir de um sinal de entrada de 6 kHz. Nela e possıvel observar

as referidas componentes, cujas frequencias se encontram dentro da banda de audio.

101

102

103

104

105

106

-150

-100

-50

0

Freq [Hz]

MA

G [

dB]

Figura 2.22: Espectro de uma onda NPWM com entrada sinusoidal de 6 kHz [Domingues et al., 2015].

Para diminuir este tipo de distorcao tem de se aumentar de forma bastante significativa a frequencia

da onda modulada, para a ordem das centenas de kHz. Tal solucao impoe que para a utilizacao da

modulacao se recorra a dispositivos com capacidade para funcionar a altas frequencias, sem contudo

ter demasiadas perdas por comutacao. Esta via tem custos elevados e, tal como a UPWM nao garante

na desmodulacao um sinal inteiramente limpo de harmonicas.

2.2.3 Modulacao Sigma-Delta

De forma a diminuir ambos os tipos de distorcao sem recorrer a um aumento incomportavel, em

termos praticos, de Ωp, e utilizada a modulacao sigma-delta, Σ∆, tambem amplamente usada como

conversor analogico-digital. Nesse contexto, o sinal de entrada f(t) e amostrado e quantificado, sendo

o sinal de saıda (qΣ∆

(t)) um bitstream com palavras de n bit, sendo n o numero de bit que representa

cada amostra de f(t), que por sua vez define o numero de andares de quantificacao que se deseja

obter (2n). No contexto da amplificacao em classe D, que, conforme referido anteriormente, so faz

sentido assumir que qΣ∆(t) seja uma onda binaria, o que implica n = 1.

Esta modulacao faz uso da integracao do erro entre o sinal de entrada (original) e o sinal de saıda

- sinal analogico identico ao de entrada, mas gerado a partir de um conversor digital-analogico de

17

Page 36: Módulo de Processamento de Sinal para um Amplificador de ...Agradecimentos A conclusao de uma tese marca o fim de uma etapa marcante na vida profissional e pessoal de˜ cada um

1 bit que tem como entrada a onda qΣ∆

(t) - para diminuir o patamar de ruıdo atraves do efeito de

noise shaping. Este efeito caracteriza-se pela transferencia do ruıdo branco de quantificacao em bai-

xas frequencias, ou frequencias na banda de interesse do sinal, para ruıdo em altas frequencias. O

esquema do circuito Σ∆ de primeira ordem encontra-se na figura 2.23:

Figura 2.23: Esquema da modulacao Σ∆ de primeira ordem.

Um circuito Σ∆ pode ser de ordem 1 ou superior, sendo que a ordem se refere ao numero de integra-

dores presentes. Embora se constate que a Σ∆ apresenta melhores resultados do que as modulacoes

PWM, dada a sua topologia de malha fechada, circuitos a partir de 3a ordem podem apresentar pro-

blemas de estabilidade, o que pode constituir uma restricao de projecto, pois apenas a partir dessa

ordem se obtem resultados com qualidade superior as modulacoes PWM que justifiquem o seu uso.

Adicionalmente, o circuito e, habitualmente, pelo menos duas vezes maior em termos de area utilizada.

2.2.4 Conclusoes

Todos as modulacoes descritas anteriormente cumprem, pelo menos com uma aproximacao sufici-

entemente boa, as condicoes listadas em 2.2.1. No entanto, a CM apresenta tres vantagens em relacao

as modulacoes anteriormente descritas.

Primeiramente, em termos teoricos nao ha distorcao algorıtmica inerente a modulacao. Teorica-

mente, se todos os componentes tiverem resolucao infinita, o sinal q(t) tem em banda de base o sinal

f(t) inalterado, sendo o seu espectro constituıdo pelas tres partes apresentadas na figura 2.1. Tanto

nas modulacoes PWM como na Σ∆ a parte do espectro correspondente a f(t) sofre distorcao, mesmo

com componentes perfeitos.

Em segundo lugar, a onda qCM

(t) produzida pela CM pode ter uma frequencia de comutacao 2ΩC

bastante inferior a qPWM

(t) e qΣ∆(t), da ordem de ΩH . Tal caracterıstica introduz uma melhoria subs-

tancial no andar de amplificacao em potencia. No caso da classe D, a quase totalidade das perdas

ocorre na transicao entre nıveis logicos (perdas de comutacao), que depende linearmente de 2ΩC .

Consequentemente, comparativamente as outras modulacoes, a potencia de perdas causadas pela

amplificacao da onda qCM

(t) pode ser cinco vezes inferior, gracas a esta caracterıstica da onda.

18

Page 37: Módulo de Processamento de Sinal para um Amplificador de ...Agradecimentos A conclusao de uma tese marca o fim de uma etapa marcante na vida profissional e pessoal de˜ cada um

Por ultimo, o algoritmo da CM apresenta uma topologia de malha aberta, o que a partida a define

como inerentemente estavel, ao contrario da modulacao Σ∆.

A principal desvantagem da CM e a complexidade de operacoes, tanto a nıvel teorico como pratico,

conforme e possıvel constatar pela explicacao dada na seccao 2.1, e traduz-se nao so em termos

algorıtmicos como de exigencia computacional. A razao pela qual a modulacao ainda nao foi testada

e implementada em larga escala e de ordem tecnologica, pois ate ha bem pouco tempo nao havia

dispositivos capazes de a sintetizar, sobretudo com capacidade de produzir resultados passıveis de

serem utilizados em tempo real.

19

Page 38: Módulo de Processamento de Sinal para um Amplificador de ...Agradecimentos A conclusao de uma tese marca o fim de uma etapa marcante na vida profissional e pessoal de˜ cada um

Capıtulo 3

Estado da arte

3.1 Introducao

Neste capıtulo serao expostas varias tentativas de implementacao da CM. Estas podem ser dividi-

das em dois grandes grupos, principalmente devido aos diferentes formatos do projecto: implementacao

em software ou implementacao em hardware. E ainda apresentado o modelo MATLAB da CM.

Para alem de uma comparacao de resultados obtidos nos diversos projectos, que por forca das

diferencas nos testes nao sao integralmente comparaveis, e referenciada a forma de concretizacao

dos diferentes modulos descritos no capıtulo anterior. No entanto, em alguns casos nao foi possıvel

obter a informacao de como foi realizado o bloco em causa, dado que esta nao foi disponibilizada nas

publicacoes consultadas. A notacao usada para designar os diversos sinais ao longo da cadeia de

processamento sera igual a da seccao 2.1.

3.2 Modulacao Click em software

Ao longo de varios anos (2005, 2008 e 2013) foram publicados tres artigos pelos mesmos autores,

nos quais sao expostos varios projectos em software. Nos tres casos a implementacao da CM e offline,

isto e, nao ha requisitos limite de baixa latencia ou baixo tempo de execucao do algoritmo. O objectivo

destes trabalhos foi essencialmente validar a execucao das operacoes do algoritmo em software. Dado

que os resultados apresentados, segundo os autores, foram obtidos atraves de simulacoes feitas a partir

de um software de codificacao, e embora nao esteja explıcito em todos os artigos, e legıtimo assumir

que os operandos sao processados, salvo indicacao em contrario, em vırgula flutuante (floating point

ou float) de precisao simples, visto nao haver qualquer referencia a utilizacao de vırgula fixa nem a uma

resolucao numerica associada.

O primeiro projecto foi simulado com recurso a ferramenta MATLAB [Oliva et al., 2005], e foi dimensi-

onado para um sinal com largura de banda unilateral ate 10 kHz, excluindo muito baixas frequencias (<

20 Hz), e para uma guardband entre os 10 kHz e os 12 kHz. Nao ha informacao acerca da realizacao

do bloco de Hilbert nem do bloco AEM e filtragem. A frequencia da onda portadora no bloco Modulador

20

Page 39: Módulo de Processamento de Sinal para um Amplificador de ...Agradecimentos A conclusao de uma tese marca o fim de uma etapa marcante na vida profissional e pessoal de˜ cada um

em Quadratura e de fp = 12 kHz, o que perfaz uma frequencia de comutacao de q(t) igual a 2fp = 24

kHz. O bloco de passagem por zero consiste apenas na seleccao do instante mais proximo de 0, visto

que todo o sistema foi simulado com uma frequencia de amostragem muito superior a 48 kHz (10.24

MHz). O sinal de entrada consistia na soma de tres sinusoides a frequencias f1 = 2.5 kHz, f2 = 5 kHz e

f3 = 10 kHz. O espectro da onda q(t) produzida pode ser visto na figura 3.1, onde podem ser verificados

os dados referidos anteriormente.

Figura 3.1: Modulo da transformada de Fourier de q(t) (Oliva et al.).

Constata-se que o patamar de ruıdo se encontra sensivelmente 60 dB abaixo do sinal. De acordo

com os autores, tal valor e explicado pelo efeito de aliasing a saıda do bloco AEM, bem como pela

resolucao da deteccao das passagens por zero. Um valor desta ordem nao e suficiente para garantir

uma qualidade audio elevada para o sistema.

O segundo projecto [Stefanazzi et al., 2008] teve como sinal de entrada a soma de sinusoides

com frequencias f1 = 3.5 kHz e f2 = 8 kHz amostrado a 44.1 kHz. Apesar de teoricamente a largura

de banda poder estender-se ate 22 kHz, a guardband so foi projectada para ir ate 18 kHz. Nao ha

informacao acerca da realizacao do bloco de Hilbert. O bloco AEM e filtragem foi realizado atraves de

uma aproximacao em serie de MacLaurin com 12 coeficientes seguida de um filtro FIR. A frequencia da

onda portadora no bloco Modulador em Quadratura e de fp = 20 kHz, dando origem a uma frequencia

de comutacao de q(t) de 2fp = 40 kHz.

No caso deste projecto, devido as caracterısticas do sinal de entrada, o sinal s(t), que e o sinal de

saıda do bloco Modulador em Quadratura, do qual sao retirados os zeros que determinarao os instantes

de comutacao q(t), pode ser obtido analiticamente. No entanto, as suas raızes so podem ser obtidas

atraves de metodos numericos. Para tal, no bloco de passagem por zero foi feita uma aproximacao de

s(t) em torno das suas raızes atraves de uma interpolacao polinomial de grau 3, com operandos de

vırgula flutuante de 64 bit. Para a sua determinacao foi utilizado o metodo de Newton-Rhapson.

O espectro da onda q(t) pode ser visto na figura 3.2, onde se verificam os dados referidos anterior-

mente. O patamar de ruıdo de -250 dB deve-se, de acordo com os autores, a precisao da aproximacao

21

Page 40: Módulo de Processamento de Sinal para um Amplificador de ...Agradecimentos A conclusao de uma tese marca o fim de uma etapa marcante na vida profissional e pessoal de˜ cada um

do instante de passagem por zero.

Figura 3.2: Modulo da transformada de Fourier de q(t) (Stefanazzi et al.).

Ainda no mesmo projecto foi utilizado um click player num processador digital de sinal, ou Digital

Signal Processor (DSP), cuja arquitectura e constituıda essencialmente por uma memoria, onde estao

armazenados os tempos de comutacao obtidos pela modulacao em software, um formador de pulsos

que gera a onda correspondente e, por fim, um filtro passa-baixo que realiza a desmodulacao de q(t).

Obtem-se uma transformada de Fourier do sinal desmodulado de acordo com o exposto na figura 3.3.

Com um patamar de ruıdo acima de -60 dB, nao e possıvel garantir uma qualidade audio elevada para

o sistema, estando a limitacao associada ao click player e nao ao algoritmo da modulacao, como no

caso do primeiro projecto.

Foi ainda realizado pelos mesmos autores um terceiro projecto [Stefanazzi et al., 2013], testado com

dois tipos de sinal de entrada. A guardband pode ir ate aos 30 kHz, sendo que ambos sinais foram

amostrados a 60 kHz. Nao ha informacao acerca da realizacao do bloco de Hilbert. O bloco AEM

e filtragem foram realizados simultaneamente, de forma recursiva, baseados na combinacao de duas

operacoes: a aproximacao em serie de MacLaurin da exponencial (com 12 coeficientes) e a convolucao

entre o sinal e os coeficientes do filtro FIR. A frequencia da onda portadora no bloco Modulador em

Quadratura foi de fp = 60 kHz, dando origem a uma frequencia de comutacao de q(t) de 2fp = 120

kHz. Ao contrario do projecto anterior, o bloco passagem por zero foi desenhado sem recurso a sobre-

amostragem do sinal. Em vez disso, foi feita uma aproximacao polinomial de s(t) de ordem 3, complexa,

tendo sido obtidos deterministicamente, isto e, sem quaisquer metodos de procura de raızes, os valores

dos instantes em que s(t) = 0. Os zeros obtidos correspondem a projeccao no eixo real dos zeros

complexos do polinomio.

O primeiro sinal testado foi uma soma de sinusoides com frequencias f1 = 1 kHz, f2 = 3 kHz e f3 =

6 kHz. O espectro da onda rectangular (|Q1(f)|), ambos produzidos por simulacao em software, pode

22

Page 41: Módulo de Processamento de Sinal para um Amplificador de ...Agradecimentos A conclusao de uma tese marca o fim de uma etapa marcante na vida profissional e pessoal de˜ cada um

Figura 3.3: Modulo da transformada de Fourier de q(t) desmodulado: medicao experimental (Stefanazziet al.).

ser visto na figura 3.4, onde podem ser verificados os parametros referidos anteriormente.

Figura 3.4: Modulo da transformada de Fourier de q1(t) (Stefanazzi et al.).

O segundo sinal testado foi um sinal passa-banda, x2A(n), com frequencias entre DC (exclusive) e

30 kHz. Para posterior comparacao, apresenta-se na figura 3.5 o seu espectro:

O espectro da onda q2(t), |Q2(f)|, ambos produzidos por simulacao em software, pode ser visto na

figura 3.6, onde podem ser verificados os dados referidos anteriormente, nomeadamente o espectro

em banda de base praticamente inalterado em relacao ao da figura 3.5, bem como as componentes de

23

Page 42: Módulo de Processamento de Sinal para um Amplificador de ...Agradecimentos A conclusao de uma tese marca o fim de uma etapa marcante na vida profissional e pessoal de˜ cada um

Figura 3.5: Modulo da transformada de Fourier de x2A(n) (Stefanazzi et al.).

alta frequencia geradas apenas a partir dos 30 kHz, tal como previsto.

Figura 3.6: Modulo da transformada de Fourier de q2(t) (Stefanazzi et al.).

3.3 Modulacao Click em hardware

De acordo com as publicacoes disponıveis sobre o tema, foram publicados tres artigos que deta-

lham realizacoes da CM em hardware: dois em 2002 com autores comuns, correspondendo a duas

fases diferentes do mesmo projecto, e um outro em 2010. Ambos os casos tiveram como objectivo a

implementacao em tempo real da modulacao.

24

Page 43: Módulo de Processamento de Sinal para um Amplificador de ...Agradecimentos A conclusao de uma tese marca o fim de uma etapa marcante na vida profissional e pessoal de˜ cada um

O primeiro projecto, tanto na primeira como na segunda fase, teve como entrada um sinal PCM

de 16 bit amostrado a 48 kHz, constituıdo por uma soma de duas sinusoides com frequencias nao

especificadas inferiores a 20 kHz, que por inspeccao da figura 3.7 se assume serem proximas de 16

kHz e 18 kHz. No entanto, o sistema foi desenhado para um sinal de entrada que possua componentes

em toda a banda audio, ou seja, ate 20 kHz, sendo que a guardband se estende ate aos 42 kHz. Na

literatura disponıvel, este e o unico projecto com processamento em vırgula fixa.

Na primeira fase [Streitenberger and Mathis, 2002], a frequencia de amostragem do sinal de entrada

sofre uma ligeira subida para 48.8 kHz, realizada num componente especıfico. O bloco de Hilbert foi

implementado num DSP proprio, com um filtro FIR passa-banda de 51 coeficientes, sendo os operan-

dos de 16 bit. De seguida, o sinal e interpolado com um factor R = 8, realizado num outro dispositivo

proprio, com operandos de 24 bit. O bloco AEM e filtragem e dividido entre tres DSP ’s iguais ao que

foi utilizado para o bloco de Hilbert, todos com operandos de vırgula fixa de 24 bit. No primeiro e feita a

operacao de aproximacao a funcao exponencial, realizada atraves de interpolacao linear. No segundo e

no terceiro e realizada a filtragem, cada um com dois filtros FIR de 171 coeficientes. Nao ha informacao

acerca da implementacao da operacao de modulacao em quadratura. Um ultimo DSP e utilizado para

efectuar uma decimacao (com factor 8) seguida de nova interpolacao, desta vez com factor 4, e, por fim,

a determinacao das raızes do sinal, atraves da combinacao de interpolacao polinomial de grau 3 (a par-

tir da deteccao de mudanca de sinal das amostras) com uma iteracao do metodo de Newton-Rhapson.

Os zeros determinados tem resolucao de 16 bit. Por fim, a onda q(t) e gerada a partir de uma FPGA,

com resolucao de 11 bit e frequencia de comutacao igual a 97.6 kHz.

Os espectros da onda q(t), o primeiro obtido por simulacao e o segundo medido experimentalmente,

podem ser visto nas figuras 3.7 e 3.8:

Figura 3.7: Modulo da transformada de Fourier de q(t): 1a fase (simulacao, resolucao de 16 bit) (Strei-tenberger and Mathis).

25

Page 44: Módulo de Processamento de Sinal para um Amplificador de ...Agradecimentos A conclusao de uma tese marca o fim de uma etapa marcante na vida profissional e pessoal de˜ cada um

Figura 3.8: Modulo da transformada de Fourier de q(t): 1a fase (medicao experimental, resolucao de 11bit) (Streitenberger and Mathis).

No total, sao utilizados 5 DSP e 4 outros componentes dedicados, incluindo uma FPGA, para a

implementacao em tempo real e vırgula fixa da CM.

A segunda fase [Streitenberger et al., 2002] apresenta como principais diferencas em relacao a

primeira a juncao num so DSP do bloco AEM e dos dois filtros de 171 coeficientes, e a mudanca na

resolucao do click player sintetizado numa FPGA de 11 para 10 bit. Por conseguinte, ha uma reducao

do harware utilizado de 5 para 3 DSP ’s, sendo que os restantes componentes dedicados se mantem.

O espectro da onda q(t) desta fase do projecto, medido experimentalmente, encontra-se na figura

3.9. Nele e possıvel constatar, em comparacao com a figura 3.7 (b), que o patamar de ruıdo subiu

ligeiramente.

O segundo projecto [Sozanski, 2010] foi testado com dois sinais de entrada diferentes, ambos si-

nusoides puras, amostrados a 48 kHz: um com frequencia f1 = 1 kHz e outro com frequencia f2 = 5

kHz, sendo que tem capacidade para processar sinais ate 12 kHz. O algoritmo foi implementado num

processador com palavras de vırgula flutuante de precisao simples atraves de uma linguagem propria

do processador.

O bloco de Hilbert consistiu num FIR interpolador (com factor 8) de 127 coeficientes com carac-

terıstica passa-banda, obtidos atraves da ferramenta Signal Processing Toolbox do MATLAB. Nao e

dada informacao praticamente nenhuma acerca dos restantes blocos. Apenas e referido que os ins-

tantes das passagens por zero sao calculados atraves da interpolacao polinomial linear (grau 1) do

sinal s(t), que tem uma frequencia de amostragem de 384 kHz, que a frequencia de comutacao de q(t)

e 2Ωp = 2π24 kHz e que o click player tem uma resolucao de 13 bit. Os espectros das ondas q1(t)

e q2(t), obtidos experimentalmente, e correspondentes aos dois sinais de entrada cujas frequencias

foram especificadas no paragrafo anterior, estao expostos nas figuras 3.10 e 3.11:

26

Page 45: Módulo de Processamento de Sinal para um Amplificador de ...Agradecimentos A conclusao de uma tese marca o fim de uma etapa marcante na vida profissional e pessoal de˜ cada um

Figura 3.9: Modulo da transformada de Fourier de q(t): 2a fase, medicao experimental, resolucao de 10bit (Streitenberger et al.).

Figura 3.10: Modulo da transformada de Fourier de q1(t): medicao experimental, resolucao de 13 bit(Sozanski).

E possıvel constatar que no caso da figura 3.10, correspondente a onda q1(t) gerada a partir do

sinal de entrada sinusoidal com f1 = 1 kHz, o patamar de ruıdo se situa cerca de 100 dB abaixo das

componentes de sinal, embora sejam visıveis algumas harmonicas acima desse valor dentro da banda

de interesse (< 12 kHz), nomeadamente em 2 kHz e 3 kHz. Na figura 3.11, correspondente a onda q2(t)

gerada a partir do sinal de entrada sinusoidal com f2 = 5 kHz, o patamar de ruıdo situa-se cerca de 80

dB abaixo das componentes de sinal, embora tambem neste caso sejam visıveis algumas harmonicas

dentro da banda de interesse, nomeadamente em 4 kHz, 6 kHz e 10 kHz.

27

Page 46: Módulo de Processamento de Sinal para um Amplificador de ...Agradecimentos A conclusao de uma tese marca o fim de uma etapa marcante na vida profissional e pessoal de˜ cada um

Figura 3.11: Modulo da transformada de Fourier de q2(t): medicao experimental, resolucao de 13 bit(Sozanski).

3.4 Modelo MATLAB

3.4.1 Introducao

Nesta seccao sera explicado o algoritmo da CM em MATLAB [Domingues and Braga, 2013], adop-

tando uma metodologia de exposicao bloco a bloco de acordo com a seccao 2.1. Todos os operandos

sao de vırgula flutuante de 64 bit. A descricao completa das operacoes da modulacao - ja com algu-

mas particularidades de processamento de sinal - e a razao pela qual este modelo serviu de base ao

trabalho desenvolvido nesta dissertacao.

3.4.2 Transformada de Hilbert e interpolacao

O bloco de Hilbert e formado por dois filtros FIR de fase linear, com 1024 coeficientes cada um,

a partir do metodo equiripple, com resposta ao impulso h1(n) e h2(n). Primeiro, sao gerados 1024

coeficientes de um filtro passa-baixo, hLP (n), recorrendo a funcao firceqrip, com 0.008 dB e 0.000009

db de ondulacao maxima, respectivamente, na banda de passagem e na banda de atenuacao. A funcao

de transferencia do filtro encontra-se na figura 3.12.

Finalmente, para a obtencao dos coeficientes dos dois filtros de Hilbert sao feitas as seguintes

operacoes:

h1(n) = 2 hLP (n) sin

(2πn

f

fS

)(3.1)

e

h2(n) = 2 hLP (n) cos

(2πn

f

fS

)(3.2)

com f = 11 kHz e fS = 384 kHz. Desta forma gera-se a caracterıstica passa-banda para ambos os

filtros que permitira ter a saıda do bloco dois sinais que sao transformada de Hilbert um do outro. Como

tal, a frequencia de corte utilizada para gerar os coeficientes hLP foi metade da banda de base, cerca

28

Page 47: Módulo de Processamento de Sinal para um Amplificador de ...Agradecimentos A conclusao de uma tese marca o fim de uma etapa marcante na vida profissional e pessoal de˜ cada um

0 0.02 0.04 0.06 0.08 0.1 0.12 0.14 0.16 0.18 0.2

−90

−80

−70

−60

−50

−40

−30

−20

−10

0

Normalized Frequency (relative to fs / 2)

Mag

nitu

de (

dB)

Figura 3.12: Modulo da resposta em frequencia do filtro com coeficientes hLP (n).

de 11 kHz. Os coeficientes sao multiplicados por 2 para compensar o efeito da multiplicacao por sin e

cos.

Dado que tambem se pretende simular o efeito de uma interpolacao do sinal de entrada com factor

R = 8 para corresponder a necessidade explicada na subseccao 2.1.3, o filtro assume uma estrutura

polifasica com 8 estagios, cada um com 128 coeficientes. Adicionalmente, para compensar o espa-

lhamento de energia resultante da interpolacao, ambos os sinais resultantes sao multiplicado por 8 de

forma a recuperar a sua energia inicial em banda de base. Obtem-se entao as duas componentes do

sinal analıtico fA(n), correspondentes a dois fluxos de sinal, sendo um a parte real (f(n)) e outro a

parte imaginaria (f(n)).

3.4.3 Modulador exponencial analıtico e filtragem

Este bloco pretende realizar o equivalente discreto da expressao (2.9), bem como a filtragem poste-

rior, que tem como sinal de saıda zf (n). Adicionalmente, neste bloco e feita a conjugacao de zf (n), que

apesar de ter sido apresentada em 2.1.4 como pertencendo ao bloco da modulacao em quadratura, por

ser uma operacao linear, pode ser implementada neste bloco, ainda antes da filtragem, com a troca do

sinal da parte imaginaria da expressao (2.8). A operacao que e realizada esta expressa na equacao

(3.3):

z∗(n) =[e−jfA(n)

]∗=[ef(n)−jf(n)

]∗= ef(n)+jf(n) = ef(n) · ejf(n). (3.3)

O calculo de cada uma das exponenciais e efectuado atraves de aproximacoes em serie de Ma-

cLaurin, conforme descrito no final da subseccao 2.1.3: uma de uma exponencial real ef(n) e outra de

uma exponencial complexa ejf(n). Estes factores sao posteriormente multiplicados e o seu resultado

separado em parte real e imaginaria, atraves das funcoes real e imag do MATLAB. Os coeficientes

para a aproximacao a exponencial real foram obtidos atraves da expressao (2.11), com N = R = 8, e

os coeficientes para a aproximacao a exponencial complexa foram obtidos atraves da expressao (2.10),

tambem com N = R = 8.

29

Page 48: Módulo de Processamento de Sinal para um Amplificador de ...Agradecimentos A conclusao de uma tese marca o fim de uma etapa marcante na vida profissional e pessoal de˜ cada um

A determinacao do valor de N foi feita atraves de um metodo iterativo que minimiza o erro entre o

valor exacto e a aproximacao da exponencial, partindo de duas condicoes iniciais: o valor maximo S

que |ez| pode tomar e o erro maximo ε0 admitido para a aproximacao. Ou seja, minimiza o valor da

expressao

ε =

∣∣∣∣∣ez −N−1∑k=0

zk

k!

∣∣∣∣∣ ≤ ε0, (3.4)

com S = π2 (como consequencia do que foi referido na subseccao 2.1.3) e ε0 ≤ 1/2nbit−1, em que nbit

e a resolucao pretendida para o sistema, neste caso 16 bit. No caso deste modelo, o resultado para N

foi de 10, e foi produzida uma figura que apresenta o erro ε tanto na parte real como imaginaria:

−1−0.5

00.5

1

−1−0.5

00.5

10

0.5

1

1.5x 10

−6

Re z Im z

|ε|

Figura 3.13: Erro entre o valor real e aproximado de ez.

A razao pela qual foram escolhidos apenas 8 coeficientes para a implementacao prende-se com o

facto de ser bastante mais pratico do ponto de vista do calculo computacional lidar com operandos de

potencias de base 2, como sera clarificado na seccao 4.3.

Os coeficientes para os filtros seguintes – que, apesar de serem necessarios dois, um para a parte

real e outro para a parte imaginaria, sao iguais – sao obtidos recorrendo a funcao firls do MATLAB

que, partindo de um conjunto de especificacoes da resposta em frequencia e da ordem pretendida para

o filtro, minimiza o erro quadratico medio entre a caracterıstica ideal desejada e a caracterıstica real.

Neste caso os filtros possuem 512 coeficientes, e as especificacoes do filtro ideal foram uma resposta

linear e unitaria de 0 a 22 kHz, e uma banda de atenuacao, idealmente com ganho linear 0, a comecar

em 24 kHz e a estender-se ate metade da frequencia de amostragem do sinal que se pretende filtrar,

192 kHz. Apos a filtragem obtem-se o sinal zf (n) referido em (2.12), dividido em parte real e imaginaria.

3.4.4 Modulador em quadratura

A modulacao em quadratura consiste na computacao da operacao discreta identica a (2.14), ou

seja, na soma de duas parcelas: uma, a multiplicacao da parte real de zf (n), xf (n), por cos(Ωpn) e

30

Page 49: Módulo de Processamento de Sinal para um Amplificador de ...Agradecimentos A conclusao de uma tese marca o fim de uma etapa marcante na vida profissional e pessoal de˜ cada um

outra a multiplicacao da parte imaginaria de zf (n), yf (n), por sin(Ωpn), sendo Ωp = 2πfp e fp = 24 kHz.

A operacao de conjugacao, conforme explicado na subseccao 3.4.3, foi efectuada no bloco AEM deste

modelo.

Devido ao facto desta operacao poder ser efectuada com operacoes basicas (multiplicacao e soma),

a concretizacao deste bloco e bastante simples. E do sinal resultante do mesmo, s(n), que serao

extraıdos os instantes das raızes.

3.4.5 Passagem por zero

Neste bloco comeca-se por detectar uma mudanca de sinal entre amostras, isolando-se, de seguida,

para alem das duas amostras onde foi detectada a mudanca de sinal, as duas amostras contıguas a

estas ultimas. Desta forma ter-se-a sempre duas amostras positivas e duas amostras negativas. De

seguida, e feita uma verificacao da monotonia desse conjunto para garantir a unicidade da raiz no

intervalo que contem as amostras recolhidas.

O metodo utilizado para encontrar a raiz e o metodo da bisseccao, cujo algoritmo e realizado numa

rotina propria. Para o aplicar, e necessario calcular valores de s(n) entre amostras, em que este nao

esta definido. Para tal e gerado um polinomio interpolador de ordem 3 sempre que e detectada uma

passagem por zero. Os resultados da aplicacao do metodo sao depois guardados para formar a onda

PWM q(t). De forma a ilustrar o funcionamento correcto do modelo, o mesmo foi testado com um sinal

de entrada sinusoidal de 1 kHz. O espectro da onda q(t) produzida encontra-se na figura 3.14.

101

102

103

104

105

106

107

108

109

−200

−180

−160

−140

−120

−100

−80

−60

−40

−20

0

Freq [Hz]

MA

G [d

B]

Figura 3.14: Modulo da transformada de Fourier de q(t): simulacao do modelo em MATLAB (Dominguesand Braga).

E possıvel ver o pico a 1 kHz, que corresponde ao espectro do sinal de entrada, bem como as

componentes de alta frequencia, nomeadamente o pico em torno de 2fp = 48 kHz, a frequencia de

comutacao de q(t), bem como as componentes em torno de multiplos inteiros de 48 kHz. E de notar

tambem a presenca de harmonicas do sinal de entrada, a 2 e 3 kHz, ainda que estas estejam abaixo

do patamar de -100 dB.

31

Page 50: Módulo de Processamento de Sinal para um Amplificador de ...Agradecimentos A conclusao de uma tese marca o fim de uma etapa marcante na vida profissional e pessoal de˜ cada um

Foi a partir do modelo acima descrito que foi produzido o trabalho que sera descrito no capıtulo 4.

Apesar da estrutura base do programa ser a mesma e de haver possibilidade de utilizar dados comuns,

ha diferencas de concretizacao entre ambos, que serao explicitadas oportunamente.

32

Page 51: Módulo de Processamento de Sinal para um Amplificador de ...Agradecimentos A conclusao de uma tese marca o fim de uma etapa marcante na vida profissional e pessoal de˜ cada um

Capıtulo 4

Modelo desenvolvido

4.1 Plataforma de desenvolvimento e estrutura do programa

Neste capıtulo sera explicada a implementacao da CM em tempo real, atraves de um sistema

electronico de processamento de sinal descrito em linguagem C com operandos de vırgula fixa de

16 bit, sendo utilizados operandos de 32 bit em alguns calculos intermedios. A escolha da linguagem

tem como base o facto de esta ser suficientemente proxima dos dois suportes de descricao do algoritmo

da CM que se pretende interligar: a linguagem MATLAB, de alto nıvel, e em cujo modelo ja existente

da CM esta dissertacao se baseia, e Verilog, uma linguagem de descricao de hardware.

O programa foi desenvolvido em Microsoft Visual Studio Express, com o auxılio do MATLAB para

producao de transformadas de Fourier, de visualizacao de sinais no domınio do tempo e interpretacao

dos resultados. O sinal de entrada, bem como todos os dados necessarios ao processamento (tais

como coeficientes de filtros, de polinomios, valores tabelados de sin e cos, entre outros) sao lidos a

partir de ficheiros criados atraves do MATLAB, em que cada linha dos mesmos contem o valor decimal

de cada amostra em causa.

A estrutura do programa consiste num ciclo infinito de leitura do ficheiro que contem o sinal de

entrada, e cuja condicao de paragem e o fim do ficheiro. Entre a leitura de duas amostras consecutivas

e efectuado o mesmo conjunto de procedimentos. Para clareza do codigo e facilidade na localizacao e

resolucao de problemas, e frequente a utilizacao de funcoes para realizacao das operacoes dos blocos.

No anexo A.1 apresenta-se em pseudo-codigo a estrutura algorıtmica do programa desenvolvido em C.

Nas seccoes 4.5 a 4.8 sera explicada bloco a bloco a implementacao em C, cuja divisao e a mesma

da seccao 2.1 de forma a facilitar a comparacao das duas perspectivas. Na figura 4.1 apresenta-se o

esquema da implementacao da CM.

Antes da explicacao dos blocos da CM, e tendo em vista a sua mais completa compreensao,

apresentam-se nas seccoes 4.2 a 4.4 explicacoes simples do formato de numeros inteiros em vırgula

fixa, de alguns aspectos relevantes das respectivas operacoes e por fim dos formatos escolhidos para

os ficheiros de entrada. Os resultados da implementacao de cada bloco podem ser consultados nas

seccoes equivalentes do capıtulo 5: 5.2 a 5.5.

33

Page 52: Módulo de Processamento de Sinal para um Amplificador de ...Agradecimentos A conclusao de uma tese marca o fim de uma etapa marcante na vida profissional e pessoal de˜ cada um

Figura 4.1: Esquema de implementacao da CM.

4.2 Operandos de vırgula fixa

A notacao de vırgula fixa divide-se em tres partes de acordo com o representado na figura 4.2,

qualquer que seja o numero total de bit escolhido para a representacao (doravante designado Nbit)

[Tavares and Piedade, 2006]:

+- k n

Figura 4.2: Esquema de representacao em vırgula fixa.

O bit mais significativo corresponde ao bit de sinal. De seguida, sao utilizados k bit para representar

a parte inteira do numero, sendo que k pode tomar valores inteiros de 0 a Nbit − 1. Os n bit menos

significativos representam a parte fraccionaria, e tambem podem tomar valores inteiros entre 0 eNbit−1,

sendo imperativo que a igualdade em (4.1) se verifique:

Nbit = 1 + k + n. (4.1)

Apesar de na sua genese os sinais serem binarios (com cada amostra a corresponder a uma palavra

com Nbit bit), os mesmos sao processados como sequencias discretas de numeros inteiros. Conside-

rando o valor decimal de uma amostra sample, a determinacao do seu valor inteiro sampleint e realizada

atraves da operacao

sampleint = bsample · ( 2n − 1)c, (4.2)

em que n e o numero de bit da parte fraccionaria de sampleint e b·c corresponde ao arredondamento

por corte a unidade do calculo efectuado. O resultado e calculado em formato binario na notacao de

complemento para dois.

Uma vez fixado Nbit, o valor de n esta dependente de uma escolha adequada para k de acordo com

a relacao expressa em (4.1), que se prende com a gama dinamica do sinal em causa. Num exemplo

simples, com muitas semelhancas com o caso dos sinais PCM, consideraremos um sinal a(t) cujo

modulo e menor ou igual a m, ou seja,

|a(t)| ≤ m, m ∈ N ∧m ≥ 1, (4.3)

34

Page 53: Módulo de Processamento de Sinal para um Amplificador de ...Agradecimentos A conclusao de uma tese marca o fim de uma etapa marcante na vida profissional e pessoal de˜ cada um

podendo m ser uma grandeza fısica arbitraria, ou um respectivo multiplo ou sub-multiplo. Para este

caso, uma escolha adequada para k seria

k = dlog2me, (4.4)

sendo atribuıdos a parte fraccionaria Nbit−k−1 bit. Para uma perspectiva mais concreta desta seccao,

em 4.4 e apresentado o caso concreto da escolha da aritmetica para o sinal de entrada.

4.3 Operacoes de vırgula fixa

A principal diferenca entre o modelo em C e o modelo em MATLAB reside no formato dos operandos

e na realizacao das operacoes matematicas. No caso do modelo em MATLAB, os operandos sao de

vırgula flutuante, e como tal, as operacoes sao efectuadas pelo processador de forma transparente ao

utilizador. No caso das operacoes em vırgula fixa pretende-se emular o funcionamento de hardware de-

dicado, necessariamente mais rapido, em que nao e utilizado um processador para realizar os calculos,

mas sim unidades de calculo aritmetico.

Os blocos mais basicos destas unidades sao constituıdos por somadores e multiplicadores, que

efectuam as operacoes de soma, subtraccao (que corresponde a uma soma em que um dos operandos

e um numero negativo) ou multiplicacao. Operacoes mais complexas, como divisao ou convolucao,

agregam varios destes blocos. Na pratica, esses blocos nao sao sintetizados no programa em C, sendo

feitos recorrendo as unidades de calculo do processador. A diferenca reside, portanto, nos operandos,

e na forma como estes sao adequados aos calculos. Para se saber qual o formato de cada resultado

de uma soma ou multiplicacao, que terao uma explicacao resumida nesta seccao, e necessario ter em

conta o formato de cada um dos respectivos operandos.

No caso da soma (ou subtraccao), os mesmos tem necessariamente de ter o mesmo formato de

vırgula fixa Qn. Dado que o resultado pode nao ser representavel pelo formato Qn, e necessario atribuir

mais um bit ao resultado, designadamente a parte inteira, para excluir o risco de overflow (ou underflow)

no resultado. No caso do exemplo (4.5), em que as parcelas estao em formato decimal,

0.125 + 0.25 = 0.375 (4.5)

tanto os operandos como o resultado sao representaveis no formato Q15, nao havendo necessidade de

qualquer ajuste, visto que o bit a mais gerado e automaticamente excluıdo por se escolherem apenas

os 16 bits menos significativos, ficando assim o 17o de fora. Esta operacao com operandos inteiros

seria

4095 + 8191 = 12286. (4.6)

Ja no caso do exemplo (4.7),

35

Page 54: Módulo de Processamento de Sinal para um Amplificador de ...Agradecimentos A conclusao de uma tese marca o fim de uma etapa marcante na vida profissional e pessoal de˜ cada um

0.5 + 0.75 = 1.25 , (4.7)

os operandos podem ser representados em Q15 mas o resultado so pode ser representado em Q14.

Neste caso e necessario fazer uma de duas alteracoes: ou se converte o formato dos operandos para

Q14, diminuindo consequentemente a precisao do calculo, ou se converte apenas o resultado, depois

da soma feita, para Q14. Em geral opta-se pela segunda opcao. Tal e conseguido a custa da operacao

binaria shift right (), tal como demonstrado no exemplo (4.8), a operacao com inteiros correspondente

a (4.7). Neste caso, ambas as parcelas estao em Q15, e por forca da operacao de shift right o resultado

esta em Q14.

(16383 + 24575) 1 = 20478. (4.8)

Os exemplos apresentados dizem apenas respeito a numeros positivos, mas sao equivalentes para

numeros negativos, com a diferenca de que estes aparecem sob a forma de numeros inteiros positivos

maiores ou iguais a 32768. Este valor corresponde ao menor inteiro que representa numeros negati-

vos com 16 bit em qualquer formato. Atendendo a que os numeros negativos possuem como bit mais

significativo o algarismo 1, os inteiros de 16 bit que os representam serao sempre maiores ou iguais a

32768, que representa o numero negativo mais proximo de zero que se pode obter no formato em que

estiver.

No caso da multiplicacao nao se requer que os operandos estejam no mesmo formato. Conside-

rando que ambos os operandos possuem Nbit e um deles esta em Qn1e o outro em Qn2

, o resultado

tera 2Nbit. Desses, um deles (o bit mais significativo) corresponde a um bit de sinal em duplicado. Por

essa razao, esse e descartado, bem como os n − 1 bits menos significativos, para se obter um resul-

tado com Nbit bit, sendo o seu formato Qn1+n2+1−Nbit [Tavares and Piedade, 2006], garantindo desta

forma que o resultado pode ser representado sem overflow ou underflow. Na tabela 4.1 apresentam-se

varias combinacoes possıveis para formatos de operandos e respectivos resultados na multiplicacao

em vırgula fixa:

Operando 1 Operando 2 Resultado Exemplo (decimal) Exemplo (inteiro de 16 bit)Q15 Q15 Q15 0.5 · 0.5 = 0.25 16383 · 16383 = 8191Q15 Q14 Q14 0.75 · (−1.5) = −1.125 24575 · 40962 = 47106Q14 Q14 Q13 1.5 · 1.5 = 2.25 24574 · 24574 = 8191Q14 Q13 Q12 (−1.75) · 2.75 = −4.8125 36866 · 22525 = 45827

Tabela 4.1: Exemplos de multiplicacao em vırgula fixa: combinacoes de formatos de operandos erespectivos resultados.

A semelhanca do que tambem pode suceder na soma, o formato do resultado de uma operacao de

multiplicacao pode nao ser necessariamente o explicitado na terceira coluna da tabela anterior. Se os

operandos forem suficientemente pequenos, pode nao ser preciso um formato com tantos bit reserva-

dos para a representacao da parte inteira, podendo assim reservar-se mais bits para a representacao

da parte decimal. O formato adequado depende naturalmente dos valores dos operandos, e somente

36

Page 55: Módulo de Processamento de Sinal para um Amplificador de ...Agradecimentos A conclusao de uma tese marca o fim de uma etapa marcante na vida profissional e pessoal de˜ cada um

quando estes estao limitados por valores bem conhecidos e que podem ser feitos ajustes sem riscos de

overflow e underflow, por um lado, ou perda de precisao, por outro. Ao longo do programa em C foram

feitos varios acertos de forma a garantir em cada calculo intermedio a maxima precisao permitida sem

comprometer a correcta representacao da total gama dinamica do sinal.

E conveniente referir um caso especial de multiplicacao. Se um dos operandos for uma potencia

inteira de base 2, ou seja, da forma 2b, o resultado da multiplicacao pode ser obtido com uma operacao

de shift left aritmetico de b bit, ou seja, mantem o bit de sinal e acrescenta ’0’ a direita do numero,

deslocando para a esquerda todos os outros e descartando o bit com peso imediatamente inferior ao

bit de sinal. Neste caso o resultado tem o mesmo numero de bits do operando que sofre o shift. Esta

particularidade e valida tanto para expoentes b positivos ou negativos, desde que sejam inteiros. Ou

seja, e valida para divisoes cujo divisor seja uma potencia inteira de base 2, ou seja, da forma 2b com

b ≤ −1. Por exemplo, se a multiplicacao for entre dois factores 24 e 16(= 24), o resultado e calculado

como (24) 4, e numa divisao de 128 por 32(= 25) o resultado e dado por (128) 5.

4.4 Aritmetica dos sinais de entrada

Conforme referido em 1.2, o sistema tem como entrada um sinal de audio lido a partir de um ficheiro

com amostras em formato decimal amostrado a 48 kHz, e como resultado um conjunto de ciclos de

trabalho (duty cycles) de uma onda do tipo PWM com resolucao de 16 bit.

Dado que se pretende uma implementacao em toda a gama dinamica possıvel, ou seja, com o

sinal de entrada f(n) a variar entre π2 e −π2 [Logan, 1984a], a aritmetica de vırgula fixa utilizada para

representar f(n) foi Q14, ou seja, dos 16 bit que constituem cada amostra do sinal de entrada, os 14

bit menos significativos sao para a parte decimal, o bit com peso 15 corresponde a parte inteira e o bit

mais significativo corresponde ao bit de sinal. Desta forma podem ser representados numeros reais no

intervalo [−2; 2[ com resolucao de 2−14.

Ja no proprio programa, cada valor deste sinal, que esta armazenado em modo string, e conver-

tido para formato numerico, neste caso um (signed) short, que armazena um inteiro de 16 bit. Os

resultados das operacoes da CM, tanto intermedios como finais, sao escritos em ficheiros, novamente

em formato string (ASCII), cujo conteudo e processado em MATLAB.

Este procedimento e feito de forma analoga para todos os ficheiros que contem dados de entrada

do sistema, sejam sinais, coeficientes de filtros ou de polinomios ou valores tabelados de funcoes. Na

tabela 4.2 e possıvel verificar quais os ficheiros lidos pelo sistema, os valores entre os quais os mesmos

variam e a notacao Qn escolhida para os representar.

37

Page 56: Módulo de Processamento de Sinal para um Amplificador de ...Agradecimentos A conclusao de uma tese marca o fim de uma etapa marcante na vida profissional e pessoal de˜ cada um

Entrada Valores Notacao

Sinal de entrada [π2 ; −π2 ] Q14

Coeficientes dos dois filtros de Hilbert ]− 1; 1[ Q15

Coeficientes da aproximacao da funcao exponencial ] 18! ; 1] Q15

Coeficientes do filtro pos AEM ]− 1; 1[ Q15

Valores tabelados de sin amostrado a 48 kHz ]− 1; 1[ Q15

Tabela 4.2: Ficheiros de entrada do sistema e respectivos formatos em vırgula fixa.

4.5 Transformada de Hilbert e interpolacao

Dado que neste bloco se pretende nao so calcular a transformada de Hilbert como efectuar uma

interpolacao com factor R = 8, este estagio, a semelhanca do bloco no modelo em MATLAB, con-

siste num filtro FIR com estrutura polifasica de 8 estagios com 128 coeficientes cada um, e por fim

na multiplicacao do sinal de saıda por 8, para repor a energia original do sinal em banda de base,

espalhada no espectro pela interpolacao. O esquema completo deste bloco pode ser visto na figura

4.3:

Figura 4.3: Esquema de implementacao do bloco da transformada de Hilbert e interpolacao.

Os coeficientes utilizados foram os mesmos, expressos em (3.1) e (3.2) e convertidos para o formato

Q15 ja que o seu valor varia entre −1 e 1. Apesar de no contexto do programa nao se poder mudar

a frequencia de amostragem real dos sinais a ser processados, o efeito e emulado, dado que cada

amostra de saıda do filtro e resultado do calculo da convolucao das amostras do sinal com um dos

estagios.

Apesar de em termos teoricos so se poder aplicar transformadas de Hilbert a sinais passa-banda

[Oppenheim and Schafer], e por causa disso a caracterıstica dos filtros que calculam a transformada

nao poder ter componente DC, optou-se por projectar neste modelo filtros cujo modulo da resposta em

frequencia e uma caracterıstica passa-baixo, abrangendo DC, sem implicacoes no bom funcionamento

do algoritmo. Tal sucede por duas razoes: a primeira porque o sinal de entrada pode ser controlado

para nunca conter componentes abaixo de uma certa frequencia, como sucedeu em todos os testes

efectuados, que no caso de aplicacoes audio e normalmente convencionada para 20 Hz; a segunda

porque uma caracterıstica passa-banda em que a frequencia inferior e muito proxima de DC implicaria

uma banda de transicao inferior com declive muito acentuado, aumentando o numero de coeficientes

ou a banda de atenuacao de tal forma que impossibilita a sua implementacao pratica.

38

Page 57: Módulo de Processamento de Sinal para um Amplificador de ...Agradecimentos A conclusao de uma tese marca o fim de uma etapa marcante na vida profissional e pessoal de˜ cada um

Nas figuras 4.4 e 4.5 podem ser vistos, respectivamente, os modulos das respostas em frequencia

dos filtros com coeficientes h1(n) e h2(n). Constata-se que a frequencia de corte normalizada a -3 dB

e de sensivelmente 0.115π rad/amostra, tanto num caso como noutro, o que corresponde aproximada-

mente a 22 kHz, tal como previsto na subseccao 3.4.2.

0 0.02 0.04 0.06 0.08 0.1 0.12 0.14 0.16 0.18 0.2

−90

−80

−70

−60

−50

−40

−30

−20

−10

0

Normalized Frequency (relative to fs / 2)

Mag

nitu

de (

dB)

Figura 4.4: Modulo da resposta em frequencia de h1(n).

0 0.02 0.04 0.06 0.08 0.1 0.12 0.14 0.16 0.18 0.2

−80

−70

−60

−50

−40

−30

−20

−10

0

Normalized Frequency (relative to fs / 2)

Mag

nitu

de (

dB)

Figura 4.5: Modulo da resposta em frequencia de h2(n).

Como consequencia do sinal de entrada estar em formato Q14 e os coeficientes do filtro estarem

em formato Q15, o resultado da filtragem – que consiste em convolucoes discretas (multiplicacoes e

acumulacoes) – encontra-se em Q14 (ver tabela 4.1). Os sinais de saıda dos filtros, f(n) e f(n),

sao posteriormente multiplicados por 8, atraves de um shift right de 3 bit, para realizar a ja referida

compensacao da perda de energia da interpolacao. Esta operacao ainda e efectuada sobre uma

variavel temporaria de 32 bit, para que, aquando da posterior conversao para 16 bit, nao haja perda de

resolucao no resultado. A juncao destes dois deslocamentos resulta num shift right final de 13 bit sobre

as variaveis de 32 bit que armazenam os resultados das convolucoes. Esta ultima operacao produz os

sinais de saıda deste bloco.

39

Page 58: Módulo de Processamento de Sinal para um Amplificador de ...Agradecimentos A conclusao de uma tese marca o fim de uma etapa marcante na vida profissional e pessoal de˜ cada um

4.6 Modulador exponencial analıtico e filtragem

A implementacao deste bloco tem a mesma estrutura do bloco do modelo em MATLAB, ou seja,

consiste na conjugacao do resultado da operacao (2.9). Divide-se em duas partes distintas: a primeira

e a producao do sinal z∗(n) e a segunda e a filtragem das suas partes real e imaginaria. O esquema

completo deste bloco encontra-se na figura 4.6.

Figura 4.6: Esquema da implementacao do bloco AEM.

A primeira parte trata-se da exponenciacao complexa de um sinal analıtico que e, por conseguinte,

complexo. Por isso tem de se proceder ao calculo das partes real e imaginaria de z(n), respectivamente

x(n) e y(n), em separado. Com recurso a uma manipulacao algebrica simples, e partindo da equacao

(3.3), tem-se:

z∗(n) = ef(n)+jf(n) = ef(n) · ejf(n) = ef(n)︸ ︷︷ ︸e1

·(Reejf(n)+ jImejf(n)

)︸ ︷︷ ︸

e2

. (4.9)

Tal como foi feito no modelo em MATLAB, no caso de e1, dado tratar-se de uma exponencial real, foi

utilizado o equivalente discreto da equacao (2.11) com N = 8. Foi feito um agrupamento de factores e

parcelas em blocos de Horner (ax + b), expressos em (4.10), de modo a facilitar a sua implementacao

em hardware, nomeadamente em FPGA.

ef(n) ≈ 1 + f(n) +

[1

2!+

1

3!f(n)

][f(n)]2 +

[(1

4!+

1

5!f(n)

)+

(1

6!+

1

7!f(n)

)[f(n)]2

][f(n)]4. (4.10)

Os coeficientes 1k! sao constantes lidas de um ficheiro no inıcio do programa, convertidos para

inteiros de 16 bit no formato Q15. Como as amostras de f(n) variam entre π2 e −π2 , o valor de ef(n)

varia entre e−π2 ≈ 0, 21 e e

π2 ≈ 4, 81, pelo que o formato em vırgula fixa adequado para armazenar o

seu valor e Q12.

O desenho do programa foi feito de forma a que so sejam realizadas operacoes basicas com dois

operandos, sendo em cada passo avaliada a aritmetica do resultado e decidida (ou nao) a sua trunca-

tura de 32 para 16 bit. Dada a quantidade de operacoes envolvidas, serao apenas detalhadas no corpo

40

Page 59: Módulo de Processamento de Sinal para um Amplificador de ...Agradecimentos A conclusao de uma tese marca o fim de uma etapa marcante na vida profissional e pessoal de˜ cada um

principal deste texto as opcoes que adquirem maior relevancia ou que nao sejam de facil compreensao.

Para o calculo de e2, uma exponencial complexa, foi utilizado tambem a aproximacao da exponencial

em serie de MacLaurin com N = 8, ou seja:

ejf(n) =

7∑k=0

(jf(n))k

k!= 1+ jf(n)− [f(n)]2

2!− j [f(n)]3

3!+

[f(n)]4

4!+ j

[f(n)]5

5!− [f(n)]6

6!− j [f(n)]7

7!, (4.11)

onde as parcelas reais foram separadas das parcelas imaginarias, ficando agrupadas na forma

ejf(n) = 1− [f(n)]2

2!+

[f(n)]4

4!− [f(n)]6

6!︸ ︷︷ ︸Reejf(n)=cos f(n)

+j

(f(n)− [f(n)]3

3!+

[f(n)]5

5!− [f(n)]7

7!

)︸ ︷︷ ︸

Imejf(n)=sin f(n)

. (4.12)

Consequentemente, foram criadas duas funcoes para aproximar as partes real e imaginaria da

exponencial complexa. Ao contrario da funcao utilizada para calcular a aproximacao da exponencial

real, o resultado de ambas as funcoes encontra-se no formato Q15. Como o calculo equivale ao calculo

de duas funcoes trigonometricas, cos no caso da parte real e sin no caso da parte imaginaria, tanto um

como outro tem como contradomınio o intervalo [−1; 1[.

Apos o calculo de e1 e das duas componentes de e2, a expressao final de (4.9) pode ser desenvolvida

de forma a separar o calculo das partes real e imaginaria, finalizando assim a aproximacao a funcao

exponencial:

z(n) = ef(n) ·(Ree−jf(n)+ jIme−jf(n)

)= ef(n)Ree−jf(n)+ j

(ef(n)Ime−jf(n)

). (4.13)

Em cada parcela da forma final da expressao (4.13), a multiplicacao contem um factor no formato

Q12 e outro no formato Q15, pelo que o resultado com 16 bit vira no formato Q12.

A segunda parte, que consiste na filtragem passa-baixo das partes real e imaginaria de z(n), faz

uso da funcao firls do MATLAB para gerar 512 coeficientes, usados em ambos os filtros, em que

as especificacoes de frequencia ideias foram a de ganho linear e unitario na banda de passagem, ate

sensivelmente 22 kHz, e ganho 0 na banda de atenuacao, a partir dos 24 kHz. A funcao de transferencia

do filtro encontra-se na figura 4.7.

A semelhanca dos casos anteriores, os coeficientes possuem valores entre −1 e 1, pelo que a

aritmetica escolhida para os representar foi Q15. Como as duas componentes de z(n) se encontram em

Q12, o resultado da multiplicacao dos coeficientes pelas amostras, apos a eliminacao do bit de sinal em

duplicado e a truncatura de 32 bit para 16 bit, tem como formato final Q12, tanto para xf (n) como para

yf (n), que constituem a saıda deste bloco.

41

Page 60: Módulo de Processamento de Sinal para um Amplificador de ...Agradecimentos A conclusao de uma tese marca o fim de uma etapa marcante na vida profissional e pessoal de˜ cada um

0 0.02 0.04 0.06 0.08 0.1 0.12 0.14 0.16 0.18 0.2

−100

−80

−60

−40

−20

0

Normalized Frequency (relative to fs / 2)

Mag

nitu

de (

dB)

Figura 4.7: Funcao de transferencia do filtro passa-baixo pos AEM.

4.7 Modulador em quadratura

Este bloco compreende a realizacao da operacao (2.14), e e bastante simples de implementar.

Consiste na soma de duas parcelas, que sao a multiplicacao dos sinais de saıda do filtro pos AEM,

xf (n) e yf (n), por cos Ωpn e sin Ωpn, respectivamente, com Ωp = 2πfp rad/s, fp = 24 kHz. O esquema

completo deste bloco pode ser visto na figura 4.8:

Figura 4.8: Esquema de implementacao do bloco modulador em quadratura.

Os valores dos sinais sinusoidais foram obtidos atraves da amostragem do sinal contınuo sin Ωpt,

com frequencia de amostragem igual a do sinal a ser processado na cadeia da CM, ou seja, 384 kHz.

Dado que se trata de um sinal periodico, ao dividir-se a frequencia de amostragem por fp obtem-se

o numero de amostras por perıodo necessarias para representar o sinal, neste caso 16. Como tal,

foi criado em MATLAB um script que gera estes 16 valores e escreve-os para um ficheiro em formato

decimal, sendo estes lidos no inıcio do programa em C e armazenados num vector em formato de

vırgula fixa Q15. Como os valores para sin e cos sao os mesmos, diferindo apenas na fase inicial,

e apenas utilizado um vector para guardar os valores de ambos, diferindo apenas o valor inicial da

variavel que indexa a sua posicao: no caso do sin e 0 e no caso do cos e 4. Essa variavel de indexacao

e incrementada no final de cada ciclo de processamento, e assim que atinge a ultima posicao do vector

e posta novamente a zero, reiniciando-se um ciclo que percorre novamente todos os valores.

Em relacao a aritmetica, as amostras de cos Ωpn e sin Ωpn estao em Q15 e os sinais xf (n) e yf (n)

42

Page 61: Módulo de Processamento de Sinal para um Amplificador de ...Agradecimentos A conclusao de uma tese marca o fim de uma etapa marcante na vida profissional e pessoal de˜ cada um

estao em Q12. Por conseguinte, apos a eliminacao do bit de sinal em duplicado e a passagem de 32

bit para 16 bit, o resultado vira em formato Q12, que garante o correcto armazenamento dos valores da

operacao. Por fim, os dois sinais sao somados, com o formato do resultado a poder ser armazenado em

Q12 sem risco de overflow, pois a multiplicacao por sin e cos diminui para metade a amplitude em ambos

os sinais. O resultado da soma constitui o sinal s(n), sobre o qual vao ser procurados os instantes de

passagem por zero.

4.8 Passagem por zero

4.8.1 Aspectos gerais

Este bloco tem por objectivo determinar os instantes de passagem por zero do sinal de saıda do

modulador em quadratura, s(n). Os valores obtidos, em conjunto com os valores dos zeros da onda

portandora cos Ωpn, determinarao os instantes de da onda PWM q(t), a ser gerada posteriormente. O

esquema completo deste bloco pode ser visto na figura 4.9:

Figura 4.9: Esquema de implementacao do bloco passagem por zero.

E oportuno recordar que, conforme referido na seccao 2.1.4, se for cumprida a condicao |f(n)| ≤ π2 ,

cada zero de s(n) esta situado entre um zero da onda portadora que e multiplicada pela parte imaginaria

de zf (n), yf (n), neste caso cos Ωpn. As passagens por zero de sinais sinusoidais, nomeadamente da

funcao cos Ωpn, estao bem determinadas: ocorrem duas vezes por perıodo, ou seja, tem a frequencia

de 2fp = 48 kHz. Tendo estes dois factos em conta, para produzir uma onda do tipo PWM basta

associar ao flanco ascendente o zero de cos Ωpn, com tempos bem definidos, e ao flanco descendente

a passagem por zero de s(n), cujo instante pode ser determinado em relacao ao do flanco ascendente

de forma relativa. O resultado obtido determina, com uma resolucao de 16 bit (neste caso), o valor da

duracao relativa do ciclo de trabalho de uma onda rectangular com um perıodo de 48 kHz. Na figura

4.10 e apresentada uma ampliacao de um exemplo dos dois sinais s(n) e cos Ωpn, onde e possıvel

verificar o entrelacamento dos zeros de cada onda.

De acordo com a explicacao da seccao 4.7, a onda cos Ωpn possui exactamente 16 pontos por

perıodo, ou seja, 8 pontos entre dois zeros consecutivos (contando com o instante de um dos zeros).

No programa em C, no momento em que e detectada uma passagem por zero de cos Ωpn e reinicializado

43

Page 62: Módulo de Processamento de Sinal para um Amplificador de ...Agradecimentos A conclusao de uma tese marca o fim de uma etapa marcante na vida profissional e pessoal de˜ cada um

6880 6885 6890 6895 6900 6905 6910 6915 6920 6925

−1.5

−1

−0.5

0

0.5

1

1.5A

mpl

itude

Figura 4.10: Amostras de s(n) (vermelho) e cos Ωpn (azul): ampliacao de exemplo.

uma variavel (inc) com a funcao de contador que tem um valor mınimo de 0 e um valor maximo de 7

(3 bit), que e incrementada cada vez que e produzida uma amostra de s(n). Quando e detectada uma

passagem por zero de s(n) o valor dessa variavel e guardado, iniciando-se uma processo de procura do

instante de passagem por zero com maior resolucao, que tem essencialmente duas fases. Na primeira,

sao utilizadas 4 amostras consecutivas de s(n), duas negativas e duas positivas, para se produzir uma

funcao que aproxime s(n) para valores entre amostras. A forma escolhida para o fazer foi o polinomio

interpolador de Lagrange, e a explicacao para tal escolha e apresentada na subseccao 4.8.2. Na

segunda, e utilizado o metodo da bisseccao para calcular a posicao da raiz com a precisao de 16 bit. A

justificacao e explicacao desta opcao sao detalhadas na subseccao 4.8.3.

O resultado final do valor do ciclo de trabalho, com a resolucao de 16 bit, e composto, nos tres bits

mais significativos, pelo valor da variavel inc, sendo os restantes 13 bits correspondentes aos 13 bits

mais significativos do resultado da aplicacao do metodo da bisseccao.

4.8.2 Polinomio interpolador de Lagrange

Qualquer metodo iterativo de procura de raızes a partir de um sinal discreto tem necessidade de

estimar valores entre as amostras que o compoem. Tal e conseguido, entre outras opcoes, atraves de

polinomios interpoladores. No contexto deste trabalho, nomeadamente tendo em conta os requisitos de

implementacao em hardware e em tempo real, existem duas limitacoes a ter em conta na escolha dos

polinomios: evitar a operacao de divisao e minimizar a complexidade e latencia no calculo de um valor

pedido.

Para a interpolacao de s(n), e de forma a tirar proveito de algumas particularidades do sinal em

causa, foi escolhido implementar o polinomio interpolador de Lagrange de grau 3. Partindo de 4 amos-

tras do sinal s(n), s−1 = s(n−1), s0 = s(n0), s1 = s(n1) e s2 = s(n2), um valor intermedio x e calculado

atraves de

44

Page 63: Módulo de Processamento de Sinal para um Amplificador de ...Agradecimentos A conclusao de uma tese marca o fim de uma etapa marcante na vida profissional e pessoal de˜ cada um

p(x) =

2∑k=−1

skl′k(x) = s−1l

′−1(x) + s0l

′0(x) + s1l

′1(x) + s2l

′2(x), (4.14)

em que l′k(x) sao polinomios de Lagrange, que toma cada um a forma

l′j(x) =∏

−1≤m≤k,m 6=k

x− xmxj − xm

. (4.15)

Para cada intervalo entre amostras temos uma resolucao de 16 bit, o que corresponde a 216 inter-

valos. Estes tem a particularidade de serem equiespacados, dado que a frequencia de amostragem e

uniforme. Por conseguinte, tendo em conta que so necessitamos do valor relativo do instante e esse

esta situado entre duas amostras consecutivas de sinais diferentes (s0 e s1), podemos convencionar

que os instantes em que estas ocorrem, respectivamente n0 e n1, correspondem aos valores relativos

0 e 1, ou 0 e 65535 em inteiros de 16 bit (em binario correspondem aos bits todos a 0 ou todos a 1). Es-

tendendo esta convencao aos restantes instantes, tem-se n−1 = −1 e n2 = 2, pelo que se substituirmos

esses valores nas varias formas de (4.15) obtemos

l′−1(x) =(x− n0)(x− n1)(x− n2)

(x−1 − n0)(x−1 − n1)(x−1 − n2)= K−1 (x− 1)(x2 − 2x)︸ ︷︷ ︸

l−1(x)

,K−1 = −1

6(4.16a)

l′0(x) =(x− n−1)(x− n1)(x− n2)

(x0 − n−1)(x0 − n1)(x0 − n2)= K0 (x+ 1)(x− 1)(x− 2)︸ ︷︷ ︸

l0(x)

,K0 =1

2, (4.16b)

l′1(x) =(x− n−1)(x− n0)(x− n2)

(x1 − n−1)(x1 − n0)(x1 − n2)= K1 (x+ 1)(x2 + 2x)︸ ︷︷ ︸

l1(x)

,K1 = −1

2, (4.16c)

l′2(x) =(x− n−1)(x− n0)(x− n1)

(x2 − n−1)(x2 − n0)(x2 − n0)= K2 x(x2 − 1)︸ ︷︷ ︸

l2(x)

,K2 =1

6. (4.16d)

Para o calculo de cada lk foi criada uma funcao especıfica, onde eram reproduzidas as operacoes

de (4.16) na forma final, exceptuando a multiplicacao pela respectiva constante Kj . Por fim, o calculo

final do resultado da interpolacao e feito na funcao interpol, onde sao invocadas todas as funcoes

lk(x), multiplicadas pelo respectivo valor Kj e, por fim, adicionadas, conforme a equacao (4.14). O

retorno da funcao corresponde a uma variavel de 16 bit em formato Q12 o que esta de acordo com o

intervalo de valores que s(n) pode assumir.

O agrupamento dos factores em (4.16) foi desenhado para que todos os resultados, tanto os pro-

visorios como os finais, necessitassem do formato com menor numero de bits para representar a parte

inteira, isto e, tentando maximizar o n em Qn. Para tal, foi feito um pequeno programa em MATLAB

que, para cada polinomio lk, produzia graficos com diversos resultados resultantes das diferentes

organizacoes dos factores. Esses graficos encontram-se nas figuras 4.11 a 4.14.

Conforme e possıvel constatar pelos valores das figuras anteriores, a aritmetica adequada para

representar os resultados dos polinomios l−1(x) e l2(x) e Q15 e para l0(x) e l1(x) e Q14. Aquando

da multiplicacao de cada lk(x) pela respectiva constante Kj , nao e logo feita a truncatura para 16 bit.

45

Page 64: Módulo de Processamento de Sinal para um Amplificador de ...Agradecimentos A conclusao de uma tese marca o fim de uma etapa marcante na vida profissional e pessoal de˜ cada um

0 0.5 1−1

−0.5

0x−1

0 0.5 1−1

−0.5

0x2 − 2x

0 0.5 10

0.2

0.4

l−1

= (x−1)(x2−2x)

0 0.5 1−0.4

−0.2

0x2−x

0 0.5 1−2

−1.5

−1x−2

0 0.5 10

0.2

0.4

l−1

= (x2−x)(x−2)

Figura 4.11: Estudo de agrupamentos diferentes de l−1.

0 0.5 1−1

−0.5

0x−1

0 0.5 1−2.5

−2(x+1)(x−2)

0 0.5 10

1

2

l0 = (x−1)(x+1)(x−2)

0 0.5 11

1.5

2x+1

0 0.5 10

1

2(x−1)(x−2)

0 0.5 10

1

2

l0 = (x−1)(x+1)(x−2)

0 0.5 1−2

0

23x−2

0 0.5 10

1

2x2−(3x−2)

0 0.5 10

1

2

l0 = (x−1)(x2−(3x−2))

Figura 4.12: Estudo de agrupamentos diferentes de l0.

O formato do resultado em 32 bit e para todos Q28 (o equivalente a Q12 em 16 bit). Por ultimo, sao

somadas duas a duas as parcelas de (4.14) e, sem mudar de formato, o resultado final e truncado para

16 bit, ficando no formato Q12, no qual qualquer valor de s(n) e representavel.

4.8.3 Metodo da bisseccao

Uma vez garantida a possibilidade de obter uma aproximacao da funcao sem recurso a operacoes

de divisao, e aplicado o metodo da bisseccao na procura da raiz do polinomio. Foram investigados

bastantes metodos para esta parte final do algoritmo, entre eles o metodo da bisseccao, interpolacao

quadratica inversa, secante, Newton, Ridders, Muller, e metodos que se constituem como combinacao

de varios outros, como Brent-Dekker [Press et al., 1996].

46

Page 65: Módulo de Processamento de Sinal para um Amplificador de ...Agradecimentos A conclusao de uma tese marca o fim de uma etapa marcante na vida profissional e pessoal de˜ cada um

0 0.5 10

0.5

1x3

0 0.5 10

2

4x2 + 2x

0 0.5 1−2

−1

0

l1 = x3 − x2 − 2x

0 0.5 1−0.4

−0.2

0x(x−1)

0 0.5 1−2.5

−2x(x−1)−2

0 0.5 1−2

−1

0

l1 = x(x(x−1)−2)

0 0.5 10

0.5

1x2

0 0.5 1−2

−1

0−2x

0 0.5 1−2

−1

0

l1 = (x+1)(x2−2x)

Figura 4.13: Estudo de agrupamentos diferentes de l1.

0 0.5 10

0.5

1x3

0 0.5 10

0.5

1x

0 0.5 1−0.4

−0.2

0

l2 = x3−x

0 0.5 1−1

−0.5

0x2−1

0 0.5 10

0.5

1x

0 0.5 1−0.4

−0.2

0

l2 = (x2−1)x

Figura 4.14: Estudo de agrupamentos diferentes de l2.

O criterio de maior peso que ditou a escolha do metodo da bisseccao foi o facto de, entre todos os

metodos estudados, este ser o unico em que a unica operacao de divisao que e necessario efectuar

durante a sua execucao e uma divisao por 2, ou seja, pode ser executada com recurso a um shift

right, sem necessidade de utilizar um bloco divisor. De facto, apesar de todos os outros metodos

apresentarem uma convergencia mais rapida, necessitam de efectuar, no mınimo, uma divisao, na qual

o divisor pode tomar qualquer valor. Numa implementacao pratica do circuito, a necessidade de uma

divisao tornaria o algoritmo irrealizavel, visto ser preciso pelo menos uma por cada iteracao, o que

aumentaria o numero de ciclos de relogio por amostra para valores impraticaveis. Apesar do metodo da

bisseccao possuir convergencia linear [Press et al., 1996], a convergencia para o resultado e garantida,

pelo que o metodo e estavel.

47

Page 66: Módulo de Processamento de Sinal para um Amplificador de ...Agradecimentos A conclusao de uma tese marca o fim de uma etapa marcante na vida profissional e pessoal de˜ cada um

A aplicacao do metodo da bisseccao e feita atraves de uma funcao propria, que tem como argumen-

tos as quatro amostras na vizinhanca imediata da passagem por zero de s(n). Comeca-se por definir os

valores iniciais do intervalo [a, b] sobre o qual se vai aplicar o metodo como sendo a = 0 e b = 1 (valores

decimais). De seguida, e calculada a aproximacao para o valor de zero (curr zero) como sendo o ponto

medio do intervalo onde esta contido, com recurso a um shift right de 1 bit:

curr zero = (a+ b) 1. (4.17)

Sao tambem calculados os valores de p(a) e p(curr zero), recorrendo a chamada da funcao interpol,

sobre os quais e feito o teste crucial do metodo: se o sinal de p(a) for diferente do sinal de p(curr zero),

pela aplicacao directa do teorema de Bolzano, e tendo em conta a monotonia de p(t) nesse intervalo,

podemos concluir que existe um unico zero entre a e curr zero. O valor limite superior do intervalo

e entao actualizado, passando o novo intervalo a ser [a, currzero]. Se o sinal de p(curr zero) fosse

diferente do sinal de b, era o limite inferior do intervalo a ser actualizado, passando a ser a = curr zero,

e o intervalo [curr zero, b]. Tambem estao previstos, apesar da baixa probabilidade, os casos em que

o instante de aproximacao coincide com o instante do zero. Por fim, e em cada iteracao, o valor da

aproximacao para o instante de zero e guardado. Nas iteracoes seguintes repete-se este procedi-

mento. A condicao de paragem do algoritmo e testada antes da chamada a funcao de interpolacao: se

a aproximacao para o valor de zero da iteracao anterior for igual a da presente iteracao, tal significa que

o instante esta encontrado. Nesta implementacao, cada determinacao de instante de zero demora no

maximo 16 ciclos de relogio, visto que em cada iteracao se define no mınimo 1 bit do resultado.

O valor de retorno da funcao corresponde entao a um inteiro de 16 bit, cujos 13 bit mais significativos

sao concatenados, ja na funcao principal do programa, com os 3 bits da variavel inc. Este resultado,

que constitui o produto final do programa, corresponde a um valor do ciclo de trabalho da onda q(t) com

16 bit de resolucao.

Resumindo, um sinal de entrada colocado a entrada do sistema produz um conjunto de ciclos de

trabalho calculados atraves do processo descrito anteriormente, ciclos esses que sao utilizados para

produzir posteriormente a onda q(t) no programa MATLAB, onde tambem e analisado o seu espectro.

48

Page 67: Módulo de Processamento de Sinal para um Amplificador de ...Agradecimentos A conclusao de uma tese marca o fim de uma etapa marcante na vida profissional e pessoal de˜ cada um

Capıtulo 5

Resultados

5.1 Introducao

Neste capıtulo serao apresentados os resultados dos blocos descritos no capıtulo 4. Nas seccoes

5.2 a 5.5 sao exibidos e comentados os resultados obtidos em cada bloco da implementacao, tendo

cada um como sinal de entrada o resultado do bloco anterior. O sinal f(n) escolhido como entrada do

sistema para produzir os resultados bloco a bloco encontra-se na expressao (5.1), e o seu espectro

na figura 5.1. Como f(n) e um sinal digital amostrado a 48 kHz, a Fast Fourier Transform (FFT) do

mesmo possui harmonicas do sinal em multiplos inteiros da frequencia de amostragem: 48±1 kHz, 96±

1 kHz, 144 ± 1 kHz, 192 − 1 kHz - o limite do eixo de frequencias. Foram geradas 5120 amostras, um

numero suficiente para conter varios perıodos do sinal.

f(n) = A · sin(2πfinn), A = 1, fin = 972.6563 Hz (5.1)

101

102

103

104

105

106

−400

−350

−300

−250

−200

−150

−100

−50

0

Freq [Hz]

MA

G [d

B]

Figura 5.1: Modulo da transformada de Fourier do sinal de entrada (≈ 1 kHz).

49

Page 68: Módulo de Processamento de Sinal para um Amplificador de ...Agradecimentos A conclusao de uma tese marca o fim de uma etapa marcante na vida profissional e pessoal de˜ cada um

A razao pela qual fin nao e exactamente 1 kHz prende-se com o facto de ser necessario produzir

uma transformada de Fourier discreta, atraves do algoritmo de FFT , que seja coerente, ou seja, que

nao possua espalhamento espectral, para que este nao interfira na interpretacao do correcto funcio-

namento do circuito. Para tal, introduz-se esta pequena correccao, calculada atraves de uma rotina

em MATLAB. A amplitude do sinal escolhida nao foi A = π2 pois perto da sua amplitude maxima a

modulacao pode apresentar alguma distorcao [Logan, 1984a], principalmente para frequencias mais

proximas do limite da largura de banda de um sinal audio. Por essa razao, foi determinado como valor

maximo de amplitude A = 1.

E feito para cada bloco uma comparacao com os resultados obtidos pelo modelo em MATLAB, ja

testado e validado. Na seccao 5.6 apresentam-se resultados da modulacao com sinais de entrada com

frequencias diferentes do sinal expresso em (5.1), bem como um sinal multi-tom.

5.2 Transformada de Hilbert e interpolacao

Nas figuras 5.2 e 5.4 e possıvel ver o espectro dos dois sinais de saıda deste bloco, correspondentes

as partes real e imaginaria de fA(n). Nas figuras 5.3 e 5.5 reproduzem-se os espectros dos sinais no

modelo em MATLAB, para efeitos de comparacao com os sinais anteriores. Em ambos os espectros

do modelo em C (figuras 5.2 e 5.4) sao visıveis dois tipos de harmonicas: um dentro da banda de base

do sinal, ate 24 kHz, que corresponde a multiplos inteiros da frequencia do sinal de entrada dentro da

banda de interesse do sinal; outro fora da banda de interesse do sinal, que corresponde a replicas de

f(n) em multiplos inteiros da frequencia de amostragem. Em qualquer dos casos, o resultado da FFT

apresenta um patamar de ruıdo bem abaixo dos -100 dB, na ordem dos -120 dB, sendo a diferenca

para o patamar de ruıdo do modelo em MATLAB atribuıda a resolucao dos operandos em causa: 16 bit

em vırgula fixa no caso do primeiro e 64 bit de vırgula flutuante no caso deste ultimo. a diferenca desta

magnitude esta presente em todos os blocos ate ao modulador em quadratura (inclusive).

101

102

103

104

105

106

−250

−200

−150

−100

−50

0

Freq [Hz]

MA

G [d

B]

Figura 5.2: Modelo em C: modulo da transformada de Fourier de f(n) (≈ 1 kHz).

50

Page 69: Módulo de Processamento de Sinal para um Amplificador de ...Agradecimentos A conclusao de uma tese marca o fim de uma etapa marcante na vida profissional e pessoal de˜ cada um

101

102

103

104

105

106

−400

−350

−300

−250

−200

−150

−100

−50

0

Freq [Hz]

MA

G [d

B]

Figura 5.3: Modelo em MATLAB: modulo da transformada de Fourier de f(n) (≈ 1 kHz).

101

102

103

104

105

106

−250

−200

−150

−100

−50

0

Freq [Hz]

MA

G [d

B]

Figura 5.4: Modelo em C: modulo da transformada de Fourier de f(n) (≈ 1 kHz).

101

102

103

104

105

106

−450

−400

−350

−300

−250

−200

−150

−100

−50

0

Freq [Hz]

MA

G [d

B]

Figura 5.5: Modelo em MATLAB: modulo da transformada de Fourier de f(n) (≈ 1 kHz).

51

Page 70: Módulo de Processamento de Sinal para um Amplificador de ...Agradecimentos A conclusao de uma tese marca o fim de uma etapa marcante na vida profissional e pessoal de˜ cada um

5.3 Modulador exponencial analıtico e filtragem

A semelhanca da seccao anterior, nas figuras 5.6 e 5.8 e possıvel ver o espectro dos dois sinais

de saıda deste bloco, x(n) e y(n), correspondentes as partes real e imaginaria de e−fA(n). Nas figuras

5.7 e 5.9 reproduzem-se os espectros dos mesmos sinais no modelo em MATLAB, para efeitos de

comparacao com os sinais anteriores. A diferenca do modelo em C para o modelo em MATLAB assenta

principalmente no patamar de ruıdo, que se deve, conforme referido na seccao anterior, a resolucao dos

operandos.

−2 −1.5 −1 −0.5 0 0.5 1 1.5 2

x 105

−180

−160

−140

−120

−100

−80

−60

−40

−20

0

20

Freq [Hz]

MA

G [d

B]

Figura 5.6: Modelo em C: modulo da transformada de Fourier de x(n) (≈ 1 kHz).

−2 −1.5 −1 −0.5 0 0.5 1 1.5 2

x 105

−400

−350

−300

−250

−200

−150

−100

−50

0

50

Freq [Hz]

MA

G [d

B]

Figura 5.7: Modelo em MATLAB: modulo da transformada de Fourier de x(n) (≈ 1 kHz).

52

Page 71: Módulo de Processamento de Sinal para um Amplificador de ...Agradecimentos A conclusao de uma tese marca o fim de uma etapa marcante na vida profissional e pessoal de˜ cada um

−2 −1.5 −1 −0.5 0 0.5 1 1.5 2

x 105

−180

−160

−140

−120

−100

−80

−60

−40

−20

0

Freq [Hz]

MA

G [d

B]

Figura 5.8: Modelo em C: modulo da transformada de Fourier de y(n) (1 kHz).

−2 −1.5 −1 −0.5 0 0.5 1 1.5 2

x 105

−400

−350

−300

−250

−200

−150

−100

−50

0

Freq [Hz]

MA

G [d

B]

Figura 5.9: Modelo em MATLAB: modulo da transformada de Fourier de y(n) (≈ 1 kHz).

Nas figuras 5.10 e 5.12 e possıvel ver o espectro dos dois sinais de saıda deste bloco, correspon-

dentes as partes real e imaginaria de e−fA(n) depois da passagem pelo filtro passa-baixo. Nas figuras

5.11 e 5.13 reproduzem-se os espectros dos mesmos sinais no modelo em MATLAB. E tambem de

salientar que, no modelo em C, os componentes de sinal em torno dos multiplos inteiros da frequencia

de amostragem inicial nao sao visıveis devido ao patamar de ruıdo, ao contrario do modelo em MA-

TLAB, onde estao presentes. No entanto, como em qualquer dos casos sao bastante atenuadas, a sua

influencia nao se faz sentir no resultado do sinal PWM final, como se vera.

53

Page 72: Módulo de Processamento de Sinal para um Amplificador de ...Agradecimentos A conclusao de uma tese marca o fim de uma etapa marcante na vida profissional e pessoal de˜ cada um

101

102

103

104

105

106

−180

−160

−140

−120

−100

−80

−60

−40

−20

0

Freq [Hz]

MA

G [d

B]

Figura 5.10: Modelo em C: modulo da transformada de Fourier de xf (n) (≈ 1 kHz).

101

102

103

104

105

106

−400

−350

−300

−250

−200

−150

−100

−50

0

50

Freq [Hz]

MA

G [d

B]

Figura 5.11: Modelo em MATLAB: modulo da transformada de Fourier de xf (n) (≈ 1 kHz).

101

102

103

104

105

106

−180

−160

−140

−120

−100

−80

−60

−40

−20

0

Freq [Hz]

MA

G [d

B]

Figura 5.12: Modelo em C: modulo da transformada de Fourier de yf (n) (≈ 1 kHz).

54

Page 73: Módulo de Processamento de Sinal para um Amplificador de ...Agradecimentos A conclusao de uma tese marca o fim de uma etapa marcante na vida profissional e pessoal de˜ cada um

101

102

103

104

105

106

−400

−350

−300

−250

−200

−150

−100

−50

0

50

Freq [Hz]

MA

G [d

B]

Figura 5.13: Modelo em MATLAB: modulo da transformada de Fourier de yf (n) (≈ 1 kHz).

5.4 Modulador em quadratura

A FFT do sinal de saıda deste bloco, s(n), encontra-se na figura 5.14, e na figura 5.15 encontra-se o

espectro do mesmo sinal produzido com o modelo em MATLAB. A semelhanca das figuras anteriores,

o patamar de ruıdo encontra-se em torno de -120 dB, que corresponde a resolucao de 16 bit que o sinal

possui. Este sinal corresponde a soma de duas parcelas, sendo cada uma a multiplicacao de um sinal,

xf (n) ou yf (n), por um sinal sinusoidal, cos(2πfpn) e sin(2πfpn), respectivamente). No domınio da

frequencia, essas operacoes correspondem a um deslocamento do centro de cada um dos espectros

de zf (n) para fp = 24 kHz.

101

102

103

104

105

106

−180

−160

−140

−120

−100

−80

−60

−40

−20

0

Freq [Hz]

MA

G [d

B]

Figura 5.14: Modelo em C: modulo da transformada de Fourier de s(n) (≈ 1 kHz).

55

Page 74: Módulo de Processamento de Sinal para um Amplificador de ...Agradecimentos A conclusao de uma tese marca o fim de uma etapa marcante na vida profissional e pessoal de˜ cada um

101

102

103

104

105

106

−350

−300

−250

−200

−150

−100

−50

0

Freq [Hz]

MA

G [d

B]

Figura 5.15: Modelo em MATLAB: modulo da transformada de Fourier de s(n) (≈ 1 kHz).

5.5 Passagem por zero

Por fim, neste bloco, depois da determinacao das raızes no programa em C e escrito para um ficheiro

o valor dos ciclos de trabalho que compoem a onda q(t). Esses valores sao lidos no MATLAB, onde

tambem e gerada a respectiva onda rectangular, simulando desta forma um circuito gerador de PWM

numa posterior implementacao em circuito. Na figura 5.16 e apresentado o modulo da transformada

de Fourier de q(t) gerado a partir do modelo em C e na figura 5.17 encontra-se o espectro de q(t)

produzido a partir do modelo em MATLAB, ambos tendo como sinal de entrada o sinal sinusoidal de 1

kHz referido na expressao (5.1).

101

102

103

104

105

106

107

108

109

−200

−180

−160

−140

−120

−100

−80

−60

−40

−20

0

Freq [Hz]

MA

G [d

B]

Figura 5.16: Modelo em C: modulo da transformada de Fourier de q(t) (≈ 1 kHz).

56

Page 75: Módulo de Processamento de Sinal para um Amplificador de ...Agradecimentos A conclusao de uma tese marca o fim de uma etapa marcante na vida profissional e pessoal de˜ cada um

101

102

103

104

105

106

107

108

109

−200

−150

−100

−50

0

Freq [Hz]

MA

G [d

B]

Figura 5.17: Modelo em MATLAB: modulo da transformada de Fourier de q(t) (≈ 1 kHz).

Como se pode constatar comparando as duas figuras, o patamar de ruıdo e o mesmo, aproximada-

mente -120 dB, pois tanto num modelo como noutro foi tomado como resolucao para a determinacao

das raızes o valor de 16 bit. De resto, as mesmas sao bastante semelhantes, principalmente no que

toca a principal caracterıstica da modulacao: o isolamento da banda de interesse do sinal dos compo-

nentes de alta frequencia por elas geradas. De facto, conforme previsto teoricamente, e de acordo com

figura 2.1, entre 20 kHz e, aproximadamente, 23 kHz, nao existe conteudo espectral relevante, pelo

que o filtro de desmodulacao pode conter uma banda de transicao nao muito selectiva, dado que tem

disponıvel esta gama de frequencias.

No caso do modelo em C, na figura 5.16, constata-se a presenca de harmonicas de sinal em torno

de 24 kHz, ao contrario do que sucede na figura 5.17, em que as harmonicas mais proximas da banda

do sinal aparecem com significado apenas em torno de 48 kHz. No entanto, de 20 kHz a 23 kHz nao

sao encontradas harmonicas acima do patamar de -100 dB. Adicionalmente, ainda que com pouca

expressao, a harmonica do sinal de entrada f(t) a 2 kHz surge ligeiramente acima do patamar de -100

dB. Conclui-se desta forma que o sinal gerado pelo modelo em C comprova o seu bom funcionamento.

5.6 Outros sinais

De forma a testar o bom funcionamento do modelo em C da CM para sinais com outra ordem de

grandeza (mais perto do limite da banda audio) e com outras caracterısticas (multi-tom), foram gerados

mais dois sinais sinusoidais puros, com frequencias de fin = 10 kHz e fin = 20 kHz, este ultimo com

amplitude de 0.5. Tambem foi gerado o sinal multi-tom expresso em 5.2:

fmulti(n) = A1 · sin(2πf1n) +A2 · sin(2πf2n), A1 = A2 = 0.5, f1 = 1kHz, f2 = 2kHz. (5.2)

Nas figuras 5.18 e 5.19 apresentam-se respectivamente os espectros do sinal com fin = 10 kHz do

modelo em C e do modelo em MATLAB, e nas figuras 5.20 e 5.21 sao mostrados os espectros de q(t)

para o sinal de entrada com fin = 20 kHz. A semelhanca do caso de fin = 1 kHz, tambem a frequencia

dos sinais de entrada para os casos anteriores foi ligeiramente alterada para que as FFTs produzidas

sejam coerentes.

57

Page 76: Módulo de Processamento de Sinal para um Amplificador de ...Agradecimentos A conclusao de uma tese marca o fim de uma etapa marcante na vida profissional e pessoal de˜ cada um

101

102

103

104

105

106

107

108

109

−200

−180

−160

−140

−120

−100

−80

−60

−40

−20

0

Freq [Hz]

MA

G [d

B]

Figura 5.18: Modelo em C: modulo da transformada de Fourier de q(t) (≈ 10 kHz).

101

102

103

104

105

106

107

108

109

−200

−150

−100

−50

0

Freq [Hz]

MA

G [d

B]

Figura 5.19: Modelo em MATLAB: modulo da transformada de Fourier de q(t) (≈ 10 kHz).

Numa analise as figuras 5.18 e 5.19, no modelo em C sao visıveis 4 harmonicas (nas frequencias

aproximadas de 2, 4, 8 e 16 kHz) ligeiramente acima de -100 dB, sendo que ha uma separacao signi-

ficativa entre a componente de sinal e o conteudo de alta frequencia (frequencias iguais ou superiores

a 24 kHz). O comportamento do modelo em MATLAB e semelhante, embora as harmonicas possuam

valores de magnitude ligeiramente inferiores aos do modelo em C. O efeito destas componentes pode

explicar-se pela amplitude do sinal de entrada que, ja sendo relativo a uma frequencia relativamente alta

na banda audio, com um valor alto de magnitude deste valor, introduz na banda de interesse harmonicas

do produto de sinais com frequencias distintas aquando da modulacao em quadratura. No entanto, o

efeito dessas harmonicas na qualidade do sinal e praticamente desprezavel face a amplitude do pico a

10 kHz.

Apesar disso, o patamar de ruıdo continua estavel nos -120 dB, tanto num caso como noutro. A

aparente maior ondulacao na resposta em baixa frequencia deve-se ao modo como e apresentada a

FFT . Dado que a escala no eixo horizontal e logarıtmica, partindo do seu valor maximo e a medida

58

Page 77: Módulo de Processamento de Sinal para um Amplificador de ...Agradecimentos A conclusao de uma tese marca o fim de uma etapa marcante na vida profissional e pessoal de˜ cada um

que nos vamos aproximando de valores cada vez mais proximos de DC, o numero de pontos utilizados

para a producao da figura diminui, provocando uma imprecisao na apresentacao da resposta. Para a

producao de um espectro com resposta mais exacta em escala logarıtmica seria necessario um numero

de pontos que impossibilitaria a computacao do grafico.

101

102

103

104

105

106

107

108

109

−200

−180

−160

−140

−120

−100

−80

−60

−40

−20

0

Freq [Hz]

MA

G [d

B]

Figura 5.20: Modelo em C: modulo da transformada de Fourier de q(t) (≈ 20 kHz).

101

102

103

104

105

106

107

108

109

−300

−250

−200

−150

−100

−50

0

Freq [Hz]

MA

G [d

B]

Figura 5.21: Modelo em MATLAB: modulo da transformada de Fourier de q(t) (≈ 20 kHz).

Os espectros presentes nas figuras 5.20 e 5.21, que dizem respeito ao sinal de entrada de 20 kHz,

tem um desempenho melhor do que no caso das figuras 5.18 e 5.19, ja que as harmonicas referidas

anteriormente existem mais atenuadas, provocando aliasing, ou nao existem de todo. O patamar de

ruıdo continua estavel nos -120 dB e tanto o resultado do modelo em MATLAB como o modelo em

C apresentam uma separacao significativa entre a componente de sinal e as componentes de alta

frequencia, apesar da proximidade entre ambos.

Por fim, apresentam-se os espectros de qmulti(t) gerados pelo sinal fmulti(n) definido em (5.2),

cujas frequencias constituem um teste standard na area. O resultado do modelo em C encontra-se na

figura 5.22 e resultado do modelo em MATLAB na figura 5.23.

59

Page 78: Módulo de Processamento de Sinal para um Amplificador de ...Agradecimentos A conclusao de uma tese marca o fim de uma etapa marcante na vida profissional e pessoal de˜ cada um

101

102

103

104

105

106

107

108

109

−200

−180

−160

−140

−120

−100

−80

−60

−40

−20

0

Freq [Hz]

MA

G [d

B]

Figura 5.22: Modelo em C: modulo da transformada de Fourier de q(t) (≈ 1 + ≈ 2 kHz).

101

102

103

104

105

106

107

108

109

−200

−150

−100

−50

0

Freq [Hz]

MA

G [d

B]

Figura 5.23: Modelo em MATLAB: modulo da transformada de Fourier de q(t) (≈ 1 + ≈ 2 kHz).

O resultado do modelo em MATLAB nao possui harmonicas dentro da banda de interesse do sinal,

apresentando as primeiras componentes de alta frequencia em torno de 48 kHz. O modelo em C

apresenta 3 harmonicas a 3, 4 e 5 kHz ligeiramente acima dos -100 dB. No entanto, para alem das

mencionadas, ate as componentes apos os 24 kHz, ja fora da banda de audio, a resposta continua com

uma magnitude na ordem dos -120 dB.

5.7 Consideracoes finais

Para informacao adicional em relacao aos resultados da implementacao foram produzidas duas

tabelas. A tabela 5.1 contem a informacao dos erros mınimo, medio e maximo de cada sinal produzido

nos varios blocos da implementacao. A 5.2 apresenta resultados quantitativos relevantes para a analise

de um sistema audio, o Signal-to-Noise Ratio (SNR) e a Total Harmonic Distortion (THD), relativos aos

sinais resultantes dos varios sinais de entrada que serviram de teste a esta implementacao.

60

Page 79: Módulo de Processamento de Sinal para um Amplificador de ...Agradecimentos A conclusao de uma tese marca o fim de uma etapa marcante na vida profissional e pessoal de˜ cada um

Erros mınimos Erros medios Erros maximosParte real Parte imaginaria Parte real Parte imaginaria Parte real Parte imaginaria

Hilbert −0.0143 −0.0189 −2.0017 · 10−5 2.3414 · 10−5 0.0143 0.0189AEM −0.0337 −0.0395 1.2 · 10−3 2 · 10−3 0.0385 0.0177

LP pos-AEM −0.0320 −0.0367 6.8617 · 10−4 1.8 · 10−3 0.0356 0.0169QUAD −0.0381 −2.1274 · 10−4 0.0376PWM −4.4 · 10−3 −4.061 · 10−5 4.6 · 10−3

Tabela 5.1: Erros absolutos entre resultados do modelo em C e do modelo em MATLAB.

A partir da analise dos erros maximos da tabela 5.1 conclui-se que, apesar dos erros absolutos

nas amplitudes dos sinais de saıda dos blocos anteriores a formacao da onda q(t) estarem na casa

dos 10−2, o erro absoluto neste ultimo bloco diminui uma ordem de grandeza, pois a determinacao

das raızes do sinal nao e grandemente afectada pela amplitude do sinal s(n), mas sim pelo metodo de

procura e precisao dos seus zeros. Por essa razao, a implementacao deste ultimo bloco (passagem por

zero) e de vital importancia para o desempenho do algoritmo, ja que a sua relativa independencia em

relacao aos restantes pode compensar alguma falta de precisao nos calculos intermedios.

SNR [dB] THD [dB]MATLAB C MATLAB C

1 kHz 104.00 104.90 −95.49 −86, 1210 kHz 103.51 105.18 −82.13 −67.7320 kHz 93.85 96.26 − −

1+2 kHz 104.00 104.90 −95.15 −93.33

Tabela 5.2: SNR e THD do modelo em C e do modelo em MATLAB.

Tambem atraves da analise da tabela 5.2 podemos concluir que os resultados os quatro sinais uti-

lizados para testar a modulacao, que sao representativos das varias ordens de grandeza e das carac-

terısticas dos sinais de audio, produziram bons resultados, passıveis de serem utilizados em contextos

de audio de alta fidelidade.

61

Page 80: Módulo de Processamento de Sinal para um Amplificador de ...Agradecimentos A conclusao de uma tese marca o fim de uma etapa marcante na vida profissional e pessoal de˜ cada um

62

Page 81: Módulo de Processamento de Sinal para um Amplificador de ...Agradecimentos A conclusao de uma tese marca o fim de uma etapa marcante na vida profissional e pessoal de˜ cada um

Capıtulo 6

Conclusoes

6.1 Trabalho desenvolvido

Nesta dissertacao foi desenvolvido e apresentado um modulo de processamento de sinal que im-

plementou a CM em linguagem C, em tempo real, com operandos e operacoes de vırgula fixa. Os

resultados de todos os blocos foram comparados com o modelo ja existente em MATLAB, e foi confir-

mado o seu bom funcionamento.

Possuir uma descricao do algoritmo neste formato proporciona a futuros projectos uma base versatil

importante, na medida em que contem as operacoes matematicas da modulacao em algebra de Boole.

Tal caracterıstica permite que a modulacao possa ser transposta de forma directa para qualquer tipo

de linguagem de descricao de hardware, para DSPs com capacidade de interpretar linguagem C de

vırgula fixa ou para qualquer outro meio de sıntese de circuitos digitais.

O bloco de Hilbert e interpolacao foi implementado com um filtro FIR com estrutura polifasica de

forma a agrupar a transformda de Hilbert e a interpolacao. Para o bloco AEM foi utilizada a aproximacao

da exponencial por serie de Maclaurin, tanto para uma exponencial real como para as partes real e

imaginaria de uma exponencial complexa. A filtragem posterior e feita recorrendo novamente a um FIR.

O bloco modulador em quadratura consiste na multiplicacao das partes real e imaginaria da saıda do

filtro por, respectivamente, sin(Ωpn) e cos(Ωpn), sendo ambos somados no final. Por ultimo, no bloco de

passagem por zero e feita uma interpolacao polinomial de grau 3 em torno do zero de s(n) com recurso

ao polinomio interpolador de Lagrange, e e calculada a sua raiz atraves da aplicacao do metodo da

bisseccao. As operacoes algebricas do algoritmo correspondem a somas, subtraccoes, multiplicacoes

e divisoes em que o divisor e uma potencia de base 2, de forma a facilitar a sua execucao.

Conforme demonstrado no capıtulo 5, a implementacao foi bem sucedida e os resultados obtidos

foram bons, tanto para sinais de entrada sinusoidais puros como para sinais multi-tom. Os valores

de erro obtidos nos varios blocos do processamento, bem como os de SNR e THD comprovam que

esta implementacao da modulacao pode ser utilizada nos contextos de audio de alta fidelidade, pois

apresentou caracterısticas bastante mais competitivas que as modulacoes concorrentes, tais como a

banda de guarda entre a banda de audio e as altas frequencias, e a baixa frequencia de comutacao da

63

Page 82: Módulo de Processamento de Sinal para um Amplificador de ...Agradecimentos A conclusao de uma tese marca o fim de uma etapa marcante na vida profissional e pessoal de˜ cada um

onda PWM produzida. Por conseguinte, conclui-se que foi concluıda com sucesso mais uma etapa do

projecto que serve de base ao trabalho futuro.

6.2 Trabalho futuro

Antes da implementacao da CM em circuito integrado e necessario testar o seu funcionamento em

FPGA. Antes do seu projecto em circuito, deve ser criado um ficheiro com ciclos de trabalho gerado

a partir do programa em C, e o seu funcionamento testado de forma offline num click player, ou seja,

um circuito gerador de ondas rectangulares, de forma a confirmar experimentalmente que o programa

produz os resultados previstos.

Para o projecto em hardware configuravel foi iniciada ja no decorrer desta dissertacao a conversao

do algoritmo de vırgula fixa em C para Verilog, uma linguagem de descricao de hardware, com recurso a

uma ferramenta da Xilinx, o Vivado High-Level Sinthesis. Foi concluıda com sucesso a implementacao

automatica dos blocos individuais, com resultados testados e validados bloco a bloco, ficando a faltar a

interligacao dos mesmos para o funcionamento integral do circuito. Apesar dos resultados da sıntese

automatica terem sido iguais aos do algoritmo em vırgula fixa, dado que a ferramenta disponibilizada

e relativamente recente, o projecto deve ser supervisionado recorrendo-se, se necessario, a sıntese

individual e personalizada dos blocos. Nas condicoes descritas anteriormente, uma FPGA da famılia

das Virtex-7 era suficiente para implementar os recursos computacionais necessarios, o que sugere

que a sıntese do algoritmo para hardware configuravel numa so placa esta proximo da concretizacao.

Pode ainda proceder-se ao estudo detalhado do erro de calculo em cada passo do processo, e

nao apenas bloco a bloco, como foi feito. Esse estudo permitiria detalhar as operacoes em que seria

necessario introduzir maior precisao nos calculos intermedios. Adicionalmente, numa fase posterior,

pode estudar-se com mais detalhe o aparecimento no espectro da onda final de componentes que

resultaram de aliasing, isto e, harmonicas de sinal de entrada que sao detectadas na banda de interesse

do sinal por terem valores superiores a fs2 . Apesar desta componente de distorcao nao se revelar de

forma relevante nos resultados obtidos, pode em certas condicoes constituir um problema, pelo que

merece ser estudado de forma a melhorar a implementacao da modulacao.

64

Page 83: Módulo de Processamento de Sinal para um Amplificador de ...Agradecimentos A conclusao de uma tese marca o fim de uma etapa marcante na vida profissional e pessoal de˜ cada um

Bibliografia

AES. 51st international conference report: Loudspeakers and headphones. Journel of the Audio Engi-

neering Society, 61(10), August 2013. http://www.aes.org/events/reports/51stConference.pdf.

T. Domingues and P. Braga. Click modulation matlab model. Advanced Communications and Multimedia

Electronic Systems, 2013.

T. Domingues, M. Santos, and G. Tavares. Low frequency pwm modulation for high efficiency class-d

audio driving. In Design of Circuits and Integrated Circuits (DCIS), 2014 Conference on, pages 1–5.

IEEE, 2014.

T. Domingues, M. Santos, and G. Tavares. A click modulation audio player. Design of Circuits and

Integrated Circuits (DCIS), 2015 Conference on, November 2015.

B. F. Logan. Information in the zero crossings of bandpass signals. Bell System Technical Journal, 56

(4):487–510, 1977. ISSN 1538-7305. doi: 10.1002/j.1538-7305.1977.tb00522.x. URL http://dx.

doi.org/10.1002/j.1538-7305.1977.tb00522.x.

B. F. Logan. Theory of analytic modulation systems. Bell System Technical Journal, 57(3):491–576,

1978. ISSN 1538-7305. doi: 10.1002/j.1538-7305.1978.tb00595.x. URL http://dx.doi.org/10.

1002/j.1538-7305.1978.tb00595.x.

B. F. Logan. Click modulation. AT&T Bell Laboratories Technical Journal, 63(3):401–423, 1984a.

ISSN 1538-7305. doi: 10.1002/j.1538-7305.1984.tb00011.x. URL http://dx.doi.org/10.1002/

j.1538-7305.1984.tb00011.x.

B. F. Logan. Signals designed for recovery after clipping—i. localization of infinite products. AT&T Bell

Laboratories Technical Journal, 63(2):261–285, 1984b. ISSN 1538-7305. doi: 10.1002/j.1538-7305.

1984.tb00094.x. URL http://dx.doi.org/10.1002/j.1538-7305.1984.tb00094.x.

B. F. Logan. Signals designed for recovery after clipping—ii. fourier transform theory of recovery.

AT&T Bell Laboratories Technical Journal, 63(2):287–306, 1984c. ISSN 1538-7305. doi: 10.1002/

j.1538-7305.1984.tb00095.x. URL http://dx.doi.org/10.1002/j.1538-7305.1984.tb00095.x.

B. F. Logan. Signals designed for recovery after clipping—iii: Generalizations. AT&T Bell Laboratories

Technical Journal, 63(3):379–399, 1984d. ISSN 1538-7305. doi: 10.1002/j.1538-7305.1984.tb00010.

x. URL http://dx.doi.org/10.1002/j.1538-7305.1984.tb00010.x.

65

Page 84: Módulo de Processamento de Sinal para um Amplificador de ...Agradecimentos A conclusao de uma tese marca o fim de uma etapa marcante na vida profissional e pessoal de˜ cada um

A. Oliva, E. Paolini, and S. S. Ang. A new audio file format for low-cost, high-fidelity, portable digital

audio amplifiers. 2005.

A. V. Oppenheim and R. W. Schafer. Digital Signal Processing, chapter 7.

W. H. Press, S. A. Teukolsky, W. T. Vetterling, and B. P. Flannery. Numerical recipes in C, volume 2.

Cambridge university press Cambridge, 1996.

A. S. Sedra and K. C. Smith. Microelectronic Circuits International Student Edition, chapter 14. Oxford

University Press, Inc., 5th edition, 2004.

K. P. Sozanski. A digital click modulator for a class-d audio power amplifier. Elektronika: konstrukcje,

technologie, zastosowania, 51(3):84–88, 2010.

L. Stefanazzi, E. Paolini, and A. Oliva. Click modulation: an off-line implementation. In Circuits and

Systems, 2008. MWSCAS 2008. 51st Midwest Symposium on, pages 946–949. IEEE, 2008.

L. Stefanazzi, A. R. Oliva, and E. E. Paolini. Alias-free digital click modulator. Industrial Informatics,

IEEE Transactions, 9(2):1074–1083, 2013.

M. Streitenberger and W. Mathis. A novel coding topology for digital class-d audio power amplifiers with

very low pulse-repetition rate. In Solid-State Circuits Conference, 2002. ESSCIRC 2002. Proceedings

of the 28th European, pages 515–518, Sept 2002.

M. Streitenberger, F. Felgenhauer, H. Bresch, and W. Mathis. Class-d audio amplifiers with separated

baseband for low-power mobile applications. In Circuits and Systems for Communications, 2002.

Proceedings. ICCSC ’02. 1st IEEE International Conference on, pages 186–189, 2002. doi: 10.1109/

OCCSC.2002.1029076.

G. Tavares and M. Piedade. Digital number representation. Instituto Superior Tecnico, 2006.

66

Page 85: Módulo de Processamento de Sinal para um Amplificador de ...Agradecimentos A conclusao de uma tese marca o fim de uma etapa marcante na vida profissional e pessoal de˜ cada um

Apendice A

Apendice

A.1 Estrutura do programa em C (pseudo-codigo)

while ( f i c h e i r o de entrada nao vazio )

/∗ colocacao da amostra mais recente na p r ime i ra posicao do vec to r ∗ /

datamove ( amostras ) ; amostras [ 0 ] = amostra mais recente ;

/∗ rows = estag ios da e s t r u t u r a p o l i f a s i c a do f i l t r o ∗ /

for ( rws = 0; rws < 8; rws++)

/∗ c l s = i n d i c e da amostra de cada es tag io do f i l t r o ∗ /

for ( c l s = 0 ; c l s < 127; c l s ++)

/∗ TRANSFORMADA DE HILBERT , FILTRAGEM E INTERPOLACAO ∗ /

/∗ convolucao ent re os vectores de amostras e de c o e f i c i e n t e s ∗ /

/∗ or ig inam as par tes r e a l e imag inar ia do s i n a l a n a l i t i c o ∗ /

h i l b e r t o u t r e a l += amostras [ c l s ] ∗ h1 [ rws ] [ c l s ] ;

h i l b e r t o u t i m a g += amostras [ c l s ] ∗ h2 [ rws ] [ c l s ] ;

/∗ compensacao da energ ia perd ida na in te rpo lacao ∗ /

h i l b e r t o u t r e a l = h i l b e r t o u t r e a l ∗8;

h i l b e r t o u t i m a g = h i l b e r t o u t i m a g ∗8;

/∗ escreve os resu l tados deste bloco para um f i c h e i r o ∗ /

f p r i n t f ( h i l b e r t o u t r e a l ) ;

f p r i n t f ( h i l b e r t o u t i m a g ) ;

/∗ AEM: APROXIMACAO ’A EXPONENCIAL ∗ /

/∗ chamada a funcoes que rea l izam as operacoes necessar ias ∗ /

exponenc ia l rea l = ex ( h i l b e r t o u t r e a l ) ;

67

Page 86: Módulo de Processamento de Sinal para um Amplificador de ...Agradecimentos A conclusao de uma tese marca o fim de uma etapa marcante na vida profissional e pessoal de˜ cada um

exponenc ia l imag par te rea l = e j y r e a l ( h i l b e r t o u t i m a g ) ;

exponenc ia l imag par te imag = e j y r e a l ( h i l b e r t o u t i m a g ) ;

aem out rea l = exponenc ia l rea l ∗ exponenc ia l imag par te rea l ;

aem out imag = exponenc ia l rea l ∗exponenc ia l imag par te imag ;

/∗ escreve os resu l tados deste bloco para um f i c h e i r o ∗ /

f p r i n t f ( aem out rea l ) ;

f p r i n t f ( aem out imag ) ;

/∗ colocacao da amostra mais recente na p r ime i ra posicao do vec to r ∗ /

datamove ( amostras LP real ) ; amostras LP real [ 0 ] = aem out rea l ;

datamove ( amostras LP imag ) ; amostras LP imag [ 0 ] = aem out imag ;

/∗ FILTRAGEM POS AEM ∗ /

for ( c l s = 0 ; c l s < N LP coefs ; c l s ++)

LP ou t rea l += LP samples real [ c l s ] ∗ LP coefs [ c l s ] ;

LP out imag += LP samples imag [ c l s ] ∗ LP coefs [ c l s ] ;

/∗ escreve os resu l tados deste bloco para um f i c h e i r o ∗ /

f p r i n t f ( LP ou t rea l ) ;

f p r i n t f ( LP out imag ) ;

/∗ MODULADOR EM QUADRATURA ∗ /

quad cos rea l = LP ou t rea l ∗Q sin va lues [ i ndex s in ] ;

quad sin imag = LP out imag∗Q sin va lues [ index cos ] ;

/∗ soma das par tes r e a l e imag inar ia do modulador ∗ /

quad soma = quad sin imag + quad s in rea l ;

/∗ escreve os resu l tados deste bloco para um f i c h e i r o ∗ /

f p r i n t f ( quad cos rea l ) ;

f p r i n t f ( quad cos rea l ) ;

f p r i n t f ( quad soma ) ;

/∗ colocacao da amostra mais recente na p r ime i ra posicao ∗ /

/∗ de um vec to r que armazena as u l t imas 4 amostras quad soma ∗ /

datamove ( quad out ) ; quad out [ 0 ] = quad soma ;

/∗ DETECCAO E DETERMINACAO DAS RAIZES ∗ /

i f ( quad out [2]>0 && quad out [1]<=0 | | quad out [2]<=0 && quad out [1]>0 )

68

Page 87: Módulo de Processamento de Sinal para um Amplificador de ...Agradecimentos A conclusao de uma tese marca o fim de uma etapa marcante na vida profissional e pessoal de˜ cada um

zero = f i n d z e r o ( quad out ) ;

/∗ escreve os resu l tados deste bloco para um f i c h e i r o ∗ /

f p r i n t f ( zero ) ;

i c o s ++; i f ( i c o s == 16) i c o s = 0;

i s i n ++; i f ( i s i n == 16) i s i n = 0 ;

/∗ ∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗ l 2 ∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗

DESCRIPTION : evaluates the value o f l 2 o f the Lagrange Polynomial I n t e r p o l a t i o n

PARAMETERS: x ( sho r t ) i n Q15 ( [ 0 ; 1 [ )

RETURN VARIABLES : l 2 ( shor t ) i n Q15

∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗ ∗ /

short l 2 ( short x )

short x square = 0 , mac1 = 0 , mac3 = 0 , mac4 = 0 , res = 0 , one = 1 ∗ alpha 1 ;

i n t mac2 = 0 , mac3 tmp = 0;

/∗ −−−−−−−−−−−− x ˆ2 i n Q15 −−−−−−−−−−−− ∗ /

/∗ << 1 to e l i m in a t e ex t ra s ign b i t ∗ /

/∗ >> 16 to conver t i n t to shor t ∗ /

x square = ( ( x∗x ) >> 15 ) ;

/∗ −−−−−−−−−− x ˆ2 − 1 i n Q15 −−−−−−−−− ∗ /

/∗ x ˆ2 and one i n Q15 ∗ /

mac1 = ( x square − one ) ;

/∗ −−−−−−−−−− l 2 i n Q15 −−−−−−−−− ∗ /

/∗ ( xˆ2−1) and x i n Q15 ∗ /

res = ( ( mac1∗x ) >> 15 ) ;

return res ;

69