draft fft v06

80
7/14/2019 Draft FFT V06 http://slidepdf.com/reader/full/draft-fft-v06 1/80 Arquitetura de Processadores DSP A Transformada Rápida de Fourier Arthur Rolim George Fonseca João Marcelo Teixeira Stelita Silva {auar, gimf, jmxnt, sms}@cin.ufpe.br

Upload: tkar

Post on 28-Oct-2015

89 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: Draft FFT V06

7/14/2019 Draft FFT V06

http://slidepdf.com/reader/full/draft-fft-v06 1/80

Arquitetura de Processadores DSP

A Transformada Rápida de Fourier

Arthur RolimGeorge Fonseca

João Marcelo TeixeiraStelita Silva

{auar, gimf, jmxnt, sms}@cin.ufpe.br

Page 2: Draft FFT V06

7/14/2019 Draft FFT V06

http://slidepdf.com/reader/full/draft-fft-v06 2/80

Agenda

• A Transformada Discreta de Fourier• Algoritmos da Transformada Rápida de Fourier• Análise e Implementação utilizando Matlab e C• Aplicações• Projeto

– O DTMF– Requisitos– Análise pelo Matlab– Implementação– Demonstração

• Conclusão

Page 3: Draft FFT V06

7/14/2019 Draft FFT V06

http://slidepdf.com/reader/full/draft-fft-v06 3/80

A Transformada Discreta de Fourier (1/2)

• A DFT (Discrete Fourier Transform) é umaaproximação numérica da Transformada de Fourier

• Matematicamente mais simples– Computacionalmente mais relevante

– Mantendo os mesmo conceitos básicos

Page 4: Draft FFT V06

7/14/2019 Draft FFT V06

http://slidepdf.com/reader/full/draft-fft-v06 4/80

A Transformada Discreta de Fourier (2/2)

• Extensivamente utilizada em várias aplicações DSP– Análise de espectro

– Convolução de alta-velocidade (filtro linear)

– Detecção e estimativa de sinais

– Identificação de sistemas

– Compressão de áudio

– Síntese de modelo espectral de som

Page 5: Draft FFT V06

7/14/2019 Draft FFT V06

http://slidepdf.com/reader/full/draft-fft-v06 5/80

A Transformada Rápida de Fourier

• O termo FFT (Fast Fourier Transform) se refere a umaimplementação eficiente da DFT– Uma família de algoritmos

• Cooley-Tukey

• Split-radix

• Prime-factor• Bruun's

• Rader's

• Bluestein's

Page 6: Draft FFT V06

7/14/2019 Draft FFT V06

http://slidepdf.com/reader/full/draft-fft-v06 6/80

Composição de Sinais (1/2)

Page 7: Draft FFT V06

7/14/2019 Draft FFT V06

http://slidepdf.com/reader/full/draft-fft-v06 7/80

Composição de Sinais (2/2)

Page 8: Draft FFT V06

7/14/2019 Draft FFT V06

http://slidepdf.com/reader/full/draft-fft-v06 8/80

Interpretação Gráficada FFT (1/8)

DFT:

A Identidade de Euler:

Propriedades importantes,com N = nº de amostras:

Page 9: Draft FFT V06

7/14/2019 Draft FFT V06

http://slidepdf.com/reader/full/draft-fft-v06 9/80

Interpretação Gráfica da FFT (2/8)

Page 10: Draft FFT V06

7/14/2019 Draft FFT V06

http://slidepdf.com/reader/full/draft-fft-v06 10/80

Interpretação Gráfica da FFT (3/8)

Page 11: Draft FFT V06

7/14/2019 Draft FFT V06

http://slidepdf.com/reader/full/draft-fft-v06 11/80

Interpretação Gráfica da FFT (4/8)

Page 12: Draft FFT V06

7/14/2019 Draft FFT V06

http://slidepdf.com/reader/full/draft-fft-v06 12/80

Interpretação Gráfica da FFT (5/8)

Page 13: Draft FFT V06

7/14/2019 Draft FFT V06

http://slidepdf.com/reader/full/draft-fft-v06 13/80

Interpretação Gráfica da FFT (6/8)

Page 14: Draft FFT V06

7/14/2019 Draft FFT V06

http://slidepdf.com/reader/full/draft-fft-v06 14/80

Interpretação Gráfica da FFT (7/8)

Page 15: Draft FFT V06

7/14/2019 Draft FFT V06

http://slidepdf.com/reader/full/draft-fft-v06 15/80

Interpretação Gráfica da FFT (8/8)

Page 16: Draft FFT V06

7/14/2019 Draft FFT V06

