9.1 Analiza spectrală a semnalelor

Este foarte comun ca informațiile să fie codificate în sinusoidele care formează un semnal. Acest lucru este valabil pentru semnalele naturale, precum și pentru cele create de oameni. Multe lucruri oscilează în universul nostru. De exemplu, vorbirea este rezultatul vibrației corzilor vocale umane; stelele și planetele își schimbă strălucirea în timp ce se rotesc pe axele lor și se învârt în jurul lor; elicele navelor generează deplasarea periodică a apei și așa mai departe. Modelul formei de undă a domeniului timp nu este importantă în aceste semnale; informațiile cheie sunt în frecvența, faza și amplitudinea sinusoidelor componente. DFT este folosită pentru a extrage aceste informații.

Un exemplu va arăta cum funcționează acest lucru. Să presupunem că vrem să cercetăm sunetele care călătoresc prin ocean. Pentru a începe, un microfon este plasat în apă și semnalul electronic rezultat amplificat la un nivel rezonabil, să zicem câteva volți. Un filtru analogic trece-jos este folosit pentru a elimina toate frecvențele de peste 80 hertz, astfel încât semnalul poate fi digitizat la 160 de eșantioane pe secundă. După achiziționarea și stocarea mai multor mii de eșantioane, ce urmează?

Primul lucru este doar să privim datele. Figura 9-1a arată 256 de eșantioane din experimentul nostru imaginar. Tot ce poate fi văzut este o formă de undă zgomotoasă care transmite puțină informație ochiului uman. Din motive explicate în scurt timp, următorul pas este să multiplicăm acest semnal printr-o curbă netedă numită fereastră Hamming, arătată în (b). (Capitolul 16 furnizează ecuațiile pentru fereastra Hamming și alte ferestre, vezi ec. 16-1 și 16-2 și fig.16-2a). Acest lucru are ca rezultat un semnal de 256 de puncte în care eșantioanele din apropierea capetelor au fost reduse în amplitudine, așa cum se arată în (c).

Luând DFT și transformând în notație polară, rezultă în spectrul de frecvență de 129 de puncte din (d). Din nefericire, aceasta arată ca o dezordine zgomotoasă. Acest lucru se datorează faptului că nu există suficiente informații în cele 256 de puncte originale pentru a obține o curbă bine documentată. Utilizarea unei DFT mai lungă nu face nimic pentru a ajuta la această problemă. De exemplu, dacă se utilizează o DFT de 2048 de puncte, spectrul de frecvență devine lung de 1025 de eșantioane. Chiar dacă 2048 de puncte originale conțin mai multe informații, numărul mai mare de eșantioane din spectru diluează informațiile cu același factor. DFT-uri mai lungi oferă o rezoluție mai bună de frecvență, dar același nivel de zgomot.

Răspunsul este să utilizați mai mult din semnalul original într-un mod care să nu mărească numărul de puncte din spec-trul de frecvență. Acest lucru se poate face prin ruperea semnalului de intrare în multe segmente de 256 de puncte. Fiecare dintre aceste segmente se înmulțește cu fereastra Hamming, trece printr-o DFT de 256 de puncte și este convertită în notație polară. Spectrele de frecvență rezultate sunt apoi mediate pentru a forma un singur spectru de frecvență de 129 puncte. Figura (e) prezintă un exemplu de mediere a 100 de spectre de frecvență tipizate prin (d). Îmbunătățirea este evidentă; zgomotul a fost redus la un nivel care permite observarea caracteristicilor interesante ale semnalului. Numai magnitudinea domeniului frecvență este mediată în acest mod; faza este de obicei eliminată, deoarece nu conține informații utile. Zgomotul aleator se reduce proporțional cu rădăcina pătrată a numărului de segmente. În timp ce 100 de segmente sunt tipice, unele aplicații ar putea media milioane de segmente pentru a scoate în evidență caracteristici slabe.

Există, de asemenea, o a doua metodă de reducere a zgomotului spectral. Începeți prin a lua o DFT foarte lungă, să zicem 16.384 de puncte. Spectrul de frecvență rezultat este de înaltă rezoluție (8193 eșantioane), dar foarte zgomotos. Un filtru digital trece-jos este utilizat pentru a netezi spectrul, reducând zgomotul în detrimentul rezoluției. De exemplu, cel mai simplu filtru digital ar putea media 64 de eșantioane adiacente în spectrul original pentru a produce fiecare eșantion din spectrul filtrat. Trecând prin calcule, acest lucru oferă același zgomot și rezoluție ca prima metodă, unde 16.384 de puncte ar fi rupte în 64 segmente de 256 de puncte fiecare.

