Une mesure de corrélation basée sur des ondelettes vaut-elle des frais de calcul supplémentaires?


9

J'ai utilisé à la fois la corrélation et la cohérence comme mesures de corrélation entre les signaux. Je pensais qu'une approche temps-fréquence me donnerait le meilleur de ces mondes.

Ma question est de savoir si ces données supplémentaires ajoutent suffisamment à l'image globale du signal pour justifier l'augmentation des coûts de calcul associée à la réalisation des transformées en ondelettes dans le cadre du calcul?

Référence: un article d' ArXiv : "Une technique de corrélation croisée dans le domaine des ondelettes pour la détection des ondes gravitationnelles stochastiques" par S.Klimenko, G.Mitselmakher, A.Sazonov


Combien de frais de calcul supplémentaires? Pouvez-vous accélérer les FFT ou FWT?
endolith

@endolith En supposant que j'intégrerais déjà ces algorithmes, je pense.
jonsca

1
Eh bien, la cohérence et la corrélation pourraient toutes deux utiliser la FFT, qui est O (N log N), tandis que FWT est O (N), de sorte que la méthode des ondelettes pourrait en fait être plus rapide ? Je n'ai pas une compréhension claire de cela, cependant, malgré deux fois: math.stackexchange.com/questions/28581/… stackoverflow.com/questions/1787536/…
endolith

1
Quoi qu'il en soit, vous devez utiliser celui qui convient le mieux à ce que vous essayez de faire. C'est un peu comme demander "Quel est le meilleur? Tournevis ou marteaux?"
endolith

1
@jonsca Votre intuition est en fait juste. Apparemment, la transformation DWT est une variante temporelle, et cette propriété peut conduire à une certaine exploitation. Je fais exactement la même chose pour un projet sur lequel je travaille. L'objectif est d'estimer TDOA (Time Delay of Arrival) entre deux signaux, donc je les ai d'abord transformés en utilisant un DWT (écrit à la main), puis je les ai corrélés entre eux. Voici un lien vers un article que vous pouvez lire à ce sujet dans ma boîte de dépôt publique. ( dl.dropbox.com/u/4724281/waveletBasedTDOA.pdf )
Spacey

Réponses:


5

Tout d'abord, vous devez utiliser l'outil approprié pour le travail. Corrélation vs cohérence vs corrélation basée sur les ondelettes sont toutes des choses différentes, donc cette question est un peu comme demander "Quel est le meilleur? Tournevis ou marteaux?" Cela dépend de ce que vous essayez de faire, et si vous vous souciez de la similitude dans le temps, les spectres de fréquence, ou les deux.

Deuxièmement, je n'ai qu'une compréhension minimale des ondelettes, mais votre supposition selon laquelle les ondelettes nécessitent plus de calculs pourrait être erronée. La transformation de Fourier rapide prend opérations , tandis que la transformation d'ondelette rapide prend O ( n ) . Ainsi, la méthode des ondelettes pourrait en fait nécessiter moins de calculs, selon que vous pouvez utiliser les informations que vous en retirez.O(nJournaln) O(n)

Empiriquement , produisant n sorties à partir de n entrées réelles, la transformation en ondelettes à plusieurs niveaux dans PyWavelets devient plus rapide que la FFT de NumPy lorsque n est supérieur à environ 4096.

entrez la description de l'image ici

toutefois

  1. C'est Python, et les deux implémentations pourraient être très différemment efficaces. Je ne sais même pas si wavedec()serait considéré comme une transformation rapide en ondelettes. Ils utilisent l'abréviation DWT dans leur documentation. Haar DWT et FWT sont-ils la même chose?
  2. Le temps varie en fonction de l'ondelette utilisée. L'ondelette Meyer prend 6 fois plus de temps que Daubechies pour produire la même quantité de données.
  3. Je ne comprends toujours pas comment le FWT tuile le plan temps-fréquence , ou si la production de n sorties est suffisante pour obtenir le même type de mesure de similitude qu'une corrélation croisée circulaire à n points utilisant des FFT. (Techniquement, c'est un plan d'échelle de temps, pas de temps-fréquence, mais je pense que ce sont les mêmes pour l' ondelette Morlet complexe ?) FWT est un "échantillonnage critique" de l'avion, et produit la même quantité de données que FFT, il semble donc juste de les comparer.

Le point principal est que le temps de calcul est au moins à peu près similaire pour les deux, donc je ne pense pas que vous devriez vous en soucier lorsque vous décidez lequel utiliser.


3

C'est très tard, mais ça vaut peut-être la peine quand même ...

X(t)X(Δs(t-Δt)), où Δs vous fait monter (ou descendre) dans l'échelle et Δtvous déplace dans le temps. La même transformation dans le plan temps-fréquence estX(t)X(t-Δt)ejeΔωt, où Δωest un changement de fréquence. Si votre signalX(t) est une onde sinusoïdale, les deux transformations sont identiques.

Le DWT, ou transformée en ondelettes discrètes, ne calcule que des échelles discrètes, tout comme la FFT ne calcule que des fréquences discrètes. Et le commentaire que @Spacey a fait ci-dessus que le DWT n'est pas invariant à la traduction est correct. Cela se produit car à chaque étape du DWT, le signal est décimé par deux. Cela rend le DWT plus rapide que le FFT,O(N), mais détruit également la translation-invariance.

Donc, utiliser le DWT pour examiner le plan d'échelle de temps ne vous mènera pas très loin. Cela est particulièrement vrai parce que les échelles "visitées" par le DWT sont séparées par des facteurs de deux et sont beaucoup moins denses que la couverture que vous pouvez obtenir dans le plan temps-fréquence avec la FFT. Vous devez utiliser une transformée en ondelettes invariante par rapport à la traduction, parfois appelée transformée en ondelettes non décimée , parmi de nombreux autres noms. Même alors, vous avez encore la rareté des échantillons d'échelle calculés à affronter.

En outre, il est souvent souhaitable de considérer les emplacements dans le plan d'échelle de temps comme ayant une densité d'énergie. Cette approche est facilitée par l'utilisation d'une ondelette analytique, telle que l'ondelette Morlet complexe mentionnée précédemment. Une méthode qui équilibre la translation-invariance et l'analyticité par rapport au temps de calcul est la transformée en ondelettes à double arbre complexe . Faire la même chose dans le plan temps-fréquence est peut-être plus simple: faites d'abord une transformée de Hilbert approximative sur votre signal en effectuant une FFT, en mettant à zéro toutes les fréquences négatives, puis en effectuant un IFFT.

Si l'intuition selon laquelle la corrélation recherche la similitude dans le temps et la cohérence dans la similitude en fréquence est correcte, alors vous feriez mieux de vous en tenir au plan temps-fréquence. Il est certainement plus simple à calculer et il est facile d'affiner l'échantillonnage le long de l'axe des fréquences. Aucune des approches mentionnées ci-dessus ne concerne l'échantillonnage de l'axe de l'échelle de manière plus dense. Pour ce faire, vous devez à peu près aller à la transformation en ondelettes continue , bien qu'il puisse y avoir quelque chose d'autre que je ne sache pas. Si vous avez Matlab, suivez le lien ci-dessus et accédez-y.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.