Transformada de Fourier
29 pág.

Transformada de Fourier


DisciplinaRedes sem Fio666 materiais22.595 seguidores
Pré-visualização5 páginas
muitos coeficientes \u201cC\u201d, 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 \u2264 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\uf6da 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++\uf6da, Visual Basic\uf6da e o Delphi\uf6da. 
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++\uf6da, 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++\uf6da, 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\uf6da. 
Desde a sua primeira versão (1984), o MATLAB\uf6da é 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\uf6da é 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\uf6da é 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\uf6da 
 
 A tela de desenvolvimento do MATLAB\uf6da é basicamente constituída por duas 
partes principais: 
- [Command Window]: Janela de Comando 
- [Workspace]: área de memória de trabalho do MATLAB\uf6da. 
 
 
Figura 8.1: Janela de Comando do MATLAB\uf6da 
 
A janela de comando vista na figura 8.1 é o espaço onde são digitados os dados e 
instruções para o MATLAB\uf6da e exibidos os resultados. 
 68
O sinal de prompt \u201c>>\u201d indica estado de espera de entrada de dados ou 
instruções. 
 A área de memória do MATLAB\uf6da (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\uf6da 
 
 O MATLAB\uf6da possui versões para diferentes ambientes operacionais. O sistema de 
reconhecimento de voz aqui desenvolvido chama-se \u201cParlato\u201d (capítulo 9) e foi 
desenvolvido na versão MATLAB\uf6da 6 (R12) para ambiente Windows\uf6da 98. 
A figura 8.3 mostra a tela de desenvolvimento completa do MATLAB\uf6da, 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\uf6da. 
D. Janela de Histórico [Command History]: área na qual ficam armazenadas todas 
as instruções executadas no MATLAB\uf6da. 
Basicamente existem duas formas de desenvolver um programa no MATLAB\uf6da. 
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\uf6da que é chamado de arquivo \u201cm.file\u201d devido a sua extensão ser \u201c.m\u201d. 
 Os \u201cm.files\u201d são programas desenvolvidos dentro do MATLAB\uf6da e somente são 
reconhecidos e executados no ambiente do MATLAB\uf6da. 
 
 
Figura 8.3: Tela completa do ambiente de Desenvolvimento do MATLAB\uf6da 
 
 
8.2 AS FERRAMENTAS DE PROGRAMAÇÃO DO MATLAB\uf6da 
 
 Chamadas de \u201cToolbox\u201d, as caixas de ferramentas do MATLAB\uf6da são o que o 
diferenciam dos outros softwares de desenvolvimento como o C/C++\uf6da. 
 O MATLAB\uf6da possui inúmeras caixas de ferramentas com algoritmos pré-
programados para cada ramo específico de conhecimento.