Você gostou do post,
concorda com minhas ideias,
quer mais?
Curta o post no final da página, use o Disqus, compartilhe em sua rede social. Isso me ajuda e motiva, trazendo cada vez mais conhecimento, resumido e prático. Obrigado.

Wavelets são formas de onda efetivamente limitadas num curto espaço de tempo, que tem uma média de valores entre zero e não zero.

Wavelets tendem a ser irregulares, não mantem uma recorrência como sinais senoidais ou composições de sinais senoidais, como proposto pelas Analises de Furrier. Porém, pode ser que algum sinal seja composto pela repetição de wavelets, o que pode gerar um pouco de confusão, mas vamos tentar entender um pouco isso abaixo.

Bem, se você está procurando a Banda Wavelets, não iremos falar dela aqui, você pode obter mais informações clicando aqui. Não poderia deixar de cita-la.

Na categória wavelets você vai encontrar todas as anotações que eu tenho feito sobre o tema.

Estou trabalhando nestas anotações, estudos retomados em 13/01/2020.

Motivação

Meus estudos com Wavelets se deram em 2017 com a busca de um algoritmo para detecção e analise de sinais de ECG (Eletrocardiograma), eu precisava além de identificar a pulsação do coaração, identificar suas condições médicas através dos sinais obtidos, eu já tinha o sinal coletado com o BD101, um chip da SkyNet para coleta de ECG, porém precisava de mais detalhes, e com os dados puros (RAW) do ECG poderia fazer a analise, inicialmente pensei em usar Transformatas de Fourrier, mas me pareceu muito pesado e inadequado para o uso, apesar de muitos indica-la como sendo o caminho.

Sim era o caminho, delas cheguei aos Wavelets, pequenas amostragens vetoriais e ortogonais que representam um formato de onda que desejo obter na amostragem, através do wavelets poderia procurar a “agulha no palheiro”, ou seja aqueles pulsos que demonstram que algo está errado no coração, saber a taxa de pulsação do coração não seria suficiente, eu precisava saber de sua variabilidade e também a deformação de tais pulsos, além de a presença de outros pulsos que poderiam sugerir outras anormalidades.

O Wevelets me pareceu ser o caminho, ele me ajudaria de forma discreta e com um algoritmo rápido achar pulsos fora do comum, mas parece que falta algo mais, e não só dominar o tema seria suficiente.

Bem o projeto já não está mais sobre minha responsabilidade, mas minhas pesquisas continuam, e eu tenho buscado agora retomar os estudos especificamente sobre wavelets de forma geral, e entender sua aplicação e como construir novos algoritmos com base no contexto aplicado.

Preparando o Ambiente

Para desenvolver tal estudo, eu precisei preparar minha estação de trabalho, inicialmente dois software estão sendo usados, o Octave e o VScode, o primeiro é uma ferramenta similar ao Mathlab que permite desenvolver scripts matemáticos, produzida pela projeto GNU é Open Source e gratuita, muito útil para o estudo e avanço no domínio da matemática, o segundo talvez mais conhecido é uma IDE aberta produzida pela Microsoft que permite integrar plugins e ferramentas como o Octave, entre muitas outras. Para usar o Octave junto com o VScode usei o plugin disponível neste link](https://marketplace.visualstudio.com/items?itemName=toasty-technologies.octave)

Bem, instale ambos os programas, depois dentro do VSCode instale o plugin, não irei entrar em detalhes quanto a esta instalação.

Um exemplo simples de uso da função FWT para wavelet 'db8'
Um exemplo simples de uso da função FWT para wavelet 'db8'</br> [f,fs] = greasy; J = 10; [c,info] = fwt(f,'db8',J); plotwavelets(c,info,fs,'dynrange',90);

Para darmos continuidade será preciso instalar alguns toolbox no Octave. Iremos inicialmente instalar o Signal Processing, este toolbox possui divresas funções que auxiliam em DPS e o LTFAT - Larger Timer/Frequency Analise Tools, um toolbox que pode ser usado tanto para pesquisas acadêmicas como profissionais.

Para instalar ambos é muito simples abra o Octave Cli, e execute o seguinte comando:

pkg install signal ltfat

conforme o desempenho de sua estação de trabalho e de sua internet irá demorar alguns minutos e assim que terminar, correndo tudo bem, execute os seguintes comandos para ver uma Wavelet do tipo morlet:

pkg load signal

lb = -4;
ub = 4;
n = 1000;
[psi,xval] = morlet(lb,ub,n);
plot(xval,psi,"linewidth",4)
grid on

Os comandos acima executam o seguinte, primeiro carrega o toolbox Signal Processing. Declara três variáveis chamadas, lb, ub, n respectivamente, então chama a função morlet que irá gerar uma estrutura com os dados para reconstrução visual do Wavelet do tipo Morlet,, finalmente é chamado a função que irá plotar gráficamente o nosso Wavelet com o grid ligado no gráfico. (veja em referências onde obtive o exemplo.)

Como pode ver se você já tem alguma noção de programação, é bastante intuitivo. Teremos o seguinte resultado:

Morlet Wavelet

Para mais funções veja este link.

Vamos fazer mais um teste com o Wavelet Mexican Hat](http://carlosdelfino.eti.br/matematica/wavelets/mexican_hat-wavelets/), basta mudarmos a função:

[psi,xval] = mexihat(lb,ub,n);
plot(xval,psi,"linewidth",4)
grid on

Então teremos o seguinte resultado:

Mexican Hat Wavelet

Para mais detalhes sobre ferramentas clique aqui.

Arbitrário

que não segue regras ou normas; que não tem fundamento lógico; que apenas depende da vontade ou arbítrio daquele que age.

Wavelets são funções arbitrárias, ou seja você pode adotar a função que quiser para definir seu formato de onda, apenas é preciso se atendar para que seja uma representação real de uma janela de amostragem.

Wavelets tem assim uma número infinito de transformações (Transformatas);

Referências

Com o objetivo de unificar as referências desta série de artigos criei um post para todas elas, clique aqui para ve-las.

Você gostou do post,
concorda com minhas ideias,
quer mais?
Curta o post no final da página, use o Disqus, compartilhe em sua rede social. Isso me ajuda e motiva, trazendo cada vez mais conhecimento, resumido e prático. Obrigado.

Carlos Delfino

Escrito por:

Desenvolvedor e consultor para projetos com Microcontroladores e Mobile

Google LinkedIn Digg Reddit StumbleUpon

Atualizado em