http://slidepdf.com/reader/full/draft-fft-v06 16/80

Algoritmos da Transformada Rápida de Fourier

• Cooley-Tukey FFT algorithm• Split-radix FFT algorithm

• Prime-factor FFT algorithm

• Bruun's FFT algorithm

Rader's FFT algorithm• Bluestein's FFT algorithm

• SUGESTÃO: Listar só os que tem no livro, ou maisinteressantes, pois já foram citados na apresentaçãodo FFT como uma família de algoritmos (não estou com

o livro agora )• Esse link tem alguns algoritmos:

– http://ccrma.stanford.edu/~jos/mdft/Fast_Fourier_Transform_FFT.html#app:fft

Page 17: Draft FFT V06

7/14/2019 Draft FFT V06

http://slidepdf.com/reader/full/draft-fft-v06 17/80

Análise e Implementação utilizando Matlab e C

• ???????????????

Page 18: Draft FFT V06

7/14/2019 Draft FFT V06

http://slidepdf.com/reader/full/draft-fft-v06 18/80

Aplicações (1/4)

• Alguns exemplos– Espectogramas

– Hand-held FFT System

– Cristalografia

• Mais de 120 trabalhos utilizando FFT– http://www-

ee.uta.edu/dip/Courses/EE5355/FFTapplication.doc 

Page 19: Draft FFT V06

7/14/2019 Draft FFT V06

http://slidepdf.com/reader/full/draft-fft-v06 19/80

Aplicações (2/4)

• Espectograma clássico de uma amostra de voz

Page 20: Draft FFT V06

7/14/2019 Draft FFT V06

http://slidepdf.com/reader/full/draft-fft-v06 20/80

Aplicações (3/4)

• Hand-held FFT System

Page 21: Draft FFT V06

7/14/2019 Draft FFT V06

http://slidepdf.com/reader/full/draft-fft-v06 21/80

Aplicações (4/4)

• Cristalografia– tem por objetivo essencialmente o conhecimento da estrutura dos

materiais a nível atômico, independentemente do seu estado físico ede sua origem, e das relações entre essa estrutura e suaspropriedades.

• Fonte: http://www.sbcr.org.br/ – Kevin Cowtan’s Picture Book of Fourier 

• Fonte: http://www.ysbl.york.ac.uk/~cowtan/fourier/magic.html 

Page 22: Draft FFT V06

7/14/2019 Draft FFT V06

http://slidepdf.com/reader/full/draft-fft-v06 22/80

ProjetoIdentificação de um número DTMF utilizando FFT numa

plataforma TMS320VC5510

Page 23: Draft FFT V06

7/14/2019 Draft FFT V06

http://slidepdf.com/reader/full/draft-fft-v06 23/80

DTMF (1/2)

• Dual-Tone Multi-Frequency– Os tons de duas freqüências utilizados na discagem dos

telefones mais modernos

– As freqüências destes tons e suas combinações são:

Page 24: Draft FFT V06

7/14/2019 Draft FFT V06

http://slidepdf.com/reader/full/draft-fft-v06 24/80

DTMF (2/2)

Page 25: Draft FFT V06

7/14/2019 Draft FFT V06

http://slidepdf.com/reader/full/draft-fft-v06 25/80

Requisitos

• Identificação em tempo-real de sinais DTMF– Utilizar FFT

• Mostrar retorno através dos LEDs da placa

• Entrada de sinais através do line-in ou microfone

Page 26: Draft FFT V06

7/14/2019 Draft FFT V06

http://slidepdf.com/reader/full/draft-fft-v06 26/80

Análise pelo Matlab

n = 0:1:511; T=1/8192;

sin697 = sin(2*pi*697*n*T);

sin770 = sin(2*pi*770*n*T);sin852 = sin(2*pi*852*n*T);sin941 = sin(2*pi*941*n*T);sin1209 = sin(2*pi*1209*n*T);

sin1336 = sin(2*pi*1336*n*T);sin1477 = sin(2*pi*1477*n*T);sin1633 = sin(2*pi*1633*n*T);

Page 27: Draft FFT V06

7/14/2019 Draft FFT V06

http://slidepdf.com/reader/full/draft-fft-v06 27/80

Análise pelo Matlab

n = 0:1:511; T=1/8192;

sin697 = sin(2*pi*697*n*T);sin770 = sin(2*pi*770*n*T);sin852 = sin(2*pi*852*n*T);sin941 = sin(2*pi*941*n*T);sin1209 = sin(2*pi*1209*n*T);sin1336 = sin(2*pi*1336*n*T);

sin1477 = sin(2*pi*1477*n*T);sin1633 = sin(2*pi*1633*n*T);

