Buscar

Transformada de Fourier

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 29 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 29 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 29 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

FFT-TRANSFORMADA RÁPIDA 
DE FOURIER 
 
 
 
A quase totalidade dos fenômenos físicos de natureza periódica tem sua origem em 
ondas (sonoras, elétricas, hidráulicas e mecânicas) que apresentam formas bem definidas. 
Em meados do século XVIII, Euler, Bernoulli e Lagrange já discutiam a 
representação de sinais periódicos através de séries trigonométricas. 
Fourier (1768-1830) desenvolveu em seu estudo sobre a condução de calor pelos 
corpos a formulação de que um fenômeno de natureza periódica pode ser decomposto em 
uma série de funções senoidais, com amplitudes variáveis e freqüências múltiplas da 
freqüência fundamental, com fases coincidentes ou inversas. O estudo sobre a Teoria 
Analítica do Calor foi publicado em 1822. 
Os microcomputadores encontraram aplicação imediata para as séries de Fourier 
dada a grande quantidade de operações necessárias para ser obtida uma confiabilidade 
razoável na análise de um evento de natureza periódica. 
O ouvido humano responde à intensidade das freqüências individuais presentes no 
som, por este motivo é preciso trabalhar com informações sobre este sinal de som no 
domínio da freqüência. 
Neste capítulo será apresentada uma avaliação da base matemática para converter 
qualquer função periódica nas suas componentes de freqüência, a Transformada de 
Fourier. 
Posteriormente será explanada a FFT (Transformada Rápida de Fourier) que é um 
algoritmo que otimiza o cálculo da Transformada Discreta de Fourier- DFT. 
 
5.1 AS SÉRIES DE FOURIER 
 
 Os sons naturais são compostos de múltiplas componentes de freqüências. Para 
iniciar a análise em freqüência de um determinado som, deve-se supor que apenas uma 
curta seção deste som é utilizada. Nesta análise, pode-se ignorar o restante do sinal do som. 
Supondo também que a seção curta do som a ser analisada é periódica (repete-se 
eternamente), pode-se então aplicar os princípios matemáticos que foram desenvolvidos 
por Fourier, Bernoulli, e Eüler [19]. 
 44
 Para uma função periódica (forma de onda) dada por x(t), na qual o período é dado 
por To, então: 
 
1. x(t) pode ser representado por um somatório de ondas senoidais. 
 
2. Na forma de onda senoidal, a frequência fundamental é: 
fo= 1 / To [5.1] 
 
3. O somatório pode ser escrito como: 
( ) (( )∑∞
=
++=
1
00
0 2.2cos
2
)(
n
nn ntfsinbntfa
atx ππ ) [5.2] 
(E. Oran Brigham, pg 74 [20]) 
 
4. 0
0
0 2
2 f
T
ππω == é conhecido como a primeira harmônica ou freqüência 
angular fundamental. 
 
( ) (( )∑∞
=
++=
1
00
0 cos
2
)(
n
nn ntsinbnta
atx ωω ) [5.3] 
 
para um conjunto de valores de an e bn . 
 
5. O somatório é chamado de “Série de Fourier” e os valores de an e bn são 
chamados de “coeficiente da série”. 
 
