Che cos’è una wavelet?
Una wavelet è una forma d'onda di durata effettivamente limitata che ha un valore medio pari a zero e una norma diversa da zero.
Molti segnali e immagini di interesse presentano un comportamento uniforme a tratti, punteggiato da transienti. I segnali vocali sono caratterizzati da brevi esplosioni che codificano le consonanti, seguite da oscillazioni stazionarie che indicano le vocali. Le immagini naturali presentano dei bordi. Le serie temporali finanziarie presentano un comportamento transiente, che caratterizza i rapidi rialzi e flessioni delle condizioni economiche. Diversamente dalla base di Fourier, le basi wavelet sono in grado di rappresentare in modo rado segnali e immagini regolari a tratti, che includono comportamenti transienti.
Confrontare le wavelet con le onde sinusoidali, che sono la base dell'analisi di Fourier. Le sinusoidi non hanno una durata limitata: si estendono da meno a più infinito. Mentre le sinusoidi sono uniformi e prevedibili, le wavelet tendono a essere irregolari e asimmetriche.
L'analisi di Fourier consiste nel suddividere un segnale in onde sinusoidali di varie frequenze. Allo stesso modo, l'analisi wavelet è la scomposizione di un segnale in versioni spostate e scalate della wavelet originale (o madre).
Semplicemente osservando le immagini delle wavelet e delle onde sinusoidali, si capisce intuitivamente che i segnali con variazioni brusche possono essere analizzati meglio con una wavelet irregolare che con una sinusoide uniforme.
È anche logico che le feature locali possano essere descritte meglio con wavelet che hanno un'estensione locale. L'esempio seguente illustra questo aspetto per un semplice segnale costituito da un'onda sinusoidale con una discontinuità.
Localizzazione della discontinuità in un'onda sinusoidale
Questo esempio mostra che l'analisi wavelet può localizzare una discontinuità in un'onda sinusoidale.
Creare un'onda sinusoidale di 1 Hz campionata a 100 Hz. La durata della sinusoide è di un secondo. La sinusoide presenta una discontinuità a secondi.
t = linspace(0,1,100)'; x = sin(2*pi*t); x1 = x-0.15; y = zeros(size(x)); y(1:length(y)/2) = x(1:length(y)/2); y(length(y)/2+1:end) = x1(length(y)/2+1:end); stem(t,y,'markerfacecolor',[0 0 1]); xlabel('Seconds'); ylabel('Amplitude');
Ottenete la trasformata wavelet discreta non decimata dell'onda sinusoidale utilizzando la wavelet 'sym2'
e tracciate i coefficienti (di dettaglio) wavelet insieme al segnale originale.
[swa,swd] = swt(y,1,'sym2'); subplot(211) stem(t,y,'markerfacecolor',[0 0 1]); title('Original Signal'); subplot(212) stem(t,swd,'markerfacecolor',[0 0 1]); title('Level 1 Wavelet Coefficients');
Confrontare le ampiezze dei coefficienti di Fourier per l'onda sinusoidale a 1 Hz, con e senza discontinuità.
dftsig = fft([x y]); dftsig = dftsig(1:length(y)/2+1,:); df = 100/length(y); freq = 0:df:50; stem(freq,abs(dftsig)); xlabel('Hz'); ylabel('Magnitude'); legend('sine wave','sine wave with discontinuity');
La differenza tra le ampiezze dei coefficienti di Fourier è minima. Poiché i vettori base di Fourier discreti hanno supporto sull'intero intervallo di tempo, la trasformata di Fourier discreta non rileva la discontinuità con la stessa efficienza della trasformata wavelet.
Confrontare i coefficienti wavelet di livello 1 per l'onda sinusoidale, con e senza discontinuità.
[swax,swdx] = swt(x,1,'sym2'); subplot(211) stem(t,swd); title('Sine Wave with Discontinuity (Wavelet Coefficients)'); subplot(212) stem(t,swdx); title('Sine Wave (Wavelet Coefficients)');
I coefficienti wavelet dei due segnali mostrano una differenza significativa. L'analisi wavelet è spesso in grado di rivelare caratteristiche di un segnale o di un'immagine che altre tecniche di analisi non colgono, come tendenze, punti di rottura, discontinuità nelle derivate superiori e auto similarità. Inoltre, poiché le wavelet forniscono una visione dei dati diversa da quella presentata dalle tecniche di Fourier, l'analisi wavelet può spesso comprimere o ridurre il rumore in modo significativo in un segnale senza una degradazione apprezzabile.