Page 28: Draft FFT V06

7/14/2019 Draft FFT V06

http://slidepdf.com/reader/full/draft-fft-v06 28/80

Análise pelo Matlab

Page 29: Draft FFT V06

7/14/2019 Draft FFT V06

http://slidepdf.com/reader/full/draft-fft-v06 29/80

Análise pelo Matlab

n = 0:1:511; T=1/8192;

sin697 = sin(2*pi*697*n*T);sin770 = sin(2*pi*770*n*T);sin852 = sin(2*pi*852*n*T);sin941 = sin(2*pi*941*n*T);sin1209 = sin(2*pi*1209*n*T);sin1336 = sin(2*pi*1336*n*T);

sin1477 = sin(2*pi*1477*n*T);sin1633 = sin(2*pi*1633*n*T);

Page 30: Draft FFT V06

7/14/2019 Draft FFT V06

http://slidepdf.com/reader/full/draft-fft-v06 30/80

Análise pelo Matlab

Page 31: Draft FFT V06

7/14/2019 Draft FFT V06

http://slidepdf.com/reader/full/draft-fft-v06 31/80

Análise pelo Matlab

dtmf1 =

sin697 + sin1209;

dtmf2 =

sin697 + sin1336;

dtmf3 =

sin697 + sin1477;dtmf_a =

sin697 + sin1633;

dtmf4 =sin770 + sin1209; dtmf5 =sin770 + sin1336; dtmf6 =sin770 + sin1477; dtmf_b =sin770 + sin1633;

dtmf7 =

sin852 + sin1209;

dtmf8 =

sin852 + sin1336;

dtmf9 =

sin852 + sin1477;dtmf_c =

sin852 + sin1633;

dtmf_ast =

sin941 + sin1209;

dtmf0 =

sin941 + sin1336;

dtmf_cer =

sin941 + sin1477;dtmf_d =

sin941 + sin1633;

Page 32: Draft FFT V06

7/14/2019 Draft FFT V06

http://slidepdf.com/reader/full/draft-fft-v06 32/80

Análise pelo Matlab

Page 33: Draft FFT V06

7/14/2019 Draft FFT V06

http://slidepdf.com/reader/full/draft-fft-v06 33/80

Análise pelo Matlab

Page 34: Draft FFT V06

7/14/2019 Draft FFT V06

http://slidepdf.com/reader/full/draft-fft-v06 34/80

Análise pelo Matlab

Page 35: Draft FFT V06

7/14/2019 Draft FFT V06

http://slidepdf.com/reader/full/draft-fft-v06 35/80

Análise pelo Matlab

Page 36: Draft FFT V06

7/14/2019 Draft FFT V06

http://slidepdf.com/reader/full/draft-fft-v06 36/80

Análise pelo Matlab

Page 37: Draft FFT V06

7/14/2019 Draft FFT V06

http://slidepdf.com/reader/full/draft-fft-v06 37/80

Análise pelo Matlab

Page 38: Draft FFT V06

7/14/2019 Draft FFT V06

http://slidepdf.com/reader/full/draft-fft-v06 38/80

Análise pelo Matlab

Page 39: Draft FFT V06

7/14/2019 Draft FFT V06

http://slidepdf.com/reader/full/draft-fft-v06 39/80

Análise pelo Matlab

Page 40: Draft FFT V06

7/14/2019 Draft FFT V06

http://slidepdf.com/reader/full/draft-fft-v06 40/80

Análise pelo Matlab

Page 41: Draft FFT V06

7/14/2019 Draft FFT V06

http://slidepdf.com/reader/full/draft-fft-v06 41/80

Análise pelo Matlab

Page 42: Draft FFT V06

7/14/2019 Draft FFT V06

http://slidepdf.com/reader/full/draft-fft-v06 42/80

Análise pelo Matlab

Page 43: Draft FFT V06

7/14/2019 Draft FFT V06

http://slidepdf.com/reader/full/draft-fft-v06 43/80

Análise pelo Matlab

Page 44: Draft FFT V06

7/14/2019 Draft FFT V06

http://slidepdf.com/reader/full/draft-fft-v06 44/80

Análise pelo Matlab

Page 45: Draft FFT V06

7/14/2019 Draft FFT V06

http://slidepdf.com/reader/full/draft-fft-v06 45/80

Análise pelo Matlab

Page 46: Draft FFT V06

7/14/2019 Draft FFT V06

http://slidepdf.com/reader/full/draft-fft-v06 46/80

Análise pelo Matlab

Page 47: Draft FFT V06

7/14/2019 Draft FFT V06

http://slidepdf.com/reader/full/draft-fft-v06 47/80

