interpretar o escalograma da wavelet

8

Meu conhecimento de wavelets é menor que epsilon. Tenha paciencia comigo. Se eu tenho um sinal de dois sinusóides bem separados (15 e 48 Hz) mais algum ruído aleatório, posso distinguir claramente os dois em um espectrograma (as duas faixas na minha foto);

t=0:0.002:1;   % fs = 500 Hz
x=4*sin(2*pi*15*t)+2*cos(2*pi*48*t);
xn = x + randn(size(x));
figure(1);
plot(xn);
figure(2);
spectrogram(xn, 64, 60, [], 500);

insira a descrição da imagem aqui insira a descrição da imagem aqui

mas, usando 'wscalogram', não posso dizer que posso diferenciar os componentes:

    coefs = cwt(xn,1:64,'db8','scalCNT');
    wscalogram('image',coefs,'scales',1:64,'ydata',xn);

insira a descrição da imagem aqui

Existe uma maneira de ler no escalograma que existem 2 sinusóides distintos e, se houver, como separá-los usando a decomposição e a filtragem de wavelets? Eu pensei que talvez minha escolha de wavelet ('db8') não seja ideal, mas não vejo muita diferença usando outros tipos e escalas de número maior (ou menor). Claramente, estou perdendo algo sobre onde, quando e sobre o que aplicar wavelets.

obrigado

user1641496
fonte
Eu gostaria de saber qual é o significado do eixo y. Quem posso ler a frequência no eixo y no escalograma da Wavelet?
Nader Rachid

Respostas:

3

Wavelets são ideais para eventos localizados. A Transformada de Fourier representa uma função como uma soma de senos e cossenos, nenhum dos quais está localizado. O espectrograma mantém algumas informações de tempo, às custas da resolução de frequência

No seu caso, o sinal não está localizado. O espectrograma mancha sua banda de 15 Hz por vários Hz, pois captura algumas informações de tempo, e o escalograma se esgota.

MSalters
fonte
1

Sim, você está perdendo alguma coisa :) Embora tenha tentado diferentes famílias de wavelets, você deve usar o GaborWavelet. Eu escrevi isso Mathematica, mas você pode fazê-lo em qualquer ambiente que desejar.

cwd = ContinuousWaveletTransform[Table[4 Sin[2 Pi 15 t] + 2 Cos[2 Pi 48 t] +   
               RandomReal[{-.5, .5}], {t, 0, 5 \[Pi], .01}], GaborWavelet[]]

WaveletScalogram[cwd, ColorFunction -> "RoseColors"]

Gráficos do Mathematica

Sektor
fonte
2
A razão para preferir uma GaborWaveletdeve ser explicada aqui.
Serge Stroobandt