14.1 Reprezentarea semnalului prin transformate

Înainte de a afla despre transformata wavelet și aplicațiile sale, mai întâi trebuie să înțelegeți câteva concepte de bază din algebra liniară. În special, trebuie să fiți familiarizați cu produse inner și cu vectorii de bază.

Inner Product (Produs scalar)

Produsul scalar a doi vectori este o operație matematică care determină similitudinea acestor vectori unul față de celălalt. De exemplu, având în vedere vectorii x = (x1, x2) și y = (y1, y2), produsul lor scalar este

<x, y> = x1* y1 + x2* y2

Produsul scalar determină similitudinea calculând proiecția (sau componenta) unui vector în direcția celuilalt. De exemplu, dacă aveți doi vectori, v și x, proiecția (notată cu p) a lui v pe x este dată de

unde ||x|| este magnitudinea vectorului x. Dacă x este un vector unitate, ||x|| = 1, iar proiecția lui v pe x este pur și simplu

p = <v, x>

Mărimea proiecției |p| este lungimea proiecției ortogonale a lui v pe o linie dreaptă care are aceeași direcție ca vectorul unitate x. Proiecția p în sine ar putea fi pozitivă, negativă sau zero. Acest lucru este ilustrat în figura de mai jos:

Cu cât valoarea |p| este mai mare, cu atât vectorii sunt mai similari unul cu celălalt și invers. Când produsul scalar este egal cu zero, cei doi vectori sunt perpendiculari unul pe celălalt. Un alt mod de a spune acest lucru este că cei doi vectori sunt ortogonali atunci când produsul lor scalar este egal cu zero.

Vectori de bază

Considerați un vector în 2D. Orice astfel de vector poate fi scris ca suma ponderată a altor doi vectori unitate, i = (1,0) și j = (0,1). De exemplu, vectorul v = (4,1) poate fi scris ca v = 4* i + 1* j. Acest lucru este ilustrat grafic în figura de mai jos:

Vectorii i și j sunt cunoscuți ca vectori de bază în 2D. Fiecare alt vector din 2D poate fi scris ca o combinație a acestor doi vectori de bază. O proprietate importantă a vectorilor de bază este că aceștia sunt perpendiculari (ortogonali) unul față de celălalt. Aceasta corespunde ca produsul lor scalar să fie egal cu zero. De asemenea, mărimile lor sunt egale cu unu. Pentru vectorii de bază i și j în 2D,

<i, j> = <(1,0), (0,1)> = 1*0 + 0*1 = 0

Cu alte cuvinte, înseamnă că ei sunt liniar independenți (vezi cap 8, Algebra liniară) și nu puteți exprima unul dintre ei în funcție de celălalt.

Pentru vectorul v = (4,1), puteți lua produsul său scalar raportat la vectorii unitate i și j:

<v, i> = 4*1 + 1*0 = 4 și

<v, j> = 4*0 + 1*1 = 1

Aceasta dă proiecția lui v pe vectorii unitate. Deoarece <v, i> este mai mare decât <v, j>, puteți spune că vectorul v este mai similar cu i decât cu j. Acest lucru este evident din figura de mai sus, unde v este mai orizontal decât vertical. (Rețineți că, deoarece i și j sunt vectori unitate, magnitudinea lor este egală cu 1.0. Astfel, în ecuațiile de mai sus, nu am normalizat în mod specific prin mărime.)

Dacă cunoașteți valorile produsului scalar al lui v cu vectorii de bază i și j, puteți obține v de la vectorii de bază, înmulțindu-i cu valorile produselor scalare corespunzătoare și adunând rezultatele. Pentru exemplul dat,

4*i + 1*j = 4*(1,0) + 1*(0,1) = (4,0) + (0,1) = (4,1) = v.

Punctele importante de reținut din discuția de mai sus sunt:

• Vectorii de bază sunt aleși ortogonali unul față de celălalt.

• Orice vector v poate fi defalcat ca sumă a vectorilor de bază ponderați. Acest lucru se realizează luând produsul scalar al vectorului cu fiecare dintre vectorii de bază.

• Cu cât este mai mare valoarea produsului scalar, cu atât este mai mare similitudinea vectorului dat în raport cu acel vector de bază.

• Puteți reconstrui vectorul v cunoscând valorile produsului său scalar cu fiecare dintre vectorii de bază. Reconstituirea se realizează prin înmulțirea produsului scalar cu vectorul de bază corespunzător și adunarea rezultatelor.

Transformata Fourier

La fel cum puteți defalca orice vector în 2D în termenii unui set de vectori de bază i și j, puteți, de asemenea, sparge un semnal de timp s(t) în termenii unui set de funcții de bază. Un exemplu popular bine cunoscut de funcții de bază în analiza semnalului sunt sinus și cosinus ale transformatei Fourier. Aceste sinus și cosinus sunt înrudite armonic între ele, ceea ce înseamnă că frecvențele lor sunt multipli întregi ai unei frecvențe fundamentale. În plus, sinus și cosinus sunt ortogonale (dacă luați produsul lor scalar, rezultatul este zero).

