Leggendo il diagramma di trasformazione di Wavelet


15

Ho difficoltà a capire come leggere la trama tracciata da una trasformazione wavelet,

ecco il mio semplice codice Matlab,

load noissin;
% c is a 48-by-1000 matrix, each row 
% of which corresponds to a single scale.
c = cwt(noissin,1:48,'db4','plot');

inserisci qui la descrizione dell'immagine

Quindi la parte più luminosa significa che la dimensione del coffiecient di ridimensionamento è più grande, ma come posso capire esattamente questo complotto cosa sta succedendo lì? Gentilmente mi aiuti.


ho tentato il seguente codice in matlab t = 0: 0.001: 2; y = sin (2 * pi * 20 * t) wname = 'cmor0.5-1' scala = 1: 0.1: 80; cwt (y, scala, wname, 'trama'); ho seguito la trama! inserisci qui la descrizione dell'immagine parti reali e immaginarie che mostrano lacune che sono osservate in CWT con wavelet morl. Quindi, in un certo senso, anche la CWT con wavelet complesso morlet contiene informazioni sulla fase. Come spiegarlo ??

Risposte:


15

Immagina per un secondo che hai appena tracciato il tuo wavelet daubechies-4 , come puoi vedere qui in rosso.

inserisci qui la descrizione dell'immagine

Ora immagina di prendere questa forma d'onda in rosso e di fare semplicemente una correlazione incrociata con il tuo segnale. Tracci quel risultato. Questa sarà la prima riga della trama. Questa è la scala 1. Successivamente, dilatate il wavelet Daubechies-4, (cioè lo fate semplicemente "allungare" in tempo, per qualche fattore). Quindi, esegui nuovamente una correlazione incrociata di questa nuova forma d'onda con il tuo segnale. Quindi ottieni la seconda riga della trama. Questa è la scala 2. Continui a farlo per tutte le scale, il che significa che continui a prendere la wavelet "madre" originale, e continui a dilatare, quindi a correlare, dilatare e a correlazione incrociata, ecc., E traccia semplicemente i risultati uno sopra il altri.

Questo è ciò che la trama CWT ti sta mostrando. I risultati dell'esecuzione di una correlazione incrociata del segnale con un wavelet a scale diverse, ovvero a diversi fattori di dilatazione (allungamento).

Quindi interpretiamo la tua immagine. Nella prima riga, puoi vedere che hai ampiezze deboli nella tua correlazione incrociata. Ciò significa che ti sta dicendo, quasi nulla nel tuo segnale è correlato (o "abbina") il tuo wavelet, quando è alla scala 1, (quando è alla scala più piccola). Continui ad allungare il tuo wavelet e correlandolo, eppure non corrisponde a nulla nel tuo segnale, fino a che non raggiungi diciamo, scala-31. Quindi, quando allunghi la tua wavelet 31 volte ed esegui una correlazione incrociata, inizi a vedere alcuni punti luminosi, il che significa che stai ottenendo buoni punteggi di correlazione incrociata tra la wavelet allungata e il tuo segnale.

Se guardi comunque in cima, abbiamo i punti più luminosi. Quindi, per la scala 46, hai creato quella riga allungando 46 volte la wavelet originale, quindi correlandola in modo incrociato con il tuo segnale, e quindi quella è la tua riga 46. Quindi vedi molti bei punti luminosi. Puoi vedere che nelle posizioni (asse x) ~ 25, ~ 190 e ~ 610, ho punti luminosi. Quindi, ciò ti sta dicendo, hai qualche caratteristica nel tuo segnale, che corrisponde molto da vicino alla tua wavelet che viene allungata 46 volte . Quindi hai "qualcosa" in quelle posizioni che corrispondono alla tua wavelet su questa scala.

