Una misura di correlazione basata su wavelet vale un ulteriore sovraccarico computazionale?


9

Ho usato sia la correlazione che la coerenza come misure di correlazione tra segnali. Pensavo che un approccio frequenza-tempo mi avrebbe dato il meglio di questi mondi.

La mia domanda è se questi dati aggiuntivi aggiungano abbastanza al quadro generale del segnale per giustificare l'aumento del costo computazionale associato al fare le trasformazioni wavelet come parte del calcolo?

Riferimento: un articolo di ArXiv : "Una tecnica di correlazione incrociata nel dominio wavelet per il rilevamento di onde gravitazionali stocastiche" di S.Klimenko, G.Mitselmakher, A.Sazonov


Quanto costa computazionale aggiuntivo? Puoi renderlo più veloce con FFT o FWT?
endolith,

@endolith Supponendo che avrei già incorporato quegli algoritmi, credo.
jonsca,

1
Bene, coerenza e correlazione potrebbero entrambi usare FFT, che è O (N log N), mentre FWT è O (N), quindi il metodo wavelet potrebbe effettivamente essere più veloce ? Non ho una chiara comprensione di questo, però, nonostante chiedendo due volte: math.stackexchange.com/questions/28581/... stackoverflow.com/questions/1787536/...
endolith

1
Ad ogni modo, dovresti usare quello che è più appropriato per quello che stai cercando di fare. È un po 'come chiedere "Quale è meglio? Cacciaviti o martelli?"
endolith

1
@jonsca Il tuo intuito è in realtà giusto. Apparentemente la trasformazione DWT è una variante temporale e questa proprietà può comportare un certo sfruttamento. Sto effettivamente facendo la stessa cosa per un progetto a cui sto lavorando. L'obiettivo è stimare il TDOA (ritardo di arrivo) tra due segnali, quindi prima li ho trasformati usando (una mano scritta) DWT, quindi li ho incrociati. Ecco un link a un documento che puoi leggere al riguardo dalla mia casella personale. ( dl.dropbox.com/u/4724281/waveletBasedTDOA.pdf )
Spacey,

Risposte:


5

Prima di tutto, dovresti usare qualsiasi strumento appropriato per il lavoro. Correlazione vs coerenza vs correlazione basata su wavelet sono tutte cose diverse, quindi questa domanda è un po 'come chiedere "Quale è meglio? Cacciaviti o martelli?" Dipende da cosa stai cercando di fare e se ti interessa la somiglianza nel tempo, gli spettri di frequenza o entrambi.

O(nlogn) O(n)

Empiricamente , producendo n output da n input reali, la trasformazione wavelet multilivello in PyWavelets diventa più veloce di FFT di NumPy quando n è maggiore di circa 4096.

inserisci qui la descrizione dell'immagine

però

  1. È Python e le due implementazioni potrebbero essere molto diverse tra loro. Non so nemmeno se wavedec()verrebbe considerata una trasformazione Wavelet veloce. Usano l'abbreviazione DWT nella loro documentazione. Haar DWT e FWT sono la stessa cosa?
  2. Il tempo varia a seconda della wavelet utilizzata. La wavelet Meyer impiega 6 volte il tempo necessario a Daubechies per produrre la stessa quantità di dati.
  3. Non riesco ancora a capire come l'FWT affianchi il piano frequenza-tempo , o se la produzione di n output sia sufficiente per ottenere lo stesso tipo di misurazione della somiglianza di una correlazione incrociata circolare n -point utilizzando gli FFT. (Tecnicamente è un piano su scala temporale, non frequenza-tempo, ma penso che siano gli stessi per il complesso wavelet di Morlet ?) FWT è un "campionamento critico" del piano e produce la stessa quantità di dati di FFT, quindi sembra giusto confrontarli.

Il punto principale è che il tempo di calcolo è almeno approssimativamente simile per entrambi, quindi non penso che dovresti preoccuparti quando decidi quale usare.


3

È molto tardi, ma forse ne vale la pena comunque ...

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

O(N)

Quindi l'uso del DWT per esaminare il piano temporale non ti porterà molto lontano. Ciò è particolarmente vero perché le scale "visitate" dal DWT sono separate da due fattori e sono molto meno dense della copertura che si può ottenere nel piano frequenza-tempo con la FFT. È necessario utilizzare una trasformazione wavelet invariante alla traduzione, a volte chiamata trasformazione wavelet non decimata , tra molti altri nomi. Anche allora, hai ancora la scarsità dei campioni di scala calcolati con cui confrontarti.

Inoltre, è spesso desiderabile pensare a posizioni nel piano temporale come aventi una densità di energia. Questo approccio è facilitato dall'uso di un wavelet analitico, come il complesso wavelet Morlet menzionato in precedenza. Un metodo che equilibra l'invarianza della traduzione e l'analiticità rispetto al tempo di calcolo è la complessa trasformazione wavelet a doppio albero . Fare la stessa cosa nel piano tempo-frequenza è forse più semplice: fare una trasformazione approssimativa di Hilbert sul segnale prima facendo un FFT, azzerando tutte le frequenze negative, seguito da un IFFT.

Se l'intuizione che la correlazione cerca la somiglianza nel tempo e la coerenza cerca la somiglianza nella frequenza è corretta, allora potrebbe essere meglio attenersi al piano tempo-frequenza. È certamente più semplice da calcolare ed è facile affinare il campionamento lungo l'asse della frequenza. Nessuno degli approcci sopra menzionati riguarda il campionamento dell'asse della scala in modo più denso. Per farlo, devi praticamente passare alla trasformazione wavelet continua , anche se potrebbe esserci qualcos'altro là fuori di cui non sono a conoscenza. Se hai Matlab, segui il link sopra e fallo.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.