Andrei Šelkovenko. Üks Vibromera arendajatest ja asutaja.
Artikli tõlge võib sisaldada ebatäpsusi.
- Fourier' teisendus ja signaali spekter
Paljudel juhtudel on signaali spektri saamise (arvutamise) ülesanne järgmine. On olemas ADC, mis muundab aja T jooksul tema sisendisse saabuva pideva signaali proovivõtusagedusega Fd digitaalseteks proovideks - N tükki. Seejärel sisestatakse see näidiste massiivi mõnele programmile (näiteks FourierScope), mis väljastab N/2 numbrilist väärtust.
Et kontrollida, kas programm töötab õigesti, moodustame proovide massiivi kahe sin(10*2*pi*x)+0,5*sin(5*2*pi*x) summana ja sisestame selle programmi. Programm joonistas järgmist:
Spektri graafikul on kaks harmoonilist - 5 Hz amplituudiga 0,5 V ja 10 Hz amplituudiga 1 V, kõik on nagu algsignaali valemis. Kõik on korras, grogram toimib korrektselt.
See tähendab, et kui me söödame ADC sisendisse kahe sinusoidi segust koosnevat reaalsignaali, saame sarnase spektri, mis koosneb kahest harmoonikast.
Nii et meie tõeline mõõdetud signaal kestusega 5 sekundit, mis on digitaliseeritud ADC abil, s.t. kujutatud diskreetselt proovid, on diskreetne mitteperioodiline spekter.
Matemaatilisest vaatenurgast - kui palju vigu selles lauses on?
Nüüd proovime mõõta sama signaali 0,5 sekundi jooksul.
Midagi on siin valesti! Harmooniline 10 Hz juures on joonistatud normaalselt ja 5 Hz juures oleva harmoonilise asemel on mõned ebaselged harmoonilised.
Internetis öeldakse, et proovi lõppu tuleb lisada nullid ja siis joonistub spekter normaalselt.
See ei ole üldse nii. Ma pean tegelema teooriaga. Läheme wikipedia - teadmiste allikas.
2. Pidev funktsioon ja selle Fourier' seeria kujutamine
Matemaatiliselt on meie signaal kestusega T sekundit mingi funktsioon f(x), mis on antud ajavahemikul {0, T} (X on antud juhul aeg). Sellist funktsiooni saab alati esitada harmooniliste funktsioonide (siinus või kosinus) summana kujul:
k on trigonomeetrilise funktsiooni number ( harmoonilise komponendi number, harmoonilise number)
T - segment, kus funktsioon on määratletud (signaali kestus)
Ak- k-nda harmoonilise komponendi amplituud,
θk- k-nda harmoonilise komponendi algfaas
Mida tähendab "funktsiooni kujutamine jadade summana"? See tähendab, et Fourier' seeria harmooniliste komponentide väärtuste liitmisel igas punktis saame meie funktsiooni väärtuse selles punktis.
(Täpsemalt öeldes kaldub seeria keskmine ruuthälve funktsioonist f(x) nullile, kuid vaatamata keskmisele ruutkeskmisele konvergentsile ei pea funktsiooni Fourier' jada üldjuhul punktide kaupa sinna konvergeeruma. )
Selle seeria võib kirjutada ka kujul:
kus , k-nda kompleksne amplituud.
või
Koefitsientide (1) ja (3) vaheline seos on väljendatud järgmiste valemitega:
Pange tähele, et kõik need kolm Fourier' seeria esitust on täiesti samaväärsed. Mõnikord on Fourier' jadadega töötades mugavam kasutada siinuste ja kosinuste asemel kujuteldava argumendi eksponente, st kasutada Fourier' teisendust komplekssel kujul. Meie jaoks on aga mugav kasutada valemit (1), kus Fourier' jada esitatakse kosinuste summana koos vastavate amplituudide ja faasidega. Igal juhul on vale väita, et reaalse signaali Fourier' teisenduse tulemuseks on kompleksharmoonilised amplituudid. Nagu Wiki õigesti ütleb: "Fourier' teisendus (ℱ) on operatsioon, mis kaardistab ühe reaalmuutuja funktsiooni teise, samuti reaalmuutuja funktsiooniga".
Lõpptulemus:
Signaalide spektraalanalüüsi matemaatiline alus on Fourier' teisendus.
Fourier' teisendus võimaldab esitada pidevat funktsiooni f(x) (signaali), mis on määratletud ajavahemikus {0, T}, samuti ajavahemikus {0, T} vaadeldavate lõpmatu arvu (lõpmatu seeria) trigonomeetriliste funktsioonide (siinus ja/või koosinus) summana, mille amplituudid ja faasid on kindlad. Sellist jada nimetatakse Fourier' jadaks.
Pange tähele veel mõningaid punkte, mille mõistmine on vajalik Fourier' teisenduse õigeks rakendamiseks signaalianalüüsis. Kui vaatleme Fourier' jada (sinusoidide summa) kogu X-teljel, näeme, et väljaspool intervalli {0, T} kordab Fourier' seeria funktsioon perioodiliselt meie funktsiooni.
Näiteks joonisel 7 esitatud graafikul on algne funktsioon määratletud ajavahemikul {-T\2, +T\2} ja Fourier' jada kujutab endast perioodilist funktsiooni, mis on määratletud kogu x-teljel.
See tuleneb sellest, et sinusoidid ise on perioodilised funktsioonid, seega on ka nende summa perioodiline funktsioon.
Seega:
Meie algne funktsioon on pidev, mitteperioodiline funktsioon, mis on defineeritud mingi lõigu pikkusega T.
Selle funktsiooni spekter on diskreetne, s.t. see esitatakse lõpmatu harmooniliste komponentide reana - Fourier' jadana.
Tegelikult defineerib Fourier' jada mingi perioodilise funktsiooni, mis langeb kokku meie funktsiooniga ajavahemikul {0, T}, kuid meie jaoks ei ole see perioodilisus oluline.
Järgmine.
Harmooniliste komponentide perioodid on intervall {0, T}, millel algfunktsioon f(x) on defineeritud, mitmekordsed. Teisisõnu, harmooniliste perioodid on signaali mõõtmise kestuse kordajad. Näiteks Fourier' seeria esimese harmoonilise periood on võrdne intervalliga T, millel funktsioon f(x) on defineeritud. Teise harmoonilise periood Fourier' jadas on võrdne intervalliga T/2. Ja nii edasi (vt joonis 8).
Vastavalt sellele on harmooniliste komponentide sagedused 1/T kordajad. See tähendab, et harmooniliste komponentide Fk sagedused on Fk= k\T, kus k on väärtused 0 kuni ∞, näiteks k=0 F0=0; k=1 F1=1\T; k=2 F2=2\T;k=3 F3=3\T;.... Fk= k\T (nullsagedusel, konstantne komponent).
Olgu meie esialgne funktsioon, on signaal, mis on salvestatud T=1 sek. jooksul. Siis on esimese harmoonilise periood võrdne meie signaali kestusega T1=T=1 sek ja harmoonilise sagedus on võrdne 1 Hz. Teise harmoonilise periood on võrdne meie signaali kestusega jagatud 2ga (T2=T/2=0,5 sek) ja sagedus on 2 Hz. Kolmanda harmoonilise puhul on T3=T/3 sek ja sagedus on 3 Hz. Ja nii edasi.
Harmoonikute vaheline samm on sel juhul 1 Hz.
Seega saab signaali, mille kestus on 1 sekund, lahutada harmoonilisteks komponentideks (spektri saamiseks) sageduse eraldusvõimega 1 Hz.
Selleks, et suurendada eraldusvõimet 2 korda 0,5 Hz-ni, on vaja suurendada mõõtmise kestust 2 korda 2 sekundi võrra. 10-sekundilise signaali saab lahutada harmoonilisteks komponentideks (spektrile) sageduse lahutusvõimega 0,1 Hz. Muid võimalusi sageduse eraldusvõime suurendamiseks ei ole.
On olemas viis, kuidas kunstlikult suurendada signaali kestust, lisades proovide massiivi nullid. Kuid see ei suurenda tegelikku sageduse eraldusvõimet.
3. Diskreetsed signaalid ja diskreetne Fourier' teisendus
Digitaaltehnoloogia arenguga on mõõtmisandmete (signaalide) salvestamise viisid muutunud. Kui varem võis signaali salvestada magnetofonile ja salvestada lindile analoogkujul, siis nüüd on signaalid digitaliseeritud ja salvestatud numbrite (loenduste) kogumina failidesse arvutimällu.
Signaali mõõtmise ja digiteerimise tavaline skeem näeb välja järgmiselt.
Mõõtmisandur -- Signaali normaliseerija -- ADC -- Arvuti
(Joonis 9 Mõõtekanali skeem)
Mõõteandurilt saadav signaal läheb ADC-sse aja T jooksul. Aja T jooksul saadud signaalinäidud (proovivõtmine) edastatakse arvutisse ja salvestatakse mällu.
Millised on nõuded signaalide digiteerimise parameetritele? Seadet, mis muundab sisendanaloogsignaali diskreetseks koodiks (digitaalsignaaliks), nimetatakse analoog-digitaalmuunduriks (ADC) (© Wiki).
ADC üks põhiparameetreid on maksimaalne proovivõtusagedus - ajas pideva signaali proovivõtusagedus. Proovivõtusagedust mõõdetakse hertsides. ((© Wiki))
Vastavalt Kotelnikovi teoreemile, kui pideva signaali spekter on piiratud sagedusega Fmax, saab seda täielikult ja üheselt rekonstrueerida selle diskreetsetest proovidest, mis on võetud ajaintervallide T = 1/2*Fmax, st sagedusega Fd ≥ 2*Fmax, kus Fd - proovivõtusagedus; Fmax - signaali spektri maksimaalne sagedus. Teisisõnu, signaali digiteerimissagedus (ADC proovivõtusagedus) peab olema vähemalt 2 korda suurem kui signaali maksimaalne sagedus, mida tahame mõõta.
Ja mis juhtub, kui me võtame proove väiksema sagedusega, kui Kotelnikovi teoreem nõuab?
Sellisel juhul esineb "aliasing" efekt (ka stroboskoopiline efekt, moire-efekt), mille puhul kõrgsageduslik signaal muutub pärast digiteerimist madalasageduslikuks signaaliks, mida tegelikult ei ole olemas. Joonisel 11 on kõrge sagedusega punane siinuslaine tegelik signaal. Madalama sagedusega sinine siinuslaine on fiktiivne signaal, mis tekib seetõttu, et proovivõtu ajal on aega läbida üle poole kõrgsagedusliku signaali perioodist.
Aliasing-efekti vältimiseks paigutatakse enne ADC-d spetsiaalne antialias-filter (madalpääsufilter). See laseb läbi sagedused, mis on madalamad kui pool ADC proovivõtusagedusest, ja lõikab ära kõrgemad sagedused.
Signaali spektri arvutamiseks selle diskreetsete proovide abil kasutatakse diskreetset Fourier'i teisendust (DFT). Pange taas tähele, et diskreetsete signaalide spekter on "määratluse järgi" piiratud sagedusega Fmax, mis on väiksem kui pool proovivõtusagedusest Fd. Seetõttu saab diskreetsete signaalide spektrit esitada järgmiste valemite summana piiratud harmooniliste arv, erinevalt pideva signaali Fourier' seeria lõpmatu summast, mille spektri arv võib olla piiramatu. Kotelnikovi teoreemi kohaselt peab harmoonilise maksimaalne sagedus olema selline, et see moodustab vähemalt kaks proovi, nii et harmooniliste arv on võrdne poolega diskreetse signaali proovide arvust. See tähendab, et kui proovis on N proovi, on harmooniliste arv spektris N/2.
Vaatleme nüüd diskreetset Fourier-transformatsiooni (DFT).
Võrreldes seda Fourier' jadaga
Nagu näeme, langevad need kokku, välja arvatud asjaolu, et FFT-s on aeg diskreetne ja harmooniate arv on piiratud N/2-ga, mis on pool proovide arvust.
DFT valemid kirjutatakse dimensioonitute täisarvuliste muutujate k, s kujul, kus k on signaali proovide arv, s on spektrikomponentide arv.
Väärtus s näitab täisharmooniliste võnkumiste arvu perioodi T (signaali mõõtmise kestus) kohta. Diskreetse Fourier' teisenduse abil leitakse harmoonikute amplituudid ja faasid numbriliselt, st "arvutis".
Nagu eespool juba öeldud, kui mitteperioodiline funktsioon (meie signaal) lagundatakse Fourier' jadaks, vastab saadud Fourier' rida tegelikult perioodilisele funktsioonile perioodiga T (joonis 12).
Nagu on näha joonisel 12, on funktsioon f(x) perioodiline perioodiga T0. Kuid kuna mõõtmisproovi pikkus T ei ole võrdne funktsiooni perioodiga T0, on Fourier' jadana saadud funktsioonil punktis T ebatäiuslik. Selle tulemusena sisaldab selle funktsiooni spekter suurel hulgal kõrgsageduslikke harmoonilisi. Kui mõõtmisproovi T kestus langeks kokku funktsiooni T0 perioodiga, siis sisaldaks Fourier' teisenduse järel saadud spekter ainult esimest harmoonilist (sinusoid, mille periood on võrdne proovi kestusega), sest funktsioon f(x) on sinusoid.
Teisisõnu, DFT-programm "ei tea", et meie signaal on "siinuslaine viil", vaid üritab kujutada jadana perioodilist funktsiooni, millel on siinuslaine eraldi tükkide katkendlikkusest tingitud katkendlikkus.
Selle tulemusena ilmnevad spektris harmoonilised, mis peaksid kokku esindama funktsiooni kuju, sealhulgas seda ebastabiilsust.
Seega, et saada "õige" spekter signaalist, mis on mitme erineva perioodiga sinusoidi summa, on vaja, et täisarvuline arv perioode iga sinusoid peaks olema olemas signaali mõõteperioodil. Praktikas saab seda tingimust täita, kui signaali mõõtmise kestus on piisavalt pikk.
Lühemal kestusel näeb pilt "halvem" välja:
Praktikas võib olla raske mõista, kus on "tõelised komponendid" ja kus "artefaktid", mis on põhjustatud komponentide perioodide ja signaali proovivõtu kestuse ebajärjekindlusest või "hüpetest ja katkestustest" lainekujul. Loomulikult on sõnad "tegelikud komponendid" ja "artefaktid" põhjusega pandud jutumärkidesse. Paljude harmooniliste komponentide olemasolu spektri graafikul ei tähenda, et meie signaal tegelikult neist koosneks. See on sama, kui arvata, et number 7 "koosneb" numbritest 3 ja 4. Numbrit 7 võib mõelda kui 3 ja 4 summat - see on õige.
Seega ka meie signaal... või õigemini isegi mitte "meie signaal", vaid perioodiline funktsioon, mis koosneb meie signaali (proovi) kordamisest, on esitatav teatud amplituudide ja faasidega harmooniliste (siinuslaine) summana. Kuid paljudel praktika jaoks olulistel juhtudel (vt joonised eespool) on tõepoolest võimalik seostada spektris saadud harmoonikuid ka reaalsete protsessidega, millel on tsükliline iseloom ja mis aitavad oluliselt kaasa signaali kujule.
Mõned tulemused
1. Reaalsel mõõdetud signaalil, mille kestus on T sekundit ja mis on digitaliseeritud ADC abil, st mida esindab diskreetsete proovide kogum (N tükki), on diskreetne mitteperioodiline spekter, mida esindab hulk harmoonilisi (N/2 tükki).
2. Signaal on esitatud kehtivate väärtuste kogumina ja selle spekter on esitatud kehtivate väärtuste kogumina. Harmooniliste sagedused on positiivsed. See, et spektrit on matemaatiliselt mugavam esitada komplekssel kujul, kasutades negatiivseid sagedusi, ei tähenda, et "see on õige" ja "nii tuleks alati teha".
3. Ajal T mõõdetud signaal on määratud ainult ajal T. Mis juhtus enne signaali mõõtmist ja mis juhtub pärast seda, on teadusele teadmata. Ja meie puhul ei ole see huvitav. Ajaliselt piiratud signaali FFT annab selle "tegeliku" spektri, selles mõttes, et teatud tingimustel võimaldab see arvutada selle komponentide amplituudi ja sageduse.