Ce metodă ar trebui să folosiți? Prima metodă este mai ușoară, deoarece filtrul digital nu este necesar. A doua metodă are potențialul unei performanțe mai bune, deoarece filtrul digital poate fi adaptat pentru a optimiza compromisul între zgomot și rezoluție. Totuși, această performanță îmbunătățită rar merită probleme. Acest lucru se datorează faptului că atât zgomotul, cât și rezoluția pot fi îmbunătățite prin utilizarea mai multor date din semnalul de intrare. De exemplu, imaginați-vă că rupeți datele achiziționate în 10.000 de segmente de 16.384 eșantioane fiecare. Acest spectru de frecvență rezultat este de o rezoluție ridicată (8193 puncte) și zgomot redus (10 000 de medii). Problemă rezolvată! Din acest motiv, vom analiza numai metoda segmentelor mediate în această discuție.

Domeniul timp

Domeniul frecvență


Figura 9-1 Un exemplu de analiză spectrală.

Figura (a) prezintă 256 de eșantioane luate de la un microfon (simulat) submarin la o rată de 160 de eșantioane pe secundă. Acest semnal este multiplicat de o fereastră Hamming arătată în (b), rezultând un semnal ferestruit în (c). Spectrul de frecvență al semnalului ferestruit este găsit utilizând DFT, și este afișat în (d) (numai amplitudinea). Mediind 100 din aceste spectre se reduce zgomotul aleatoriu, rezultând spectrul de frecvențe mediat arătat în (e).

Figura 9-2 prezintă un spectru de exemplu din microfonul nostru submarin, ilustrând caracteristicile care apar frecvent în spectrele de frecvență ale semnalelor achiziționate. Ignorați vârfurile ascuțite pentru o clipă. Între 10 și 70 hertzi, semnalul constă dintr-o regiune relativ plată. Aceasta se numește zgomot alb, deoarece conține o cantitate egală din toate frecvențele, la fel ca lumina albă. El rezultă din zgomotul pe forma de undă a domeniului timp care este necorelat de la eșantion la eșantion. Adică, cunoașterea valorii zgomotului prezent pe oricare dintre eșantioane nu furnizează informații privind valoarea zgomotului prezent pe oricare alt eșantion. De exemplu, mișcarea aleatoare a electronilor din circuitele electronice produce zgomot alb. Ca un exemplu mai familiar, sunetul jetului de apă care lovește podeaua de duș este zgomot alb. Zgomotul alb prezentat în figura 9-2 ar putea proveni din oricare alte multe surse, inclusiv electronica analogică sau chiar oceanul însuși.

Peste 70 de hertzi, zgomotul alb scade rapid în amplitudine. Acesta este rezultatul roll-off-ului filtrului antialias. Un filtru ideal ar trece toate frecvențele sub 80 de hertz și va bloca toate frecvențele de mai sus. În practică, nu este posibilă o decupare perfectă, și ar trebui să așteptați să vedeți această scădere treptată. Dacă nu, suspectați că este prezentă o problemă de aliasing.

Sub aproximativ 10 hertzi, zgomotul crește rapid datorită unei curiozități numite zgomot 1/f. Zgomotul 1/f este un mister. Acesta a fost măsurat în sisteme foarte diverse, cum ar fi densitatea traficului pe autostradă și zgomotul electronic în tranzistoare. Probabil ar putea fi măsurată în toate sistemele, dacă analizați destul de jos în frecvență. În ciuda apariției sale largi, o teorie generală și înțelegerea zgomotului 1/f au eludat cercetătorii. Cauza acestui zgomot poate fi identificată în unele sisteme specifice; totuși, acest lucru nu răspunde la întrebarea de ce zgomotul 1/f este peste tot. Pentru electronica analogică obișnuită și pentru cele mai multe sisteme fizice, tranziția dintre zgomotul alb și zgomotul 1/f are loc între aproximativ 1 și 100 de hertzi.

Acum ajungem la vârfurile ascuțite din Fig. 9-2. Cea mai ușoară explicație este la 60 de hertz, rezultatul interferenței electromagnetice de la alimentarea electrică comercială. De asemenea, așteptați să se vadă vârfuri mai mici la multiplii acestei frecvențe (120, 180, 240 hertz etc.), deoarece forma de undă a liniei electrice nu este un sinusoid perfect. Este, de asemenea, obișnuit să se găsească vârfuri de interferență între 25-40 kHz, un favorit pentru proiectanții surselor de alimentare în comutație. Stațiile de radio și televiziune din apropiere produc vârfuri de interferență în gama megahertz. Vârfurile de frecvență joasă pot fi cauzate de componentele vibratoare ale sistemului când sunt agitate. Aceasta se numește microfonie și, de obicei, creează vârfuri de la 10 la 100 hertzi.