(Certo, nel tuo caso, hai usato il rumore, quindi le posizioni di cui ho parlato sono casuali - cioè, non c'è nulla di veramente 'interessante' in corso. Fai un CWT con un impulso sinusoidale e ciò che sto dicendo può essere più chiaro per te.)

In sintesi, il CWT mostra semplicemente tutti i possibili punteggi di correlazione tra il modello / filtro abbinato (in questo caso daub-4 wavelet), in diverse posizioni, (asse x), anche a diversi fattori allungati, (asse y) .

Spero che questo abbia aiutato.


Grazie mille, questo mi ha davvero aiutato, ma come hai potuto dire che ho scoperto la frequenza e il tempo del mio segnale con questo processo?
Sufiyan Ghori,

1
@Effetto Hai trovato il 'tempo' di occorrenza di qualche caratteristica nel tuo segnale, in base al quale ottieni i punteggi di correlazione massimi. (Esempio, ~ 25, ~ 190, ~ 610) nel tuo esempio. Per ottenere il contenuto in frequenza del tuo segnale in quel punto, puoi semplicemente guardare la FFT di quella porzione del tuo segnale, OPPURE, puoi guardare la FFT del tuo wavelet su quella scala e osservare la sua risposta in frequenza.
Spacey,

Quindi, supponiamo di assumere DCT dopo wavelet per avere componenti sia di tempo che di frequenza? Se ho un'onda sinusoidale (asse x = tempo, asse y = ampiezza) e se prendo la sua FFT, allora ho componenti di frequenza dai componenti fft e time dal segnale originale, allora perché supponiamo di usare wavelet?
Sufiyan Ghori,

1
@Effetto Il motivo per cui si utilizza DFT / DCT è ottenere contenuto di frequenza globale . DFT / DCT indica il contenuto della frequenza per l'intero segnale. Dov'è una frequenza specifica nel tempo? Non lo sai. Tuttavia, se usi le wavelet, puoi scoprire non solo quale sia la tua frequenza (simile a DFT / DCT), ma anche dove hai quella frequenza. (Posizione nel tempo).
Spacey,

Per la cronaca, la frequenza esiste solo come concetto globale. Non appena inizi a provare a fissare la frequenza in un intervallo di tempo, stai davvero parlando di distribuzioni di frequenza. La distribuzione si restringe con l'aumentare del lasso di tempo o della scala. Il calcolo del DFT di wavelet di scale diverse ti darà un'idea di come interpretare i risultati di trasformazione associati nel dominio della frequenza; pensa al filtro passa-banda. La wavelet Morlet sembra avere una distribuzione della frequenza ben gaussiana che ben si adatta per ricondurre ai concetti di Fourier. @endolith ha toccato questo nella sua risposta.
user2718

11

Queste trame sono state utili per me capire, provenienti da un background STFT :

Il complesso wavlet Morlet (sinusoidale) si presenta e si comporta come il kernel complesso di una STFT (poiché deriva dalla trasformazione di Gabor , un tipo di STFT). Quando lo fai "scorrere oltre" un segnale della stessa frequenza, si abbina, indipendentemente dalla fase del segnale che stai misurando, producendo una misura di grandezza e di fase in ciascun punto (e questo è un diagramma della sola grandezza):

Entità della complessa trasformazione wavelet di Morlet

Grafico della grandezza della complessa trasformazione wavelet di Morlet

Il wavlet Morlet a valore reale si abbina solo quando le fasi del wavelet e del segnale si allineano. Quindi, quando lo fai scorrere oltre il segnale che stai misurando, va dentro e fuori fase, producendo massimi e minimi mentre si annullano o rinforzano:

Entità della trasformata wavelet Morlet reale continua

Entità della trasformata wavelet Morlet reale continua

(In realtà, in quel caso, stiamo disegnando la grandezza, quindi sia le corrispondenze positive che negative producono punti arancioni. È meglio passare invece a una mappa dei colori bipolare , per mostrare che alcuni picchi sono in fase e altri sfasati) :

Trasformata wavlet Morlet reale continua con colormap bipolare

Trasformata wavlet Morlet reale continua con colormap bipolare

Con il Morlet a valore reale, le informazioni di grandezza e fase sono combinate in un unico valore di uscita.

Le wavelet più comunemente utilizzate sono valutate in modo reale, quindi si abbinano solo quando l'onda che stai misurando e l'onda che stai testando con l'allineamento, portando a queste oscillazioni o increspature nello scalogramma mentre scorri l'una sull'altra.


Da dove hai preso quelle trame, a proposito?
Spacey,

@Mohammad: Oh, se si seguono i link Ho altre informazioni su di loro, ma in breve, li ho fatti con questo codice: phy.uct.ac.za/courses/python/examples/...
endolith


1
Molto bella! Ho deciso di conoscere wavelet, ho cercato su Google e in cinque minuti sono tornato nell'ecosistema stackexchange con una risposta di classe "aha!" Ben scritta. Questo è un set minimo di immagini ben scelto. Grazie!
uh

4

Questo è l'esempio che penso sia il migliore per capire la trama di Wavelet.

Dai un'occhiata all'immagine qui sotto, La forma d'onda (A) è il nostro segnale originale, La forma d'onda (B) mostra un'onda Daubechies 20 (Db20) lunga circa 1/8 di secondo che inizia all'inizio (t = 0) e termina effettivamente bene prima di 1/4 di secondo. I valori zero vengono estesi per l'intero 1 secondo. Il confronto punto per punto * con il nostro segnale a impulsi (A) sarà molto scarso e otterremo un valore di correlazione molto piccolo.

spostiamo prima l'onda di base o madre non stirata leggermente verso destra ed eseguiamo un altro confronto del segnale con questa nuova forma d'onda per ottenere un altro valore di correlazione. Continuiamo a spostare e quando l'onda Db20 è nella posizione mostrata in (C) otteniamo un confronto un po 'migliore rispetto a (B), ma ancora molto scarso perché (C) e (A) sono frequenze diverse.

Dopo aver continuato a spostare la wavelet fino alla fine dell'intervallo di tempo di 1 secondo, ricominciamo con una wavelet leggermente allungata all'inizio e spostiamo ripetutamente a destra per ottenere un altro set completo di questi valori di correlazione. La forma d'onda (D) mostra l'onda Db20 allungata dove la frequenza è all'incirca uguale all'impulso (A) e spostata a destra fino a quando i picchi e le valli si allineano abbastanza bene. A queste particolari quantità di spostamento e stiramento dovremmo ottenere un ottimo confronto e un grande valore di correlazione. L'ulteriore spostamento a destra, tuttavia, anche a questo stesso allungamento produrrà correlazioni sempre più povere. L'ulteriore allungamento non aiuta affatto perché, anche se allineati, il polso e l'ondulazione troppo allungata non avranno la stessa frequenza.

inserisci qui la descrizione dell'immagine

Nel CWT abbiamo un valore di correlazione per ogni spostamento di ogni wavelet allungato. † Per mostrare i valori di correlazione (qualità della "corrispondenza") per tutti questi allungamenti e spostamenti, utilizziamo un display 3D.

Eccolo,

inserisci qui la descrizione dell'immagine

I punti luminosi indicano dove i picchi e le valli dell'onda allungata e spostata si allineano meglio con i picchi e le valli dell'impulso incorporato (buio quando non c'è allineamento, dimmer in cui si allineano solo alcuni picchi e valli, ma più luminoso dove tutti i picchi e le valli allineare). In questo semplice esempio, allungare la wavelet di un fattore 2 da 40 a 20 Hz (allungando il filtro dai 20 punti originali a 40 punti) e spostandolo di 3/8 secondi nel tempo ha dato la migliore correlazione e concorda con ciò che sapevamo a priori o "in avanti" attorno all'impulso (impulso centrato a 3/8 di secondo, frequenza dell'impulso 20 Hz).

Abbiamo scelto il wavelet Db20 perché assomiglia un po 'al segnale del polso. Se non sapessimo a priori com'era l'evento, potremmo provare diversi wavelet (software facilmente commutabili) per vedere quale prodotto ha prodotto un display CWT con i punti più luminosi (che indica la migliore correlazione). Questo ci direbbe qualcosa sulla forma dell'evento.

Per il semplice esempio di tutorial qui sopra avremmo potuto discernere visivamente la posizione e la frequenza dell'impulso (A). Il prossimo esempio è un po 'più rappresentativo di wavelet nel mondo reale in cui posizione e frequenza non sono visibili ad occhio nudo.

Vedi l'esempio di seguito,

inserisci qui la descrizione dell'immagine

Le wavelet possono essere utilizzate per analizzare eventi locali. Costruiamo un segnale a onda sinusoidale che varia lentamente di 300 punti e aggiungiamo un piccolo "glitch" o discontinuità (in pendenza) a tempo = 180. Non noteremmo il glitch se non guardassimo il primo piano (b).

Ora vediamo come FFT mostrerà questo Glitch, dai un'occhiata, inserisci qui la descrizione dell'immagine

La bassa frequenza dell'onda sinusoidale è facile da notare, ma il piccolo glitch non può essere visto.

Ma se usiamo CWT invece di FFT mostrerà chiaramente quel glitch, inserisci qui la descrizione dell'immagine

Come puoi vedere, il display wavelet CWT mostra chiaramente una linea verticale a tempo = 180 ea scala bassa. (La wavelet ha pochissimo allungamento alle scale basse, indicando che il glitch era molto corto.) Il CWT si confronta anche con la grande onda sinusoidale oscillante che nasconde il glitch. A queste scale più alte l'onda è stata allungata (a una frequenza inferiore) e quindi “trova” il picco e la valle dell'onda sinusoidale al momento = 75 e 225, per questa breve discontinuità abbiamo usato un Db4 a 4 punti corto wavelet (come mostrato) per il miglior confronto.

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.