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

jonsca
fonte
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.

endólito
fonte
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.

Preço de Rodney
fonte