Acum ajungem la semnalele actuale. Există un vârf puternic la 13 hertzi, cu vârfuri mai slabe la 26 și 39 hertzi. Așa cum am discutat în următorul capitol, acesta este spectrul de frecvență al unei forme de undă periodice nesinusoidale. Vârful la 13 hertzi se numește frecvența fundamentală, în timp ce vârfurile la 26 și 39 hertz sunt numite armonica a doua și a treia. De asemenea, v-ați aștepta să găsiți vârfuri la alte multipli de 13 hertzi, cum ar fi 52, 65, 78 hertzi etc. Nu vedeți aceste lucruri în figura 9-2 pentru că sunt îngropate în zgomotul alb. Acest semnal de 13 hertzi ar putea fi generat, de exemplu, de o propulsie a unui submarin care se rotește la 4,33 rotații pe secundă. Aceasta este baza sonarului pasiv, care identifică sunetele submarine prin frecvența și conținutul lor armonic.

Figura 9-2 Exemplu de spectru de frecvență.

Trei tipuri de caracteristici apar în spectrele semnalelor achiziționate: (1) zgomotul aleatoriu, cum ar fi zgomotul alb și zgomotul 1/f, (2) interferarea semnalelor de la rețeaua de alimentare, comutarea surselor de putere, stații radio și TV, microfonia etc. și (3) semnale reale, uzual apărând ca o fundamentală plus armonici. Acest exemplu de spectru (numai amplitudine) prezintă câteva din aceste caracteristici.

Să presupunem că există vârfuri foarte apropiate împreună, așa cum se arată în figura 9-3. Există doi factori care limitează rezoluția de frecvență care poate fi obținută, adică cât de apropiate pot fi vârfurile fără a fuziona într-o singură entitate. Primul factor este lungimea DFT. Spectrul de frecvență produs de o DFT cu N puncte constă din N/2 +1 eșantioane egal distanțate între zero și jumătate din frecvența de eșantionare. Pentru a separa două frecvențe distanțate apropiat, distanța eșantionului trebuie să fie mai mică decât distanța dintre cele două vârfuri. De exemplu, o DFT de 512 puncte este suficientă pentru a separa vârfurile din figura 9-3, în timp ce o DFT de 128 puncte nu este.

Figura 9-3 Rezoluția spectrului de frecvență.

  • O DFT mai lungă are abilitate mai bună de a separa caracteristici spațiate apropiat. În aceste exemple de magnitudini,

  • o DFT de 128 de puncte nu poate rezolva cele două vârfuri, pe când o DFT de 512 de puncte poate.

Al doilea factor care limitează rezoluția este mai subtil. Imaginați-vă un semnal creat prin adunarea a două unde sinus, cu o mică diferență în frecvențele lor. Pe un segment scurt al acestui semnal, să zicem câteva perioade, forma de undă va arăta ca o singură undă sinus. Cu cât frecvențele sunt mai apropiate, cu atât mai lung trebuie să fie segmentul pen-tru a concluziona că există mai mult de o frecvență. Cu alte cuvinte, lungimea semnalului limitează rezoluția frecvenței. Acest lucru este diferit de primul factor, deoarece lungimea semnalului de intrare nu trebuie să fie aceeași cu lungimea DFT. De exemplu, un semnal de 256 de puncte ar putea fi căptușit cu zerouri pentru a ajunge la 2048 de puncte. Luând o DFT de 2048 de puncte, produce un spectru de frecvență cu 1025 de eșantioane. Zerourile adăugate nu modifică forma spectrului, ele oferă doar mai multe eșantioane în domeniul frecvență. În ciuda acestei eșantionări foarte apropiate, capacitatea de separare a vârfurilor distanțate apropiat ar fi doar puțin mai bună decât utilizarea unei DFT de 256 de puncte. Când DFT are aceeași lungime ca semnalul de intrare, rezoluția este limitată în mod egal de acești doi factori. Vom reveni la această problemă în curând.

Următoarea întrebare: Ce se întâmplă dacă semnalul de intrare conține un sinusoid cu o frecvență între două funcții de bază? Figura 9-4a prezintă răspunsul. Acesta este spectrul de frecvență al unui semnal compus din două unde sinus, unul având o frecvență care corespunde unei funcții de bază, iar celălalt cu o frecvență între două funcții de bază. După cum vă așteptați, prima undă sinus este reprezentată ca un singur punct. Celălalt vârf este mai dificil de înțeles. Deoa-rece nu poate fi reprezentat de un singur eșantion, devine un vârf cu cozi care se extind la o distanță semnificativă.

