draft fft v06
Post on 28-Oct-2015
112 Views
Preview:
TRANSCRIPT
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
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
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
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
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
7/14/2019 Draft FFT V06
http://slidepdf.com/reader/full/draft-fft-v06 6/80
Composição de Sinais (1/2)
7/14/2019 Draft FFT V06
http://slidepdf.com/reader/full/draft-fft-v06 7/80
Composição de Sinais (2/2)
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:
7/14/2019 Draft FFT V06
http://slidepdf.com/reader/full/draft-fft-v06 9/80
Interpretação Gráfica da FFT (2/8)
7/14/2019 Draft FFT V06
http://slidepdf.com/reader/full/draft-fft-v06 10/80
Interpretação Gráfica da FFT (3/8)
7/14/2019 Draft FFT V06
http://slidepdf.com/reader/full/draft-fft-v06 11/80
Interpretação Gráfica da FFT (4/8)
7/14/2019 Draft FFT V06
http://slidepdf.com/reader/full/draft-fft-v06 12/80
Interpretação Gráfica da FFT (5/8)
7/14/2019 Draft FFT V06
http://slidepdf.com/reader/full/draft-fft-v06 13/80
Interpretação Gráfica da FFT (6/8)
7/14/2019 Draft FFT V06
http://slidepdf.com/reader/full/draft-fft-v06 14/80
Interpretação Gráfica da FFT (7/8)
7/14/2019 Draft FFT V06
http://slidepdf.com/reader/full/draft-fft-v06 15/80
Interpretação Gráfica da FFT (8/8)
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
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
• ???????????????
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
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
7/14/2019 Draft FFT V06
http://slidepdf.com/reader/full/draft-fft-v06 20/80
Aplicações (3/4)
• Hand-held FFT System
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
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
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:
7/14/2019 Draft FFT V06
http://slidepdf.com/reader/full/draft-fft-v06 24/80
DTMF (2/2)
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
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);
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);
7/14/2019 Draft FFT V06
http://slidepdf.com/reader/full/draft-fft-v06 28/80
Análise pelo Matlab
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);
7/14/2019 Draft FFT V06
http://slidepdf.com/reader/full/draft-fft-v06 30/80
Análise pelo Matlab
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;
7/14/2019 Draft FFT V06
http://slidepdf.com/reader/full/draft-fft-v06 32/80
Análise pelo Matlab
7/14/2019 Draft FFT V06
http://slidepdf.com/reader/full/draft-fft-v06 33/80
Análise pelo Matlab
7/14/2019 Draft FFT V06
http://slidepdf.com/reader/full/draft-fft-v06 34/80
Análise pelo Matlab
7/14/2019 Draft FFT V06
http://slidepdf.com/reader/full/draft-fft-v06 35/80
Análise pelo Matlab
7/14/2019 Draft FFT V06
http://slidepdf.com/reader/full/draft-fft-v06 36/80
Análise pelo Matlab
7/14/2019 Draft FFT V06
http://slidepdf.com/reader/full/draft-fft-v06 37/80
Análise pelo Matlab
7/14/2019 Draft FFT V06
http://slidepdf.com/reader/full/draft-fft-v06 38/80
Análise pelo Matlab
7/14/2019 Draft FFT V06
http://slidepdf.com/reader/full/draft-fft-v06 39/80
Análise pelo Matlab
7/14/2019 Draft FFT V06
http://slidepdf.com/reader/full/draft-fft-v06 40/80
Análise pelo Matlab
7/14/2019 Draft FFT V06
http://slidepdf.com/reader/full/draft-fft-v06 41/80
Análise pelo Matlab
7/14/2019 Draft FFT V06
http://slidepdf.com/reader/full/draft-fft-v06 42/80
Análise pelo Matlab
7/14/2019 Draft FFT V06
http://slidepdf.com/reader/full/draft-fft-v06 43/80
Análise pelo Matlab
7/14/2019 Draft FFT V06
http://slidepdf.com/reader/full/draft-fft-v06 44/80
Análise pelo Matlab
7/14/2019 Draft FFT V06
http://slidepdf.com/reader/full/draft-fft-v06 45/80
Análise pelo Matlab
7/14/2019 Draft FFT V06
http://slidepdf.com/reader/full/draft-fft-v06 46/80
Análise pelo Matlab
7/14/2019 Draft FFT V06
http://slidepdf.com/reader/full/draft-fft-v06 47/80
Análise pelo Matlab
7/14/2019 Draft FFT V06
http://slidepdf.com/reader/full/draft-fft-v06 48/80
Análise pelo Matlab
7/14/2019 Draft FFT V06
http://slidepdf.com/reader/full/draft-fft-v06 49/80
Análise pelo Matlab
7/14/2019 Draft FFT V06
http://slidepdf.com/reader/full/draft-fft-v06 50/80
Análise pelo Matlab
7/14/2019 Draft FFT V06
http://slidepdf.com/reader/full/draft-fft-v06 51/80
Análise pelo Matlab
7/14/2019 Draft FFT V06
http://slidepdf.com/reader/full/draft-fft-v06 52/80
Análise pelo Matlab
7/14/2019 Draft FFT V06
http://slidepdf.com/reader/full/draft-fft-v06 53/80
Análise pelo Matlab
7/14/2019 Draft FFT V06
http://slidepdf.com/reader/full/draft-fft-v06 54/80
Análise pelo Matlab
7/14/2019 Draft FFT V06
http://slidepdf.com/reader/full/draft-fft-v06 55/80
Análise pelo Matlab
7/14/2019 Draft FFT V06
http://slidepdf.com/reader/full/draft-fft-v06 56/80
Análise pelo Matlab
7/14/2019 Draft FFT V06
http://slidepdf.com/reader/full/draft-fft-v06 57/80
Análise pelo Matlab
7/14/2019 Draft FFT V06
http://slidepdf.com/reader/full/draft-fft-v06 58/80
Análise pelo Matlab
7/14/2019 Draft FFT V06
http://slidepdf.com/reader/full/draft-fft-v06 59/80
Análise pelo Matlab
7/14/2019 Draft FFT V06
http://slidepdf.com/reader/full/draft-fft-v06 60/80
Análise pelo Matlab
7/14/2019 Draft FFT V06
http://slidepdf.com/reader/full/draft-fft-v06 61/80
Análise pelo Matlab
7/14/2019 Draft FFT V06
http://slidepdf.com/reader/full/draft-fft-v06 62/80
Análise pelo Matlab
7/14/2019 Draft FFT V06
http://slidepdf.com/reader/full/draft-fft-v06 63/80
Análise pelo Matlab
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
7/14/2019 Draft FFT V06
http://slidepdf.com/reader/full/draft-fft-v06 65/80
Análise pelo Matlab
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
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
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
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
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
7/14/2019 Draft FFT V06
http://slidepdf.com/reader/full/draft-fft-v06 71/80
Implementação
• Fluxograma (1/2)
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
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
7/14/2019 Draft FFT V06
http://slidepdf.com/reader/full/draft-fft-v06 74/80
Implementação
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 */
}
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
7/14/2019 Draft FFT V06
http://slidepdf.com/reader/full/draft-fft-v06 77/80
Implementação
• Configuração do Codec
8 kHz !
7/14/2019 Draft FFT V06
http://slidepdf.com/reader/full/draft-fft-v06 78/80
Demonstração
7/14/2019 Draft FFT V06
http://slidepdf.com/reader/full/draft-fft-v06 79/80
Referências
• Mathematics Of The Discrete Fourier Transform (DFT)With Audio Applications Second Edition
• Kevin Cowtan's Book of Fourier
• The Discrete Fourier Transform
• Fast Fourier Transform (FFT)
• FFT Basics and Applications
• DTMF - Wikipédia
• DTMF Tones
7/14/2019 Draft FFT V06
http://slidepdf.com/reader/full/draft-fft-v06 80/80
Dúvidas
top related