6. Os valores de an e bn podem ser encontrados por: 
( )∫
−
= 2
T
2
cos)(2
T
n dtnttxT
a ω e ( )∫= 2
T
2
T-
)(2 dtntsintx
Tn
ωb . [5.4] 
 
Estes resultados podem ser aplicados a funções discretas (funções que só estão 
definidas em pontos específicos), como também a funções contínuas. Se tivermos uma 
taxa de amostragem “Fs” e uma série de “N” amostras por período, então: 
 45
1. A menor freqüência presente é 
N
Ff s=0 e 00 2 fπω = [5.5] 
 
2. A série com N amostras por período, pode ser representada por: 
∑∞
=


 

+

+=
1
0 22cos)(
k
kks N
nksinb
N
nkaanTx ππ [5.6] 
 
3. a0 corresponde ao valor da componente contínua. 
 
4. A série de Fourier pode ser reescrita como: 
((∑∞
=
++=
1
00 cos)(
k
Kk tkaatx θω )) [5.7] 
 onde, 
 
kj
kK eAX
θ= = KK jba − [5.8] 
 
∫
−
−= 2
T
2
).(2
T
tojk
K dtetxT
X ϖ [5.9] 
 
∫
−
== 2
T
2
)(1
T
oo dttxT
AX [5.10] 
 
5. o coeficiente Xk pode ser calculado numericamente através da seguinte 
aproximação: 
∑
=
−≈ N
m
sK N
mkjmTx
N
X
1
]2exp[).(2 π [5.11] 
 
∑
=
≈ N
m
smTxN
X
1
0 )(
1
 onde Ts = T/N [5.12] 
 
 46
5.2 A TRANSFORMADA CONTÍNUA DE FOURIER 
 A integral de Fourier é definida pela expressão: 
 
 [5.13] ( ) ∫+∞
∞−
Π−= dtetxfX ftj 2).(
 
 Se a integral definida na equação 5.13 existe em todo f, X(f) pode ser definida 
como a transformada de Fourier do sinal no tempo x(t). 
 
 
5.3 A TRANSFORMADA DISCRETA DE FOURIER 
 
 A equação 5.14 mostra a transformada Discreta de Fourier, para N amostras de um 
sinal x(k). 
 
 ∑−
=
Π−= 1
0
/2).(1][
N
k
Nnkjekx
N
nx n= 0, 1, 2 ... N-1 [5.14] 
 
 Vale salientar que tanto para transformada contínua quanto para a discreta existem 
as transformadas inversas que retornam o sinal do domínio da freqüência para o domínio 
do tempo. 
 
 
5.4 A TRANSFORMADA RÁPIDA DE FOURIER - FFT 
 
A Transformada Discreta de Fourier apresentada pela equação 5.14, leva ao cálculo 
N2 operações de multiplicação para se obter o espectro de frequência de um sinal. 
 Com o algoritmo da FFT (Transformada Rápida de Fourier), desenvolvido na 
seção a seguir, o número de multiplicações necessárias cai para N.log2.N. Este fato pode 
ser visualizado na figura 5.3. 
 
 47
5.4.1 A operação “Butterfly” 
 Se fizermos na equação 5.14, n
i
n eW
π2−
= , [5.15] 
 
então: ∑−
=
−
=
1
0
2N
n
N
kni
nk ex
π
y torna-se [5.16] ∑−
=
=
1
0
N
n
kn
Nnk Wxy
 
Se a série é dividida em elementos pares e ímpares temos: 
 
∑∑
−
=
+
+
−
=
+=
1
2
0
)12(
12
1
2
0
2
2
N
n
kn
Nn
N
n
nk
Nnk WxWxy [5.17] 
 
∑∑
−
=
+
−
=
+=
1
2
0
2
12
1
2
0
2
2
N
n
nk
Nn
k
N
N
n
nk
Nnk WxWWxy [5.18] 
 
devido a nkN
nk
N W
2
2 =W , isto permite escrevermos 
∑∑
−
=
+
−
=
+=
1
2
0
2
12
1
2
0
2
2
N
n
nk
Nn
k
N
N
n
nk
Nnk WxWWxy [5.19] 
 
∑∑
−
=
+
−
=
+=
1
2
0
2
12
1
2
0
2
2
N
n
nk
Nn
k
N
N
n
nk
Nnk WxWWxy [5.20] 
 
 se fizermos: x1(m)= AMOSTRAS PARES = x(2n) e 
 x2(m)= AMOSTRAS IMPARES = x(2n+1) 
 
 ∑∑
−
=
−
=
+=
1
2
0
2
2
1
2
0
2
1 )()(
N
n
nk
N
k
N
N
n
nk
Nk WnxWWnxy [5.21] 
 48
 
 Assim, se existir um número par de amostras, o problema computacional de yk pode 
ser reduzido pela metade. Então fazendo 
2
Nk
y
+
 da forma, 
 
( ) ( )∑∑
−
=
++
−
=
+
+
+=
1
2
0
2
2
2
2
1
2
0
2
2
1
2
)()(
N
n
Nkn
N
Nk
N
N
n
Nkn
NNk
WnxWWnxy [5.22] 
∑∑
−
=
−
=+
−=
1
2
0
2
2
1
2
0
2
1
2
)()(
N
n
nk
N
k
N
N
n
nk
NNk
WnxWWnxy [5.23] 
 
devido a 
( ) nk
N
Nkn
N W
2
2
2
=+W e 12 −=NNW [prova a seguir] 
 
12 −=NNW ( ) nkNNknN W
2
2
2
=+W 
22
2
N
N
iN
N eW 


=
− π
 
( )πiNN eW −=2 
12 −=NNW 
( ) 2
22
2
2
nN
N
nk
N
Nkn
N WWW =+ 
( ) 42
22
2
2
nN
N
nk
N
Nkn
N WWW =+ 
( ) nnk
N
Nkn
N WW
2
2
2
2
1−=+ porque 12 −=NNW 
( ) nk
N
Nkn
N WW
2
2
2
=+ 
Com estes resultados 
 ∑∑
−
=
−
=
+=
1
2
0
2
2
1
2
0
2
1 )()(
N
n
nk
N
k
N
N
n
nk
Nk WnxWWnxy [5.24] 
e ∑∑
−
=
−
=+
−=
1
2
0
2
2
1
2
0
2
1
2
)()(
N
n
nk
N
k
N
N
n
nk
NNk
WnxWWnxy , [5.25] 
 49
 a Operação Butterfly é construída conforme a figura 5.1 
)()()( 21 kXWkXkX
k
N+= e ( ) )()(2 21 kXWkXNkX kN−=+ [5.26,27] 
 
Figura 5.1: A Operação “Butterfly ” 
A operação “butterfly” permite que a computação da DFT seja dividida ao meio, ou 
seja, se existem 2n amostras, a computação da DFT pode ser repetida exigindo somente 
metade do cálculo. Para uma DFT de 2 pontos (caso básico) temos: 
 
101
0
200 xxxWxy +=+= e [5.28] 1010201 xxxWxy −=−=
 
Assim, se existem 2n amostras, a DFT pode ser computada através do uso de uma 
série de estágios da operação “Butterfly” os quais se repetem conforme o número de bits 
utilizado. A figura 5.2 mostra este processo: 
 
Figura 5.2: Uso da Operação “Butterfly” para Computar uma FFT de 8-pontos 
 50
 Estas séries de operações podem ser mais facilmente implementadas se os valores 
de entradas forem seqüenciados corretamente. A análise da representação binária dos 
valores de entrada revelam um padrãosubjacente, ou seja, os índices correspondem à 
representação binária invertida do número da seqüência, como mostrado na tabela 5.1. 
 
Seqüência 
da 
Operação 
“Butterfly” 
Endereço 
Binário 
Bit Reverso Elementos 
correspondente a 
seqüência 
Original 
x0 
x4 
x2 
x6 
x1 
x5 
x3 
x7 
000 
100 
010 
110 
001 
101 
011 
111 
000 
001 
010 
011 
100 
101 
110 
111 
x0 
x1 
x2 
x3 
x4 
x5 
x6 
x7 
Tabela 5.1: Sequência e Re-ordenação dos bits de ordem reversa 
Devido ao fato das representações binárias se repetirem, o número de operações de 
multiplicações necessárias para se obter o espectro de frequência de um sinal diminui 
consideravelmente. 
 
Figura 5.3: Comparação do número de Multiplicações requeridas pelo cálculo direto e pela FFT 
 51
 52
A figura 5.3 mostra a eficiência computacional da FFT em comparação com o 
método normal (transformada de Fourier simples). Pode-se ver claramente que quanto 
maior for o número de pontos de uma amostra, o número de multiplicações na forma direta 
cresce na forma exponencial, enquanto que a FFT possui poucas multiplicações. 
 BANCO DE FILTROS 
 
 
 
 Um sistema completo de reconhecimento de voz, em seu mais elementar nível, 
compreende uma coleção de algoritmos de uma larga variedade de disciplinas, incluindo 
reconhecimento de padrões estatísticos, teoria da comunicação, processamento de sinais, 
matemática combinacional, lingüística, entre outras. 
 Embora cada uma destas áreas seja abordada de forma diferente pelos programas 
de reconhecimento de voz existentes, o grande denominador comum de todos os sistemas 
de reconhecimento da fala é o processamento de sinal “font-end”, ou seja, o 
processamento inicial da forma de onda da fala em parâmetros de representação. 
 Existem três métodos dominantes na análise espectral de um sinal: 
 
- Modelo de Análise de Banco de Filtros. 
- Código Linear de Predição (LPC). 
- FFT (Transformada Rápida de Fourier) 
 
 
6.1 MODELOS DE ANÁLISE ESPECTRAL 
 
 Tanto para a técnica de reconhecimento de voz baseada no reconhecimento de 
padrões ou em modelos acústico-fonéticos, mostrados na figura 6.1 (a) e (b) 
respectivamente, a fase inicial do processo é comum nos dois métodos, ou seja, o 
processamento de sinais inicial é igual nos dois métodos de reconhecimento de voz, apesar 
dos passos seguintes serem diferentes. 
 Os métodos de processamento inicial de sinais mais usados são o Banco de Filtros, 
Código Linear de Predição – LPC e a Transformada Discreta de Fourier (DFT) 
implementada através da FFT. 
 A estrutura do sistema de um Banco de filtros é mostrada na figura 6.2. 
O sinal da fala, s(n), é passado através de um banco de Q filtros passa-faixa, os 
quais cobrem breves espaços de freqüência de interesse no sinal. (sinais 100-3000Hz para 
sinais de telefone de qualidade, 100-8000Hz para sinais de banda larga). 
 
 53
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Figura 6.1: (a) Aproximação por Reconhecimento de Padrões (b) Aproximação acústico-fonética. 
 
 
Os filtros individuais podem e geralmente sobrepõem-se na freqüência como 
mostrado na figura 6.2. 
 
 
 
Figura 6.2: Modelo de análise de um Banco de Filtros. 
 54
 
 
A saída do ith filtro passa-faixa, Xn (ejωi) é a representação espectral de s(n) (onde 
ωi é a freqüência normalizada 2.π.fi/Fs, sendo Fs a freqüência de amostragem). A 
freqüência central do filtro é ωi. Pode-se ver que cada filtro processa o sinal 
independentemente e produz uma representação espectral individual Xn. 
 A análise de sinal feita através do sistema LPC (Linear Predictive Coding) é 
mostrada na figura 6.3. A representação espectral resultante Xn (ejωi) é da forma σ/A. 
(ejωi), onde A.(ejωi) é a pth (p-ésima) ordem polinomial com a transformada Z dada por: 
 
 A(z) = 1 + a1.z-1 + a2.z-2 + a3.z-3 + .... + ap.z-p [6.1] 
 
A ordem p, é chamada ordem do analisador LPC. 
 
 
 
 
 
 
 
Figura 6.3: Modelo de análise LPC. 
 
 Embora existam processadores alternativos para processar o sinal de entrada em 
sis
pr
ên
rec
sa
 
6.2
 
 
fig
qu
 
 
 
 
tema de reconhecimento de voz, os modelos de banco de filtros, LPC e a FFT, tem 
oporcionado mais alto desempenho em sistemas práticos. Neste trabalho será dada 
fase ao sistema de processamento de banco de filtros, o mais utilizado nos sistemas de 
onhecimento de voz, devido à sua simplicidade e menor tempo de processamento. Vale 
lientar que a FFT foi vista no capitulo 5. 
 O MODELO DO BANCO DE FILTROS 
O diagrama de blocos da estrutura canônica do banco de filtros é mostrado na 
ura 6.4. O sinal de fala amostrado, s(n), é passado através de um banco de Q filtros, em 
e: 
 si(n) = s(n) * hi(n), 1 ≤ i ≤ Q [6.2] 
55
onde a resposta ao impulso do ith filtro passa-faixa é hi(m) com a duração de Mi amostras; 
então a convolução é usada para representar a operação de filtragem. 
 
 
 
 
 
 
 
 
 
 
 
Figura 6.4: Modelo do analisador de um Banco de Filtros. 
 
O objetivo do banco de filtros é dar a medida da energia do sinal de voz e também a 
faixa de freqüências de cada sinal (passa faixa). 
 
 
6.3 TIPOS DE BANCOS DE FILTROS USADOS NO RECONHECIMENTO DE VOZ 
 
 O tipo mais comum de banco de filtros usado para reconhecimento de fala é o 
banco de filtros uniforme, para qual a freqüência central, fi, do filtro passa faixa é definida 
como: 
 
 i
N
F
f si ⋅= 1 ≤ i ≤ Q , [6.4] 
 
de Fs é a taxa de amostragem do sinal de fala, e N é o número de filtros uniformemente 
on
espaçados requeridos para medir toda a faixa de freqüência da fala. O número de filtros 
usado no banco de filtro, Q, satisfaz a relação, 
 
 Q ≤ N / 2 [6.5] 
 
 56
 
 
O valor de Q é igual a (N / 2) quando a faixa de freqüência inteira do sinal de fala é 
usada na análise. A largura de faixa do filtro (bi), do iésimo filtro, geralmente satisfaz à 
propriedade, 
 
 bi ≥ Fs / N [6.6] 
 
com a igualdade significando que não há nenhuma freqüência que se sobreponha entre 
canais de filtro adjacentes, e com a desigualdade significando que aqueles canais de filtro 
adjacentes se sobrepõem. (Se bi < Fs/N então certas porções do espectro de fala estariam 
perdidas na análise e o espectro de fala resultante não seria considerado muito 
significante). 
A figura 6.5(a) mostra um conjunto Q de filtros ideais, não-sobrepostos, que 
cobrem uma faixa de frequência de Fs/N(½) até (Fs/N)(Q+ ½ ). 
Já a figura 6.5(b) mostra um conjunto real dos filtros cobrindo a mesma faixa de 
freqüências. 
 
 
Figura 6.5: (a) ideal (b) real. Respostas de um banco de filtros de Q – canais 
com cobertura de uma faixa de frequência de Fs/N(½) até (Fs/N)(Q+ ½ ). 
 
Uma alternativa para os bancos de filtro uniformes, são os bancos de filtros não-
uniformes. Um critério comumente usado para espaçar os filtros não uniformes é a escala 
de freqüência logarítmica. (Uma escala de freqüência logarítmica é freqüentemente 
justificada de um ponto de vista da percepção audível do ser humano). Assim, para um 
conjunto de Q filtros passa faixa com freqüências centrais, (fi), e largura de faixa (bi), 1 ≤ 
i ≤ Q , tem-se: 
 57
 
 
 b1 = C (primeira largura de banda) [6.7] 
 
 
 bi = α .bi –1, 2 ≤ i ≤ Q [6.8] 
 
 
 
2
)( 11
1
1
bb
bff i
i
j
ji
−++= ∑−
=
 [6.9] 
 
onde C e fi são, a largura de faixa e a freqüência central do primeiro filtro e α é o fator de 
crescimento logarítmico. 
Os valores mais comumente usados de α são: α=2, que dá um espaçamento de 
faixa de uma oitava nos filtros adjacentes e α= ¼ que dá um espaçamento de 1/3 de oitava 
na faixa do filtro. 
 Como exemplo, pode se supor a construção de um banco de filtros de quatro 
faixas, com espaçamento de uma oitava, não superpostos, cobrindo uma faixa de 
freqüência de 200 a 3200 Hz (com uma taxa amostragem de 6.67 kHz). 
A figura 6.6 mostra os filtros ideaispara este banco de filtros. São usados valores 
para fi e C de 300 Hz e 200 Hz, resultando nas seguintes especificações para este banco de 
filtros: 
 
Filtro 1: f1 = 300 Hz b1 = 200 Hz 
 Filtro 2: f2 = 600 Hz b2 = 400 Hz 
 Filtro 3: f3 = 1200 Hz b3 = 800 Hz 
 Filtro 4: f4 = 2400 Hz b4 = 1600 Hz 
 
 
 
 
 
 
 
 
Figura 6.6: Especificação para um Banco de Filtro ideal de 4 canais de uma oitava 
 58
 
 
6.4 IMPLEMENTAÇÃO DE UM BANCO DE FILTROS 
 
Um banco de filtro pode ser implementado de diversos modos, dependendo do 
método usado para projetar os filtros individuais. O projeto de filtros digitais divide-se em 
duas classes: 
- Resposta ao Impulso Infinita (IIR) 
- Resposta ao Impulso Finita (FIR) 
 
Os filtros IIR (também chamados na literatura de filtros recursivos), são os mais 
diretos, e geralmente são de implementação mais eficiente, seja para realizar cada filtro 
passa faixa individual como uma cascata ou uma estrutura paralela. 
Para filtros FIR existem vários métodos possíveis de implementar os filtros passa 
faixa em um banco de filtros. A mais simples implementação é a estrutura na forma direta. 
Neste caso, se a resposta ao impulso para o iésimo canal é hi(n), onde 0 ≤ n ≤ L-1, então a 
saída do iésimo canal xi(n), pode ser expressa como uma convolução discreta do sinal de 
entrada s(n), com a resposta ao impulso, hi(n), isto é: 
 
 xi(n) = s(n) * hi(n) [6.10] 
 
6.5 CONSIDERAÇÕES SOBRE O USO DE BANCOS DE FILTROS EM SISTEMAS DE 
RECONHECIMENTO DE VOZ 
 
A primeira consideração para qualquer banco de filtro é o tipo de filtro digital 
usado. As escolhas são IIR (recursivo) e FIR (não recursivo). O projeto de filtros IIR tem 
a vantagem de ser implementável em estruturas simples e eficientes. A grande 
desvantagem dos filtros IIR é que a resposta em fase é não linear. Além disso, este tipo de 
filtro tem a possibilidade de ser tornar instável. 
Os filtros FIR alcançam a fase linear sem comprometer a habilidade de aproximar-
se das características de magnitude ideais; porém, eles normalmente são de implementação 
computacional muito cara. 
 
Para aplicações de reconhecimento de voz, uma estrutura de FFT pode ser 
aplicada freqüentemente para aliviar consideravelmente a ineficiência computacional de 
 59
 
 
 60
 
 
bancos de filtro FIR; conseqüentemente, estruturas de banco de filtro digitais mais 
práticas usam filtros FIR (normalmente em uma realização com FFT) [17]. 
 
A próxima consideração é o número de filtros a ser usado no banco de filtros. Para 
bancos de filtros uniformes, o número de filtros, Q, não pode ser muito pequeno ou então a 
habilidade do banco de filtros em filtrar o sinal da fala é grandemente prejudicada. 
Assim, valores de Q menores que 8 geralmente são evitados. Igualmente, o valor de 
Q não pode ser muito grande (a menos que haja uma considerável sobreposição de filtros), 
porque as larguras de faixa dos filtros seriam muito estreitas. 
Assim, sistemas práticos tendem a ter valores de Q < 32. 
Embora bancos de filtros uniformemente espaçados sejam extensamente usados 
para reconhecimento de voz, muitos sistemas práticos usam filtros de espaçamento não 
uniformes, em um esforço de reduzir computação global e caracterizar o espectro de fala 
de uma maneira mais consistente com a percepção humana. 
 
Vale salientar que o banco de filtros é uma ferramenta importante para o 
reconhecimento de voz quando o objetivo é encontrar frequências especificas de um sinal 
de voz. Como exemplo pode-se citar a análise das formantes de frequência requeridas na 
aproximação Acústico-fonética (Capitulo 2). Neste estudo, a aproximação utilizada é a de 
Reconhecimento de Padrões onde a análise espectral do sinal é feita como um todo, deste 
modo utilizamos apenas a FFT para obter o espectro de frequência do sinal. 
AS “WAVELETS” 
 
 
 
 
 
 Como será demonstrado no capitulo 10, a FFT é uma ferramenta eficiente para a 
obtenção do espectro de freqüência de um sinal. No entanto, devido à característica 
interdisciplinar do reconhecimento de voz, muitas são as variáveis que influenciam no 
resultado final da FFT, isto é, as características do espectro de um sinal de voz mudam, 
mesmo no caso deste sinal ser pronunciado pela mesma pessoa. Portanto, precisa-se de 
uma ferramenta auxiliar para dar maior confiabilidade à resposta obtida pelo sistema. As 
“Wavelets” cumprem este papel de auxiliar a FFT na definição do reconhecimento de voz. 
 A Transformada “Wavelet”, é uma técnica relativamente pouco difundida, em 
comparação com a FFT, daí a necessidade de comparar as duas ferramentas, e assim 
demonstrar sua utilidade. 
 Não é objetivo deste trabalho desenvolver um aprofundamento teórico referente às 
“Wavelets”, mas somente demonstrar a sua utilidade como uma ferramenta auxiliar à FFT 
no reconhecimento de voz. Pretende-se aqui mostrar uma pequena introdução conceitual e 
exemplos práticos do uso das “Wavelets” no reconhecimento de sinais. 
 A Transformada “Wavelet”, em alguns casos, propicia a obtenção de informações 
não conseguidas com o uso da FFT. Dentre os tipos de aplicações que utilizam as 
“Wavelets”, estão o reconhecimento de sinais e a compressão de imagens utilizadas pelo 
FBI americano no reconhecimento de impressões digitais. 
 A Transformada Discreta de Fourier foi concebida no século XIX pelo matemático 
francês Jean Baptiste Fourier. Como visto no capitulo 5, esta técnica permite que, a partir 
de um sinal no domínio do tempo, obtenha-se o sinal correspondente no domínio da 
freqüência. 
 
7.1 A TRANSFORMADA “WAVELET” 
 
 A DFT (Transformada Discreta de Fourier) informa exatamente quais são as 
freqüências presentes num sinal. Se for necessário analisar um sinal estacionário, ou seja, 
um sinal com espectro invariante, a freqüência apontada como existente pela DFT está 
presente em todo o sinal. Mas, se for necessário trabalhar com um sinal não estacionário 
 61
 
 
(como sinal de voz), muito embora a DFT aponte as frequências presentes, ela não diz 
nada sobre a localização dessas frequências, ou seja, em que instante de tempo 
determinada frequência aparece. Quando essa informação é importante, deve-se lançar mão 
de outra técnica. Uma delas é usar a decomposição baseada em “Wavelets”. 
A tradução literal de “Wavelet”, é ondaleta, ou, pequena onda. As principais 
aplicações práticas para o uso de Wavelets são: 
- Detecção de características em sinais (imagens, sons e outros sinais). 
- Tremores Sísmicos 
- Imagens Médicas 
- Compressão de imagens e sons. 
- Filtragem do ruído em imagens e sons. 
- Identificação de características em sinais. 
 
 A Wavelet é uma forma de onda de duração limitada que tem um valor médio igual 
a zero. A figura 7.1 mostra uma comparação entre um sinal senoidal (base da análise de 
Fourier) sem limite de duração (estendida de menos a mais infinito) e um sinal Wavelet 
com duração limitada, assimétrico e irregular. 
 
 
Figura 7.1: Onda Senoidal e Wavelet tipo db10 
 
 Matematicamente, o processo de análise de Fourier é representado pela 
Transformada de Fourier (equação 7.1), que é a soma de todo o sinal f(t) multiplicado pela 
exponencial complexa (que pode ser quebrado em componentes senoidais de parte real e 
imaginária). 
 
 ( ) ( ) dtetfF tjωω −+∞∞−∫= . [7.1] 
 62
 
 
 A figura 7.2 mostra como a transformada de Fourier decompõe um sinal qualquer 
em suas componentes senoidais. 
 
 
Figura 7.2: Decomposição de um sinal qualquer em sinais senoidais 
 (Transformada de Fourier) 
 
 Similarmente a transformada Wavelet é definida como a soma de todo o sinal no 
domínio do tempo, multiplicado pela função wavelet. 
 
 C [7.2] ∫+∞∞−= dttposiçãoescalatfposiçãoescala ),,().(),( ψ
 
 
 
Figura 7.3: Decomposição de um sinal qualquer em sinais de diferentes escalas e posições (Transformada Wavelet) 
 
 A equação 7.2 resulta emmuitos coeficientes “C”, os quais são função da escala e 
da posição sinal. 
 A figura 7.3 mostra a decomposição do sinal utilizando-se a Transformada 
Wavelet. 
 A Transformada Discreta Wavelet decompõe um sinal em outros dois sinais, 
fazendo uso de filtros passa-baixa (chamados scaling signals) e filtros passa-alta 
(chamados wavelets signals). 
 63
 
 
 Para um sinal discreto F de n pontos, existem m ( m ≤ n/2 ) scaling signals 
denominados por V1, V2 ...Vm, e existem também m wavelets signals denominados por W1, 
W2 ... Wm. 
 Cada par de vetores formados pelo conjunto (V1, W1), (V2, W2), ..., (Vm, Wm) é 
ortogonal, ou seja, possuí produto escalar igual a 0. 
 A forma como se define essa base de vetores é que da origem a diferentes classes 
de Transformadas Wavelets (tipo da Wavelet, ex: db10), que se prestam melhor a uma ou 
outra determinada situação. Entretanto, independente dessa definição, os scaling signals 
serão sempre obtidos dos filtros passa-baixa e os wavelets signals serão obtidos dos filtros 
passa-alta. 
A figura 7.4 mostra o nível 1 da decomposição de um sinal pelas Wavelets. O sinal 
é decomposto por dois filtros, gerando os scaling signals (A -filtros passa-baixa) e os 
wavelets signals (D - filtros passa-alta). 
 
 
Figura 7.4: Nível 1 de uma decomposição de um sinal pelas Wavelets 
 
 Quando m = ( n/2 ), o vetor de n pontos formado pelos coeficientes (a1, a2 ...am), 
seguido de (d1, d2 ...dm ) é chamado de Transformada Wavelet nível 1 do sinal original. 
 Este processo de decomposição é conhecido como Análise de Multi Resolução 
(MRA - Multiresolution Analysis) e é o coração da análise de sinais com Wavelets. 
 Para melhor exemplificar o processo de decomposição das Wavelets a figura 7.5 
mostra um sinal com 1000 pontos e sua decomposição. 
 64
 
 
 
Figura 7.5: Exemplificação da decomposição de um sinal 
pela Transformada Wavelet Nível 1 
 
7.2 A ANÁLISE DE MULTI RESOLUÇÃO (MRA) PARA MÚLTIPLOS NÍVEIS 
 
 Quando se obtêm a Transformada Wavelet de um sinal discreto, realiza-se a 
Transformada de nível 1. Se for feito o cálculo da Transformada Wavelet da primeira 
metade desse sinal já transformado, obter-se-á no segundo nível de análise, e assim por 
diante. Este processo, que está exibido na figura 7.6, pode se repetir por log2(n), onde n é o 
número de pontos do sinal original. 
 
 
Figura 7.6: Decomposição para Múltiplos nível das Wavelets 
 
 A Transformação de nível 1 do sinal S é composta pelos sub-sinais cA1 e cD1, a 
Transformação nível 2 é composta pelos sub-sinais cA2 , cD2 e cD1, e a Transformação 
 65
 
 
 66
 
 
nível 3, pelos sub-sinais cA3 , cD3 , cD2 e cD1.. 
 Nos capítulos referentes a descrição do sistema desenvolvido neste estudo, será 
mostrada a utilização da Wavelet no cálculo da correlação dos sinais de voz, como uma 
ferramenta auxiliar ao cálculo da correlação da FFT. 
 
 O RECONHECIMENTO DE VOZ E O MATLAB 6.0 
 
 
 
 
Para desenvolver um sistema completo de Reconhecimento de Voz é necessário 
primeiramente escolher um software de desenvolvimento (linguagem de alto nível). Dentre 
as principais linguagens de desenvolvimento estão o C/C++, Visual Basic e o Delphi. 
Todas estas linguagens de programação possuem um ambiente de desenvolvimento 
de alto nível e com grande capacidade de processamento de inúmeros algoritmos básicos, 
como o seno e o co-seno etc. No entanto, estas linguagens não possuem nenhuma 
ferramenta específica para o cálculo de algoritmos com grande complexidade, tal como a 
FFT (se precisarmos efetuar o cálculo da transformada de rápida de Fourier (FFT) de um 
sinal temos que desenvolver todo o algoritmo em C/C++, por exemplo). 
Como citado nos capítulos anteriores, um sistema completo de reconhecimento de 
voz possui a característica da interdisciplinaridade, ou seja, uma vasta gama de 
conhecimentos é empregada no desenvolvimento do sistema, desde a aquisição do sinal de 
voz até o reconhecimento de um padrão. Além da quantidade, existe também a 
complexidade dos cálculos envolvidos no processamento. Estes fatores influenciam o 
desempenho e a precisão do reconhecimento de voz e exigem um software de 
desenvolvimento que possua as qualidades de rapidez e precisão nas diversas tarefas 
inerentes ao sistema. 
Devido a este fato, desenvolver um sistema complexo como o de Reconhecimento 
de Voz torna-se uma tarefa árdua em linguagens como o C/C++, pois cada algoritmo tem 
que ser programado individualmente, aumentando a possibilidade de pequenos erros de 
programação (bugs) que podem levar a resultados errados e comprometer a qualidade do 
sistema. 
Existem vários softwares de desenvolvimento com ferramentas pré-programadas. O 
que mais se destaca na área de engenharia é o MATLAB. 
Desde a sua primeira versão (1984), o MATLAB é tido como produto líder na 
área de computação numérica e científica. Mais que um software de desenvolvimento de 
programas, o MATLAB é um ambiente integrado de modelamento de sistemas e 
algoritmos, ideal para implementação de projetos complexos, e por esta razão vem sendo 
adotado como ferramenta de desenvolvimento padrão pelas principais universidades e 
empresas no Brasil e no mundo. 
 67
O MATLAB é o núcleo de um ambiente de computação numérica baseado em 
matrizes que integram: 
- funções de tratamento numérico de alto desempenho; 
- sofisticados recursos de geração de gráficos para visualização de dados; 
- poderosa linguagem de programação de alto nível. 
 
 
8.1 O AMBIENTE DE PROGRAMAÇÃO DO MATLAB 
 
 A tela de desenvolvimento do MATLAB é basicamente constituída por duas 
partes principais: 
- [Command Window]: Janela de Comando 
- [Workspace]: área de memória de trabalho do MATLAB. 
 
 
Figura 8.1: Janela de Comando do MATLAB 
 
A janela de comando vista na figura 8.1 é o espaço onde são digitados os dados e 
instruções para o MATLAB e exibidos os resultados. 
 68
O sinal de prompt “>>” indica estado de espera de entrada de dados ou 
instruções. 
 A área de memória do MATLAB (Workspace) é o local onde ficam armazenadas 
as variáveis criadas na janela de comando. A figura 8.2 mostra a área de memória 
(Workspace). 
 
 
Figura 8.2: Área de Memória do MATLAB 
 
 O MATLAB possui versões para diferentes ambientes operacionais. O sistema de 
reconhecimento de voz aqui desenvolvido chama-se “Parlato” (capítulo 9) e foi 
desenvolvido na versão MATLAB 6 (R12) para ambiente Windows 98. 
A figura 8.3 mostra a tela de desenvolvimento completa do MATLAB, organizada 
da seguinte forma: 
A. Janela de Comando [Command Window]: área de trabalho na qual as instruções 
são digitadas. 
B. Janela de Informações [Launch Pad]: área na qual são exibidas informações, 
textos explicativos e exemplos de utilização dos produtos instalados. 
C. Janela de Memória [Workspace]: área na qual são exibidas as variáveis 
definidas na área de trabalho do MATLAB. 
D. Janela de Histórico [Command History]: área na qual ficam armazenadas todas 
as instruções executadas no MATLAB. 
Basicamente existem duas formas de desenvolver um programa no MATLAB. 
Uma delas é desenvolver o programa direto na Janela de Comando, o que possibilita o teste 
 69
do algoritmo instantaneamente. A outra opção é criar um arquivo de programa executável 
dentro do MATLAB que é chamado de arquivo “m.file” devido a sua extensão ser “.m”. 
 Os “m.files” são programas desenvolvidos dentro do MATLAB e somente são 
reconhecidos e executados no ambiente do MATLAB. 
 
 
Figura 8.3: Tela completa do ambiente de Desenvolvimento do MATLAB 
 
 
8.2 AS FERRAMENTAS DE PROGRAMAÇÃO DO MATLAB 
 
 Chamadas de “Toolbox”, as caixas de ferramentas do MATLAB são o que o 
diferenciam dos outros softwares de desenvolvimento como o C/C++. 
 O MATLAB possui inúmeras caixas de ferramentas com algoritmos pré-
programados para cada ramo específico de conhecimento.Se o intuito for por exemplo, 
utilizar algoritmos para o processamento de imagens no MATLAB, basta usar a caixa de 
ferramentas “Image Processing Toolbox” que contém inúmeros algoritmos prontos para 
o processamento de imagens. 
O MATLAB não possui uma caixa de ferramentas específica para o 
reconhecimento de voz. 
 70
As principais caixas de ferramentas do MATLAB podem ser encontradas na 
Janela “Launch Pad”, a qual fornece um rápido acesso ao menu de “ajuda” (help) de cada 
ferramenta. A figura 8.4 mostra a Janela “Launch Pad”. 
 
 
Figura 8.4: Janela “Launch Pad” do MATLAB 
 
No desenvolvimento do sistema “Parlato” (Capítulo 9) foram utilizados vários 
algoritmos, os quais podem ser encontrados nas caixas de ferramentas descritas abaixo: 
- Data Aquisition Toolbox: Caixa de ferramentas com algoritmos e funções para 
aquisição de dados. 
- Filter Design Toolbox: Caixa de ferramentas com funções para elaboração e 
filtros e banco de filtros. 
- Signal Processing Toolbox: Caixa de ferramentas com funções para o 
processamento de sinais, tais como a FFT. 
- Statistics Toolbox: Caixa de ferramentas com funções estatísticas tais como a 
correlação. 
- Wavelet Toolbox: Caixa de ferramentas com funções e algoritmos de análise 
espectral de sinais através das “wavelets” (método similar a FFT). 
- Database Toolbox: Caixa de ferramentas com funções e procedimentos para a 
criação e manipulação de arquivos de banco de dados. 
 
Além das caixas de ferramentas específicas, muitas funções matriciais e numéricas 
foram utilizadas na confecção do sistema de reconhecimento de voz “Parlato” (capítulo 
 71
 72
9). A utilização de todas estas funções e ferramentas de cálculo, justifica o uso do 
MATLAB como software de desenvolvimento de um sistema complexo como de 
reconhecimento de voz, pois neste caso, a atenção do programador fica voltada ao sistema 
e não a pormenores como o desenvolvimento de algoritmos para fazer a conexão com a 
placa de som, por exemplo. 
Finalmente vale salientar que o MATLAB não possui uma Caixa de Ferramentas 
especifica para o reconhecimento de voz. Portanto desenvolver um sistema de 
reconhecimento de voz no MATLAB torna-se uma tarefa tão árdua quanto em C/C++; 
a diferença é que com o MATLAB , tem-se mais segurança na utilização de algoritmos 
(algoritmos de cálculo avançado, como a FFT) que já foram amplamente testados e 
aprovados. Deste modo elimina-se a possibilidade de erros na programação destes 
algoritmos e conseqüentemente diminui-se a porcentagem de erros do sistema como um 
todo. Portanto, o sistema “Parlato” de reconhecimento de voz (descrito no capítulo 9) é 
um sistema desenvolvido neste trabalho utilizando o MATLAB como linguagem de 
programação. O sistema “Parlato” é parte integrante desta dissertação. 
 
 
 
 
 
 
 
	5.2 A TRANSFORMADA CONTÍNUA DE FOURIER
	5.3 A TRANSFORMADA DISCRETA DE FOURIER
	5.4 A TRANSFORMADA RÁPIDA DE FOURIER - FFT
	Se fizermos na equação 5.14,�, [5.15]
	16_Cap08_Matlab_a.pdf
	O RECONHECIMENTO DE VOZ E O MATLAB( 6.0
	Para desenvolver um sistema completo de Reconheci
	Todas estas linguagens de programação possuem um

Outros materiais