Soluția? Înmulțiți semnalul cu o fereastră Hamming înainte de a face DFT, după cum s-a discutat anterior. Figura (b) arată că spectrul este modificat în trei moduri prin utilizarea ferestrei. În primul rând, cele două vârfuri sunt făcute să pară mai asemănătoare. Asta e bine. În al doilea rând, cozile sunt mult reduse. Acest lucru este de asemenea bun. În al treilea rând, fereastra reduce rezoluția în spectru făcând vârfurile mai largi. Asta e rău. În jargonul DSP, ferestrele oferă un compromis între rezoluție (lățimea vârfului) și scurgerea spectrală (amplitudinea cozilor).

Figura 9-4 Exemplu de utilizare a unei ferestre în analiza spectrală.

Figura (a) prezintă spectrul de frecvență (numai amplitudinea) al unui semnal constând din două unde sinus. O undă sinus are frecvența exact egală cu a unei funcții de bază, permițând să fie reprezentată de un singur eșantion. Cealaltă undă sinus are o frecvență între două din funcțiile de bază, rezultând cozi pe vârf. Figura (b) prezintă spectrul de frecvență al aceluiași semnal, dar cu o fereastră Hamming aplicată înainte de a face DFT. Fereastra face vârfurile să arate la fel și reduce cozile, dar lărgește vârfurile.

Pentru a explora mai detaliat aspectele teoretice ale acestui aspect, imaginați-vă o undă sinus discretă, infinit de lungă, la o frecvență de 0,1 din rata de eșantionare. Spectrul de frecvență al acestui semnal este un vârf infinit de îngust, toate celelalte frecvențe fiind zero. Desigur, nici acest semnal, nici spectrul său de frecvență nu pot fi aduse într-un calculator digital, datorită naturii lor infinite și infinitezimale. Pentru a face acest lucru, schimbăm semnalul în două moduri, ambele distorsionând adevăratul spectru de frecvență.

Mai întâi, trunchiem informațiile din semnal, înmulțindu-l cu o fereastră. De exemplu, o fereastră dreptunghiulară de 256 puncte ar permite ca 256 de puncte să își păstreze valoarea corectă, în timp ce toate celelalte eșantioane din semnalul infinit de lung ar fi setate la o valoare zero. De asemenea, fereastra Hamming va fasona eșantioanele reținute, pe lângă stabilirea tuturor punctelor în afara ferestrei la zero. Semnalul este încă infinit de lung, dar numai un număr finit de eșantioane are o valoare nonzero.

Cum afectează această fereastră domeniul frecvență? Când se înmulțesc două semnale din domeniu timp, domeniile frecvență corespunzătoare sunt în convoluție. Deoarece spectrul original este un vârf infinit de îngust (adică, o funcție delta), spectrul semnalului din fereastră este spectrul ferestrei deplasate la locația vârfului. Figura 9-5 arată cum ar apărea vârful spectral folosind trei opțiuni diferite pentru ferestre. Figura 9-5a rezultă dintr-o fereastră dreptunghiulară. Figurile (b) și (c) rezultă din utilizarea a două ferestre populare, Hamming și Blackman (după cum s-a menționat mai devreme, vezi ec. 16-1 și 16-2 și Fig.16-2a pentru informații despre aceste ferestre).

După cum se arată în figura 9-5, toate aceste ferestre au degradat spectrul original prin lărgirea vârfului și adăugarea cozilor compuse din numeroși lobi laterali. Acesta este un rezultat inevitabil al utilizării doar a unei porțiuni din semnalul inițial al domeniului timp. Aici vedem compromisul dintre cele trei ferestre. Blackman are cel mai larg lob principal (rău), dar cozile de amplitudine cea mai mică (bun). Fereastra dreptunghiulară are cel mai îngust lob principal (bun), dar cele mai largi cozi (rău). Fereastra Hamming se află între cele două.

Observați în figura 9-5 că spectrele de frecvență sunt curbe continue, nu eșantioane discrete. După aplicarea ferestrei, semnalul din domeniu timp este încă infinit de lung, chiar dacă majoritatea eșantioanelor sunt zero. Aceasta înseamnă că spectrul de frecvență este format din ∞/2 +1 eșantioane între 0 și 0,5, care este același ca o linie continuă.

Figura 9-5 Detaliu unui vârf spectral utilizând ferestre variate.