Análise pelo Matlab

Page 48: Draft FFT V06

7/14/2019 Draft FFT V06

http://slidepdf.com/reader/full/draft-fft-v06 48/80

Análise pelo Matlab

Page 49: Draft FFT V06

7/14/2019 Draft FFT V06

http://slidepdf.com/reader/full/draft-fft-v06 49/80

Análise pelo Matlab

Page 50: Draft FFT V06

7/14/2019 Draft FFT V06

http://slidepdf.com/reader/full/draft-fft-v06 50/80

Análise pelo Matlab

Page 51: Draft FFT V06

7/14/2019 Draft FFT V06

http://slidepdf.com/reader/full/draft-fft-v06 51/80

Análise pelo Matlab

Page 52: Draft FFT V06

7/14/2019 Draft FFT V06

http://slidepdf.com/reader/full/draft-fft-v06 52/80

Análise pelo Matlab

Page 53: Draft FFT V06

7/14/2019 Draft FFT V06

http://slidepdf.com/reader/full/draft-fft-v06 53/80

Análise pelo Matlab

Page 54: Draft FFT V06

7/14/2019 Draft FFT V06

http://slidepdf.com/reader/full/draft-fft-v06 54/80

Análise pelo Matlab

Page 55: Draft FFT V06

7/14/2019 Draft FFT V06

http://slidepdf.com/reader/full/draft-fft-v06 55/80

Análise pelo Matlab

Page 56: Draft FFT V06

7/14/2019 Draft FFT V06

http://slidepdf.com/reader/full/draft-fft-v06 56/80

Análise pelo Matlab

Page 57: Draft FFT V06

7/14/2019 Draft FFT V06

http://slidepdf.com/reader/full/draft-fft-v06 57/80

Análise pelo Matlab

Page 58: Draft FFT V06

7/14/2019 Draft FFT V06

http://slidepdf.com/reader/full/draft-fft-v06 58/80

Análise pelo Matlab

Page 59: Draft FFT V06

7/14/2019 Draft FFT V06

http://slidepdf.com/reader/full/draft-fft-v06 59/80

Análise pelo Matlab

Page 60: Draft FFT V06

7/14/2019 Draft FFT V06

http://slidepdf.com/reader/full/draft-fft-v06 60/80

Análise pelo Matlab

Page 61: Draft FFT V06

7/14/2019 Draft FFT V06

http://slidepdf.com/reader/full/draft-fft-v06 61/80

Análise pelo Matlab

Page 62: Draft FFT V06

7/14/2019 Draft FFT V06

http://slidepdf.com/reader/full/draft-fft-v06 62/80

Análise pelo Matlab

Page 63: Draft FFT V06

7/14/2019 Draft FFT V06

http://slidepdf.com/reader/full/draft-fft-v06 63/80

Análise pelo Matlab

Page 64: Draft FFT V06

7/14/2019 Draft FFT V06

http://slidepdf.com/reader/full/draft-fft-v06 64/80

Análise pelo Matlab

• Geração de arquivos de entrada pra simulação no CCS

Page 65: Draft FFT V06

7/14/2019 Draft FFT V06

http://slidepdf.com/reader/full/draft-fft-v06 65/80

Análise pelo Matlab

Page 66: Draft FFT V06

7/14/2019 Draft FFT V06

http://slidepdf.com/reader/full/draft-fft-v06 66/80

Implementação

• Implementação foi feita utilizando-se a forma maiseficiente sugerida pelo livro texto:

- Código misto em C e assembly

- Utilização da DSPLIB específica do DSP (C55)+ o uso da DSP/BIOS e sua Board Support Library

(BSL) • Código C controla o fluxo do programa, alocação de

memória, configuração e inicialização de periféricos eoperações aritméticas simples

• As rotinas em assembly são utilizadas nas regiões

críticas em tempo– No nosso caso: FFT

Page 67: Draft FFT V06

7/14/2019 Draft FFT V06

http://slidepdf.com/reader/full/draft-fft-v06 67/80

Implementação

• A DSPLIB fornece código eficiente em assemblycodificado pela própria Texas Instruments• Os códigos são otimizados para cada família de DSPs

explorando as características do hardware• A DSP/BIOS é uma camada de abstração do hardware

que possui APIs (BSL) que facilitam a comunicação do

software com o hardware• A DSP/BIOS para o kit de desenvolvimento TMS320C55x proporciona o contorle dos seguintes periféricos:– 4 LEDs– 4 DIP Switches– CODEC de audio - AIC23 codec– Memória Flash

• Também proporciona o escalonamento de tarefas

Page 68: Draft FFT V06

