Gerando senos - Professor Dr. Luis Henrique Assumpção...

Post on 24-Apr-2020

2 views 0 download

Transcript of Gerando senos - Professor Dr. Luis Henrique Assumpção...

Gerando senos

Luis Henrique Assumpcao Lolis

17 de maio de 2016

http://www.eletrica.ufpr.br/~luis.lolis

Conteudo

1 Introducao

2 Ondas senoidais

3 O codigo em C

4 O experimento

5 Questoes e desafio

Luis Henrique Assumpcao Lolis Gerando senos 2

Sumario

1 Introducao

2 Ondas senoidais

3 O codigo em C

4 O experimento

5 Questoes e desafio

Luis Henrique Assumpcao Lolis Gerando senos 3

Objetivos

Gerar diferentes tons com a plataforma DSP

Aplicacoes para modulacao do sinal, teste de tom telefonico,geracao de notas, teste de funcoes de transferencia.

Luis Henrique Assumpcao Lolis Gerando senos 4

Sumario

1 Introducao

2 Ondas senoidais

3 O codigo em C

4 O experimento

5 Questoes e desafio

Luis Henrique Assumpcao Lolis Gerando senos 5

Gerando ondas senoidais

Gerar senos serve para os tons de telefonia, para modularsinais de audio, e gerar sons que se aproximem deinstrumentos musicais, ex: MIDI.

Existem tres formas basicas de gerar ondas senoidais.

Look-up TableEquacao recursiva (Ex: CORDIC)Expansao de Taylor

As LUTs sao faceis de implementar e de baixa complexidadecomputacional, mas so geram sub-multiplos inteiros dafrequencia de amostragem.

Luis Henrique Assumpcao Lolis Gerando senos 6

Series de Taylor

Funcao presente na biblioteca da TI “DSPLIB”

sen(x) = x− x3

3!+

x5

5!− x7

7!· · ·

x em radianos

Vantagens:

Pode gerar qualquer frequencia

Desvantagem

Nao tao precisa quanto a LUTPode ter problemas com overflow

Luis Henrique Assumpcao Lolis Gerando senos 7

Sumario

1 Introducao

2 Ondas senoidais

3 O codigo em C

4 O experimento

5 Questoes e desafio

Luis Henrique Assumpcao Lolis Gerando senos 8

Funcao seno em C

A funcao seno em C pode ser encontrada na biblioteca“math.h” que e muito lenta para ser usada em tempo real.

DSPLIB:

FFTSeno, cosseno e tangenteExponenciais

Luis Henrique Assumpcao Lolis Gerando senos 9

Para usar a DSPLIB

Dois #include sao adicionados:

Luis Henrique Assumpcao Lolis Gerando senos 10

Funcao Sine na DSPLIB

Escrita em Assembly

3 paremetros: enderco da localizacao contendo a frequencia,endereco da localizacao para gravar o seno calculado; e oterceiro parametro sempre em 1.

Luis Henrique Assumpcao Lolis Gerando senos 11

Fator de escala entre a frequencia em Hz e a entrada dafuncao

22368 16bit int (0.682)

Luis Henrique Assumpcao Lolis Gerando senos 12

Entrando o angulo

Um inteiro 16bits transformado em angulo de 0º a 180º.

0⇒ 016383⇒ 9032767⇒ 180

Luis Henrique Assumpcao Lolis Gerando senos 13

Explicando o fator de escala

Os angulos a serem calculados sao sub-multiplos inteiros dafrequencia de amostragem, nesse caso 48000.

Ex: para gerar 1Hz precisamos divir uma volta no circulounitario em 48000 angulos, dando o passo do angulo de360º/48000=0,0075º. Esse angulo em vırgula fixa fica 245,76.

Dividir por 48000 leva tempo, mas dividir por um multiplo de2 e um deslocamento para e direita.

Conta do angulo em vırgula fixa:360

48000· 32768 =

360

215· 22368

Qual a menor frequencia que podemos gerar com fs = 48KHze 16bits para o calculo do angulo?

Luis Henrique Assumpcao Lolis Gerando senos 14

Sumario

1 Introducao

2 Ondas senoidais

3 O codigo em C

4 O experimento

5 Questoes e desafio

Luis Henrique Assumpcao Lolis Gerando senos 15

Setup para o seno

Luis Henrique Assumpcao Lolis Gerando senos 16

Copiando, build e debug

Seguir as etapas do primeiro projeto

Criar a pasta “senos” e copiar os arquivos fonte desseexperimento.Criar o projeto e apontam para a pasta criada.Configurar o projeto para o processador e o modelo dememoria correspondente.Compilar o projeto ativo.Lancar o debug do projeto ativo.Rodar o codigo.

Luis Henrique Assumpcao Lolis Gerando senos 17

Console

Luis Henrique Assumpcao Lolis Gerando senos 18

Mudando o volume

Reduza o ganho de 10000 para 5000

Luis Henrique Assumpcao Lolis Gerando senos 19

Mudando as frequencias

Altere as frequencias para A=440Hz e C=523Hz.

Luis Henrique Assumpcao Lolis Gerando senos 20

Mude a frequencia de amostragem

Altere o fator de escala de acordo com a nova frequencia deamostragem para continuar gerando as mesmas frequencias deantes

Luis Henrique Assumpcao Lolis Gerando senos 21

Sumario

1 Introducao

2 Ondas senoidais

3 O codigo em C

4 O experimento

5 Questoes e desafio

Luis Henrique Assumpcao Lolis Gerando senos 22

Porque existe o fator de escala?

Qual o melhor metodo de gerar senos em no TMS320C5505?

Gere um seno que varia lentamente no tempo, de 1Hz a20KHz e retornando a 1Hz em 10 segundos.

Luis Henrique Assumpcao Lolis Gerando senos 23