Fiecare vârf din spectrul de frecvență este un lob central înconjurat de cozi formate din lobi laterali. Prin schimbarea modelului de fereastră, amplitudinea lobilor laterali poate fi redusă cu prețul de a face mai larg lobul principal. Fereastra dreptunghiulară (a) are lobul principal cel mai îngust dar amplitudinea cea mai largă a lobilor laterali. Fereastra Hamming (b) și fereastra Blackman (c) au lobii laterali de amplitudine mai mică la prețul unui lob principal mai larg. Fereastra cu vârful plat (d) este utilizată când amplitudinea unui vârf trebuie măsurată cu acuratețe. Aceste curbe sunt pentru ferestre cu 255 de puncte; ferestre mai lungi produc proporțional vârfuri mai înguste.

Acest lucru aduce în al doilea rând că trebuie să modificăm semnalul din domeniu timp pentru a permite reprezentarea acestuia pe un computer: selectați N puncte din semnal. Aceste N puncte trebuie să conțină toate punctele nonzero identificate prin fereastră, dar pot include și orice număr de zerouri. Acest lucru are efectul de eșantionare a curbei con-tinue a spectrului de frecvență. De exemplu, dacă N este ales să fie 1024, curba continuă a spectrului va fi eșantionată de 513 ori între 0 și 0,5. Dacă N este ales să fie mult mai mare decât lungimea ferestrei, eșantioanele din domeniul frecvență vor fi suficient de apropiate încât vârfurile și văile curbei continue vor fi păstrate în noul spectru. Dacă N se face la fel ca lungimea ferestrei, numărul mai mic de eșantioane din spectru are ca rezultat modelul obișnuit al vârfurilor și văilor transformându-se în cozile neregulate, depinzând pe care eșantioane se întâmplă să cadă. Aceasta explică de ce cele două vârfuri din figura 9-4a nu arată la fel. Fiecare vârf din Fig. 9-4a este o eșantionare a curbei de bază din fig.9-5a. Prezența sau absența cozilor depinde de unde sunt luate eșantioanele în raport cu vârfurile și văile. Dacă unda sinus se potrivește exact unei funcții de bază, eșantioanele apar exact la văi, eliminând cozile. Dacă unda sinus se află între două funcții de bază, eșantioanele apar undeva de-a lungul vârfurilor și văilor, ducând la diferite modele de cozi.

Aceasta ne conduce la fereastra cu vârf-plat, prezentată în figura 9-5d. În unele aplicații, amplitudinea unui vârf spectral trebuie măsurată foarte precis. Deoarece spectrul de frecvență al DFT este format din eșantioane, nu există nimic care să garanteze că un eșantion va apărea exact pe vârf. Mai mult decât probabil, cel mai apropiat eșantion va fi ușor în afara centrului, dând o valoare mai mică decât amplitudinea reală. Soluția este de a folosi o fereastră care produce un vârf spectral cu partea superioară plată, asigurându-se că unul sau mai multe eșantioane vor avea întotdeauna valoarea maximă corectă. După cum se arată în figura 9-5d, pedeapsa pentru aceasta este un lob principal foarte larg, rezultând o rezoluție redusă a frecvenței.

După cum se dovedește, forma pe care o dorim pentru o fereastră cu vârf-plat este exact aceeași formă ca și kernel-ul filtrului unui filtru trece-jos. Vom discuta motivele teoretice pentru aceasta în capitolele ulterioare; pentru moment, aici este o descriere despre modul cum se utilizează tehnica. Capitolul 16 discută despre un filtru low-pass denumit windowed-sinc. Ecuația 16-4 descrie modul de generare a kernelului de filtrare (pe care dorim să-l folosim ca fereastră), iar Fig. 16-4a ilustrează forma tipică a curbei. Pentru a utiliza această ecuație, va trebui să cunoașteți valoarea a doi parametri: M și fc. Acestea se găsesc din relațiile: M = N-2 și fc = s/N, unde N este lungimea DFT utilizată și s este numărul de eșantioane pe care doriți să fie pe porțiunea plată a vârfului (de obicei între 3 și 5). Tabelul 16-1 prezintă un program pentru calculul kernelului de filtrare (fereastra noastră), care include două caracteristici subtile: constanta de normalizare K și modul de evitare a unei erori de împărțire la zero pe eșantionului central. Când utilizați această metodă, amintiți-vă că o valoare DC de unu din domeniul timp va produce un vârf de amplitudine unu în domeniul frecvență. Totuși, un sinusoid de amplitudine unu în domeniul timp va produce doar un vârf spectral de amplitudine jumătate-de-unu. (Acest lucru este discutat în ultimul capitol: Sinteza, Calculul DFT inverse).

Secțiunea următoare: Răspunsul în frecvență al sistemelor