7/14/2019 Draft FFT V06

http://slidepdf.com/reader/full/draft-fft-v06 68/80

Implementação

• Funções de Controle dos LEDs

– DSK5510_LED_init() 

• Inicializa os LEDs

– DSK5510_LED_off() 

• Desliga um LED específico

– DSK5510_LED_on() 

• Liga em LED específico

– DSK5510_LED_toggle()

• Inverte um LED específico

Page 69: Draft FFT V06

7/14/2019 Draft FFT V06

http://slidepdf.com/reader/full/draft-fft-v06 69/80

Implementação

• Principais funções de Controle do CODEC (1/2)

– DSK5510_AIC23_openCodec() 

• Abre o Codec

– DSK5510_AIC23_closeCodec()

• Fecha o Codec

– DSK5510_AIC23_config()

• Configura

– DSK5510_AIC23_setFreq()

• Configura a taxa de amostragem

Page 70: Draft FFT V06

7/14/2019 Draft FFT V06

http://slidepdf.com/reader/full/draft-fft-v06 70/80

Implementação

• Principais funções de Controle do CODEC (2/2)

– DSK5510_AIC23_read16() • Lê do Codec 16 bits de dados da Stream de

audio

– DSK5510_AIC23_write16() • Escreve no Codec 16 bits de dados da Stream

de audio– DSK5510_AIC23_rset()

• Configura do valor dos registradores do Codec

– DSK5510_AIC23_rget()• Lê os registradores do Codec

– DSK5510_AIC23_mute() • Habilita ou não o mute do Codec

Page 71: Draft FFT V06

7/14/2019 Draft FFT V06

http://slidepdf.com/reader/full/draft-fft-v06 71/80

Implementação

• Fluxograma (1/2)

Page 72: Draft FFT V06

7/14/2019 Draft FFT V06

http://slidepdf.com/reader/full/draft-fft-v06 72/80

Implementação

•Fluxograma (2/2) e Algoritmoinicio

inicializa o sistema

loop infinito {

espera buffer ser carregado

lê buffer

processa FFT

decodifica o DTMF

aciona os LEDs correspondentes

}

fim

Page 73: Draft FFT V06

7/14/2019 Draft FFT V06

http://slidepdf.com/reader/full/draft-fft-v06 73/80

Implementação

• Inicialização do Sistema

– Inicializa LEDs

– Limpa o buffer

– Abre o Codec com as configuraçõesnecessárias

– Configura o DMA

– Inicia o funcionamento do DMA

Page 74: Draft FFT V06

7/14/2019 Draft FFT V06

http://slidepdf.com/reader/full/draft-fft-v06 74/80

Implementação

Page 75: Draft FFT V06

7/14/2019 Draft FFT V06

http://slidepdf.com/reader/full/draft-fft-v06 75/80

Implementação

• Configuração do CodecDSK5510_AIC23_Config config = {

0x0017, /* 0 DSK5510_AIC23_LEFTINVOL Left line input channel volume */ 0x0017, /* 1 DSK5510_AIC23_RIGHTINVOL Right line input channel volume */0x01f9, /* 2 DSK5510_AIC23_LEFTHPVOL Left channel headphone volume */ 

0x01f9, /* 3 DSK5510_AIC23_RIGHTHPVOL Right channel headphone volume */ 0x0015, /* 4 DSK5510_AIC23_ANAPATH Analog audio path control */0x0000, /* 5 DSK5510_AIC23_DIGPATH Digital audio path control */0x0000, /* 6 DSK5510_AIC23_POWERDOWN Power down control */ 0x0043, /* 7 DSK5510_AIC23_DIGIF Digital audio interface format */0x008D, /* 8 DSK5510_AIC23_SAMPLERATE Sample rate control */ 0x0001 /* 9 DSK5510_AIC23_DIGACT Digital interface activation */

}

Page 76: Draft FFT V06

7/14/2019 Draft FFT V06

http://slidepdf.com/reader/full/draft-fft-v06 76/80

Implementação

• Configuração do Codec

DSK5510_AIC23_ANAPATH = 0x0015 = 0b000010101

Page 77: Draft FFT V06

7/14/2019 Draft FFT V06

http://slidepdf.com/reader/full/draft-fft-v06 77/80

Implementação

• Configuração do Codec

8 kHz !

Page 78: Draft FFT V06

7/14/2019 Draft FFT V06

http://slidepdf.com/reader/full/draft-fft-v06 78/80

Demonstração

Page 80: Draft FFT V06

7/14/2019 Draft FFT V06

http://slidepdf.com/reader/full/draft-fft-v06 80/80

Dúvidas