Uma medida de correlação baseada em wavelet vale alguma sobrecarga computacional adicional?


9

Eu usei correlação e coerência como medidas de correlação entre sinais. Eu estava pensando que uma abordagem de frequência de tempo me daria o melhor desses mundos.

Minha pergunta é se esses dados extras adicionam o suficiente à imagem geral do sinal para justificar o aumento do custo computacional associado à realização das transformadas wavelet como parte do cálculo?

Referência: um artigo ArXiv : "Uma técnica de correlação cruzada no domínio wavelet para detecção de ondas gravitacionais estocásticas" por S.Klimenko, G.Mitselmakher, A.Sazonov


Quanto custo computacional adicional? Você pode acelerar com FFTs ou FWTs?
endolith

@ endolith Supondo que eu já incorporaria esses algoritmos, eu acho.
jonsca

11
Bem, coerência e correlação poderiam usar FFT, que é O (N log N), enquanto FWT é O (N), então o método wavelet pode realmente ser mais rápido ? Porém, eu não tenho um entendimento claro disso, apesar de perguntar duas vezes: math.stackexchange.com/questions/28581/… stackoverflow.com/questions/1787536/…
endolith

11
De qualquer forma, você deve usar o que for mais apropriado para o que você está tentando fazer. É como perguntar "Qual é o melhor? Chaves de fenda ou martelos?"
endolith 14/11

11
@jonsca Sua intuição está certa. Aparentemente, a transformação DWT é variável no tempo e essa propriedade pode levar a alguma exploração. Na verdade, estou fazendo exatamente a mesma coisa para um projeto em que estou trabalhando. O objetivo é estimar o TDOA (Atraso no Tempo de Chegada) entre dois sinais, então primeiro eu os transformei usando um DWT (escrito à mão) e depois os correlaciono. Aqui está um link para um artigo que você pode ler sobre isso na minha caixa de depósito pública. ( dl.dropbox.com/u/4724281/waveletBasedTDOA.pdf )
Spacey

Respostas:


5

Primeiro, você deve usar a ferramenta apropriada para o trabalho. Correlação x coerência x correlação baseada em wavelet são coisas diferentes, então essa pergunta é como perguntar "Qual é melhor? Chaves de fenda ou martelos?" Depende do que você está tentando fazer e se você se preocupa com a similaridade no tempo, espectros de frequência ou ambos.

O(nlogn) O(n)

Empiricamente , produzindo n saídas a partir de n entradas reais, a transformação wavelet de vários níveis no PyWavelets se torna mais rápida que a FFT da NumPy quando n for maior que cerca de 4096.

insira a descrição da imagem aqui

Contudo

  1. É Python, e as duas implementações podem ser muito diferentes. Eu nem sei se wavedec()isso seria considerado uma transformação rápida da wavelet. Eles usam a abreviação DWT em sua documentação. Haar DWT e FWT são a mesma coisa?
  2. O tempo varia dependendo da wavelet usada. A wavelet de Meyer leva 6 vezes mais tempo que a Daubechies para produzir a mesma quantidade de dados.
  3. Ainda não entendo como o FWT monitora o plano de tempo-frequência ou se a produção de n saídas é suficiente para obter o mesmo tipo de medição de similaridade que uma correlação cruzada circular de n pontos usando FFTs. (Tecnicamente, é um plano de escala de tempo, não de frequência de tempo, mas acho que são iguais para a complexa wavelet de Morlet ?) O FWT é uma "amostra crítica" do avião e produz a mesma quantidade de dados que a FFT, então parece justo compará-los.

O ponto principal é que o tempo de computação é pelo menos aproximadamente semelhante para ambos, então não acho que você deva se preocupar com isso ao decidir qual usar.


3

É muito tarde, mas talvez valha a pena de qualquer maneira ...

x(t)x(Δs(tΔt))ΔsΔtx(t)x(tΔt)eiΔωtΔωx(t)

O(N)

Portanto, usar o DWT para examinar o plano de escala de tempo não o levará muito longe. Isso é especialmente verdade porque as escalas "visitadas" pelo DWT são separadas por fatores de dois e são muito menos densas do que a cobertura que você pode obter no plano de tempo-frequência com a FFT. Você precisa usar uma transformação wavelet invariável à tradução, às vezes chamada de transformação wavelet não calculada , entre muitos outros nomes. Mesmo assim, você ainda tem a escassez das amostras da escala computada para lidar.

Além disso, muitas vezes é desejável pensar em locais no plano de escala de tempo como tendo uma densidade de energia. Essa abordagem é facilitada pelo uso de uma wavelet analítica, como a complexa wavelet de Morlet mencionada anteriormente. Um método que equilibra invariância de tradução e analiticidade em relação ao tempo de computação é a complexa transformação de wavelet de árvore dupla . Talvez seja mais simples fazer o mesmo no plano de frequência do tempo: faça uma transformação aproximada de Hilbert no seu sinal primeiro, fazendo uma FFT, zerando todas as frequências negativas, seguidas por uma IFFT.

Se a intuição de que a correlação procura similaridade no tempo e a coerência busca similaridade na frequência está correta, é melhor seguir o plano da frequência temporal. É certamente mais simples de calcular, e é fácil refinar a amostragem ao longo do eixo da frequência. Nenhuma das abordagens mencionadas acima aborda a amostragem do eixo da balança mais densamente. Para fazer isso, você praticamente precisa ir para a transformação de wavelet contínua , embora possa haver algo mais por aí que eu não esteja ciente. Se você possui o Matlab, siga o link acima e acesse.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.