Când efectuați transformata Fourier a unui semnal de timp s(t), efectiv luați produsul scalar al semnalului cu fiecare dintre funcțiile de bază. Deci, de fapt, observați asemănarea semnalului cu fiecare dintre sinus și cosinus de frecvențe diferite. Dacă obțineți o valoare mare a produsului scalar cu o funcție de bază la o anumită frecvență, înseamnă că destul de multă din acea frecvență este prezentă în semnal. Dacă produsul scalar se dovedește a fi zero, înseamnă că frecvența nu este prezentă în s(t).

Deși transformata Fourier este un instrument util în obținerea de informații despre conținutul de frecvență al unui semnal, dezavantajul său este că nu poate să ne spună când apare o anumită frecvență în timp. De exemplu, considerați cele două semnale chirp prezentate în primele două grafice ale figurii de mai jos. Frecvența semnalului de sus crește, în timp ce cea a semnalului de jos scade. Totuși, ambele au exact aceeași magnitudine a transformatei Fourier, așa cum se arată în graficul inferior.

Analizând transformata Fourier a unui semnal, nu puteți spune cum se schimbă frecvența acestuia în timp. Tot ce observați este conținutul de frecvență al semnalului eșantionat în intervalul de timp dat. Dezavantajul acestei forme de analiză tradițională cu transformata Fourier este că ar fi utilă numai pentru analiza semnalelor staționare (adică, semnale al căror conținut de frecvență nu variază cu timpul).

Transformata Fourier cu fereastră sau Transformata Fourier în timp scurt (STFT)

O metodă de obținere a informației despre timp (în plus față de informația de frecvență) cu transformata Fourier este de a separa semnalul în intervale mici de timp înainte de a aplica transformata Fourier. De exemplu, să presupunem că aveți 1000 de eșantioane ale unui semnal colectate pe o perioadă de 10 secunde (deci frecvența de eșantionare este de 100 Hz). Ați putea face transformata Fourier a celor 1000 de eșantioane, după cum se arată mai jos:

Rezultatul este un spectru bidimensional în care axa-x este frecvența, iar axa-y este amplitudinea. Rezoluția de frecvență în acest caz este Δf = fs/1000, unde fs este frecvența de eșantionare. Pentru aceeași rată de eșantionare, pentru a crește rezoluția de frecvență (adică reduce Δf), trebuie să crești numărul de eșantioane la peste 1000.

Dar, puteți, de asemenea, împărți semnalul în cinci intervale de timp egale de două secunde fiecare și să analizați conținutul de frecvență al fiecărui interval separat. În fiecare dintre aceste intervale de timp, veți avea 200 de probe de semnal. Puteți face apoi transformata Fourier pe Intervale succesive de timp de 2 secunde, după cum se arată mai jos.

Rezultatul este un spectru 3D, unde axa-x reprezintă timpul, axa-y reprezintă frecvența, iar axa-z (în afara paginii) reprezintă amplitudinea frecvențelor în timpul pentru care a fost făcută transformarea. Axa z-poate avea o o scală de culoare sau de gri pentru a reprezenta valorile de amplitudine. Această metodă de împărțire a semnalului în intervale de timp mai mici și apoi de a face transformata Fourier a intervalelor succesive este cunoscută sub numele de transformata Fourier în timp-scurt (STFT).

Rețineți că fiecare spectru este obținut pe un interval de timp de 2 secunde. Deci, știți că orice componentă de frecvență indicată în spectru a apărut undeva în acele 2 secunde. Astfel, această metodă vă oferă o rezoluție de timp mai bună decât primul caz, unde ați avut un interval de 10 secunde, undeva în care ar fi putut apare o frecvență afișată în spectru. Dar, rețineți că rezoluția de frecvență este acum Δf = fs/200 și acum este de cinci ori mai mare decât în ​​primul caz.

O rezoluție de timp bună este necesară pentru părțile care se schimbă rapid (de înaltă frecvență) ale unui semnal, în timp ce o rezoluție de frecvență bună este necesară pentru părțile care variază lent (frecvență joasă) ale unui semnal. Pentru a îmbunătăți rezoluția de frecvență, puteți (pentru o frecvență dată de eșantionare) să creșteți dimensiunea intervalului de timp în care obțineți eșantioanele, dar atunci rezoluția de timp este afectată. Dacă îmbunătățiți rezoluția de timp prin scăderea intervalului de timp, rezoluția de frecvență este afectată, deoarece acum aveți mai puține probe, deci Δf este mai mare. Prin urmare, există un compromis între rezoluția de timp și rezoluția de frecvență atunci când utilizați STFT.

14.2 Transformata wavelet