Furjē transformācijas praktiskā pielietošana signālu analīzei. Ievads iesācējiem

Es ticu, ka viss vispārīgi runājot zināt par tāda brīnišķīga matemātiskā rīka kā Furjē transformācija esamību. Taču augstskolās nez kāpēc māca tik slikti, ka salīdzinoši maz cilvēku saprot, kā šī transformācija notiek un kā tā pareizi jāizmanto. Tikmēr šīs transformācijas matemātika ir pārsteidzoši skaista, vienkārša un eleganta. Es aicinu ikvienu uzzināt nedaudz vairāk par Furjē transformāciju un ar to saistīto tēmu par to, kā analogos signālus var efektīvi pārvērst ciparu formātā skaitļošanas apstrādei.

Neizmantojot sarežģītas formulas un Matlab, es mēģināšu atbildēt uz šādiem jautājumiem:

  • FT, DTF, DTFT – kādas ir atšķirības un kā šķietami pilnīgi atšķirīgas formulas dod tik konceptuāli līdzīgus rezultātus?
  • Kā pareizi interpretēt ātrās Furjē transformācijas (FFT) rezultātus
  • Ko darīt, ja tiek dots 179 paraugu signāls un FFT ievadei nepieciešama garuma secība, kas vienāda ar divu jaudu
  • Kāpēc, mēģinot iegūt sinusoīda spektru, izmantojot Furjē, gaidītā vienotā “nūjiņa” vietā grafikā parādās dīvaina švīka un ko ar to var darīt
  • Kāpēc analogie filtri tiek novietoti pirms ADC un pēc DAC
  • Vai ir iespējams digitalizēt ADC signālu ar frekvenci, kas lielāka par pusi no diskretizācijas ātruma (skolas atbilde ir nepareiza, pareiza atbilde ir iespējama)
  • Kā digitālā secība atjauno sākotnējo signālu

Turpināšos ar pieņēmumu, ka lasītājs saprot, kas ir integrālis, kompleksais skaitlis (kā arī tā modulis un arguments), funkciju konvolūcija, plus vismaz “uz pirkstiem” iedomājas, kas ir Diraka delta funkcija. Nezinu - tas nav svarīgi, izlasiet iepriekš minētās saites. Ar "funkciju reizinājumu" šajā tekstā es vienmēr domāju "punktveida reizināšanu".

Droši vien jāsāk ar to, ka parastā Furjē transformācija ir kaut kāda lieta, kas, kā jūs varētu nojaust pēc nosaukuma, pārveido vienu funkciju par citu, tas ir, piešķir katrai reāla mainīgā x (t) funkcijai savu spektru. vai Furjē attēls y (w):

Ja sniedzam analoģijas, tad pēc nozīmes līdzīgas transformācijas piemērs var būt, piemēram, diferenciācija, kas funkciju pārvērš par tās atvasinājumu. Tas ir, Furjē transformācija faktiski ir tāda pati darbība kā atvasinājuma ņemšana, un to bieži apzīmē līdzīgi, velkot funkcijai trīsstūrveida “vāciņu”. Tikai atšķirībā no diferenciācijas, ko var definēt arī reāliem skaitļiem, Furjē transformācija vienmēr “darbojas” ar vispārīgākiem kompleksajiem skaitļiem. Šī iemesla dēļ pastāvīgi rodas problēmas ar šīs transformācijas rezultātu parādīšanu, jo kompleksos skaitļus nosaka nevis viena, bet divas koordinātas grafikā, kas darbojas ar reāliem skaitļiem. Ērtākais veids, kā likums, ir attēlot kompleksos skaitļus kā moduli un argumentu un zīmēt tos atsevišķi kā divus atsevišķus grafikus:

Sarežģītas vērtības argumenta grafiku šajā gadījumā bieži sauc par “fāzes spektru”, un moduļa grafiku bieži sauc par “amplitūdas spektru”. Amplitūdas spektrs, kā likums, rada daudz lielāku interesi, un tāpēc spektra “fāzes” daļa bieži tiek izlaista. Šajā rakstā pievērsīsimies arī “amplitūdas” lietām, taču nevajadzētu aizmirst arī par trūkstošās grafa fāzes daļas esamību. Turklāt parastā kompleksās vērtības moduļa vietā bieži tiek uzzīmēts tā logaritms reizināts ar 10. Rezultātā tiek iegūts logaritmisks grafiks, kura vērtības tiek parādītas decibelos (dB).

Lūdzu, ņemiet vērā, ka ne pārāk daudz negatīvi skaitļi logaritmiskais grafiks (-20 dB vai mazāk) tajā pašā laikā atbilst gandrīz nulle skaitļi parastā diagrammā. Tāpēc dažādu spektru garās un platās “astes” šādos grafikos, kad tās tiek parādītas “parastajās” koordinātēs, kā likums, praktiski pazūd. Šāda šķietami dīvaina attēlojuma ērtums rodas no tā, ka dažādu funkciju Furjē transformācijas bieži vien ir jāreizina savā starpā. Ar šādu komplekso vērtību Furjē attēlu punktveida reizināšanu tiek pievienoti to fāzes spektri un reizināti to amplitūdas spektri. Pirmais ir viegli izpildāms, bet otrais ir salīdzinoši sarežģīts. Tomēr amplitūdas logaritmi tiek pievienoti, reizinot amplitūdas, tāpēc logaritmiskos amplitūdas grafikus, tāpat kā fāzes grafikus, var vienkārši pievienot punktu pa punktam. Turklāt praktiskās problēmās bieži vien ir ērtāk darboties nevis ar signāla "amplitūdu", bet gan ar tā "jaudu" (amplitūdas kvadrātu). Logaritmiskajā skalā abi grafiki (gan amplitūda, gan jauda) izskatās identiski un atšķiras tikai pēc koeficienta - visas jaudas diagrammas vērtības ir tieši divas reizes lielākas nekā amplitūdas skalā. Attiecīgi, lai attēlotu jaudas sadalījumu pēc frekvences (decibelos), jūs nevarat neko kvadrātā, bet aprēķināt decimālo logaritmu un reizināt to ar 20.

Vai tu esi garlaikots? Pagaidiet, tikai nedaudz vairāk, ar garlaicīgo raksta daļu, kurā paskaidrots, kā interpretēt diagrammas, mēs drīz pabeigsim :). Bet pirms tam ir jāsaprot viena ļoti svarīga lieta, ka, lai gan visi iepriekš minētie spektra grafiki tika uzzīmēti dažiem ierobežotiem vērtību diapazoniem (jo īpaši pozitīviem skaitļiem), visi šie grafiki faktiski turpinās plus un mīnus bezgalībā. Grafiki vienkārši attēlo kādu "visnozīmīgāko" diagrammas daļu, kas parasti tiek atspoguļota negatīvas vērtības parametrs un bieži tiek periodiski atkārtots ar kādu soli, ja mēs to aplūkojam plašākā mērogā.

Izlēmuši, kas ir uzzīmēts grafikos, atgriezīsimies pie paša Furjē transformācijas un tā īpašībām. Ir vairāki Dažādi ceļi kā definēt šo mazās detaļās atšķirīgo transformāciju (dažādas normalizācijas). Piemēram, mūsu universitātēs nez kāpēc bieži tiek izmantota Furjē transformācijas normalizācija, kas nosaka spektru leņķiskās frekvences izteiksmē (radiānos sekundē). Es izmantošu ērtāku rietumu formulējumu, kas nosaka spektru parastās frekvences (hercos) izteiksmē. Tiešās un apgrieztās Furjē transformācijas šajā gadījumā tiek definētas ar formulām kreisajā pusē, un dažas no šīs transformācijas īpašībām, kas mums vajadzīgas, ir septiņu vienumu saraksts labajā pusē:

Pirmā no šīm īpašībām ir linearitāte. Ja ņemam kādu lineāru funkciju kombināciju, tad šīs kombinācijas Furjē transformācija būs tāda pati šo funkciju Furjē attēlu lineārā kombinācija. Šis īpašums ļauj samazināt sarežģītas funkcijas un to Furjē pārveido uz vienkāršākiem. Piemēram, sinusoidālās funkcijas Furjē transformācija ar frekvenci f un amplitūdu a ir divu delta funkciju kombinācija, kas atrodas punktos f un -f un ar koeficientu a/2:

Ja ņemam funkciju, kas sastāv no sinusoīdu kopas ar dažādām frekvencēm summas, tad atbilstoši linearitātes īpašībai šīs funkcijas Furjē transformācija sastāvēs no atbilstošās delta funkciju kopas. Tas ļauj sniegt naivu, bet vizuālu spektra interpretāciju pēc principa “ja funkcijas spektrā frekvence f atbilst amplitūdai a, tad sākotnējo funkciju var attēlot kā sinusoīdu summu, no kurām viena ir sinusoīds ar frekvenci f un amplitūdu 2a”. Stingri sakot, šī interpretācija ir nepareiza, jo delta funkcija un punkts grafikā ir pilnīgi atšķirīgas lietas, taču, kā mēs redzēsim tālāk, diskrētajām Furjē transformācijām tas nebūs tik tālu no patiesības.

Furjē transformācijas otrā īpašība ir amplitūdas spektra neatkarība no signāla laika nobīdes. Ja funkciju pārvietojam pa x asi pa kreisi vai pa labi, tad mainīsies tikai tās fāzes spektrs.

Trešā īpašība - sākotnējās funkcijas stiepšanās (saspiešana) pa laika asi (x) proporcionāli saspiež (izstiepj) tās Furjē transformāciju gar frekvences skalu (w). Jo īpaši ierobežota ilguma signāla spektrs vienmēr ir bezgalīgi plats, un otrādi, ierobežota platuma spektrs vienmēr atbilst neierobežota ilguma signālam.

Ceturtā un piektā īpašība, iespējams, ir visnoderīgākā no visām. Tie ļauj reducēt funkciju konvolūciju līdz Furjē transformāciju punktveida reizināšanai un otrādi - funkciju punktveida reizināšanu līdz to Furjē pārveidojumu konvolūcijai. Nedaudz tālāk es parādīšu, cik tas ir ērti.

Sestā īpašība runā par Furjē attēlu simetriju. Jo īpaši no šīs īpašības izriet, ka reālās vērtības funkcijas Furjē transformācijā (t.i., jebkura “reāla” signāla) amplitūdas spektrs vienmēr ir vienmērīga funkcija, un fāzes spektrs (ja tas ir samazināts līdz diapazonam -pi...pi) ir nepāra. Tieši šī iemesla dēļ spektra grafikos gandrīz nekad netiek uzzīmēta spektra negatīvā daļa - reālās vērtības signāliem tā nesniedz nekādu jaunu informāciju (bet, atkārtoju, tā arī nav nulle).

Visbeidzot, pēdējā, septītā īpašība saka, ka Furjē transformācija saglabā signāla “enerģiju”. Tam ir jēga tikai ierobežota ilguma signāliem, kuru enerģija ir ierobežota, un saka, ka šādu signālu spektrs bezgalībā strauji tuvojas nullei. Tieši šīs īpašības dēļ spektra grafikos parasti tiek attēlota tikai signāla “galvenā” daļa, kas nes lauvas tiesu enerģijas - pārējā grafa daļa vienkārši tiecas uz nulli (bet atkal , tā nav nulle).

Apbruņojoties ar šīm 7 īpašībām, apskatīsim signāla "digitalizācijas" matemātiku, lai nepārtrauktu signālu pārvērstu ciparu secībā. Lai to izdarītu, mums ir jāizmanto funkcija, kas pazīstama kā “Dirac ķemme”:

Diraka ķemme ir vienkārši periodiska vienotības delta funkciju secība, sākot no nulles un turpinot ar soli T. Lai digitalizētu signālus, T tiek izvēlēts pēc iespējas mazāks, T<<1. Фурье-образ этой функции - тоже гребенка Дирака, только с гораздо большим шагом 1/T и несколько меньшим коэффициентом (1/T). С математической точки зрения, дискретизация сигнала по времени - это просто поточечное умножение исходного сигнала на гребенку Дирака. Значение 1/T при этом называют частотой дискретизации:

Nepārtrauktas funkcijas vietā pēc šādas reizināšanas tiek iegūta noteikta augstuma delta impulsu secība. Šajā gadījumā saskaņā ar Furjē transformācijas 5. īpašību iegūtā diskrētā signāla spektrs ir sākotnējā spektra konvolūcija ar atbilstošo Diraka ķemmi. Ir viegli saprast, ka, pamatojoties uz konvolūcijas īpašībām, sākotnējā signāla spektrs tiek it kā “nokopēts” bezgalīgi daudz reižu pa frekvences asi ar soli 1/T un pēc tam summēts. .

Ņemiet vērā, ka, ja sākotnējam spektram bija ierobežots platums un mēs izmantojām pietiekami augstu iztveršanas ātrumu, tad sākotnējā spektra kopijas nepārklāsies un tāpēc netiks pievienotas viena otrai. Ir viegli saprast, ka no šāda “salocīta” spektra sākotnējo spektru būs viegli atjaunot - pietiks tikai ar spektra komponentu paņemšanu nulles apgabalā, “nogriežot” liekās kopijas, kas aiziet. līdz bezgalībai. Vienkāršākais veids, kā to izdarīt, ir reizināt spektru ar taisnstūra funkciju, kas vienāda ar T diapazonā -1/2T...1/2T un nulli ārpus šī diapazona. Līdzīga Furjē transformācija atbilst funkcijai sinc (Tx), un saskaņā ar īpašību 4 šāda reizināšana ir līdzvērtīga sākotnējās delta funkciju secības konvolūcijai ar funkciju sinc(Tx)



Tas ir, izmantojot Furjē transformāciju, mēs ieguvām veidu, kā viegli atjaunot sākotnējo signālu no laika iztveršanas, kas darbojas ar nosacījumu, ka mēs izmantojam vismaz divreiz lielāku iztveršanas frekvenci (sakarā ar negatīvu frekvenču klātbūtni spektrā ) sākotnējā signāla maksimālā frekvence. Šis rezultāts ir plaši pazīstams un tiek saukts par Kotelņikova / Šenona-Nikvista teorēmu. Tomēr, kā tagad ir viegli redzēt (saprotot pierādījumu), šis rezultāts, pretēji plaši izplatītam nepareizam priekšstatam, nosaka pietiekams, bet ne nepieciešams nosacījums sākotnējā signāla atjaunošanai. Viss, kas mums nepieciešams, ir nodrošināt, lai mūs interesējošā spektra daļa pēc signāla paraugu ņemšanas nepārklājas viena ar otru un ja signāls ir pietiekami šauras joslas (tam ir mazs “platums” no nulles daļas). spektrs), tad šo rezultātu bieži var sasniegt pat ar paraugu ņemšanas ātrumu, kas ir daudz zemāks par divreiz lielāku signāla maksimālo frekvenci. Šo paņēmienu sauc par “nepietiekamu iztveršanu” (apakšiztveršanu, joslas iztveršanu), un to diezgan plaši izmanto visu veidu radiosignālu apstrādē. Piemēram, ja ņemam FM radio, kas darbojas frekvenču joslā no 88 līdz 108 MHz, tad tā digitalizēšanai varam izmantot ADC ar frekvenci tikai 43,5 MHz, nevis Koteļņikova teorēmu pieņemto 216 MHz. Tomēr šajā gadījumā jums ir nepieciešams augstas kvalitātes ADC un labs filtrs.

Es atzīmēju, ka augsto frekvenču “dublēšana” ar zemākas kārtas frekvencēm (aliasing) ir tiešs signāla paraugu ņemšanas īpašums, neatgriezeniski “sabojājot” rezultātu. Tāpēc, ja signālā principā var būt augstas pakāpes frekvences (tas ir, gandrīz vienmēr), ADC priekšā tiek novietots analogais filtrs, kas “nogriež” visu lieko tieši sākotnējā signālā (jo tas būs būt par vēlu to izdarīt pēc paraugu ņemšanas). Šo filtru kā analogo ierīču īpašības nav ideālas, tāpēc daži signāla “bojājumi” joprojām notiek, un praksē no tā izriet, ka spektra augstākās frekvences parasti ir neuzticamas. Lai mazinātu šo problēmu, nav nekas neparasts, ka signāls tiek iztverts ar pārmērīgu iztveršanas ātrumu, vienlaikus iestatot analogās ievades filtru uz mazāku joslas platumu un izmantojot tikai ADC teorētiski pieejamā frekvenču diapazona apakšējo daļu.

Starp citu, vēl viens izplatīts nepareizs priekšstats ir tas, ka signāls DAC izejā tiek zīmēts pa soļiem. “Soļi” atbilst atlasīto signālu secības konvolūcijai ar taisnstūra funkciju platumu T un augstumu 1:

Ar šādu transformāciju signāla spektrs tiek reizināts ar šīs taisnstūra funkcijas Furjē transformāciju, un līdzīgai taisnstūra funkcijai tas atkal tiek sinc(w), “izstiepts”, jo spēcīgāks, jo mazāks ir atbilstošā taisnstūra platums. Izlases signāla spektrs ar līdzīgu "DAC" tiek reizināts ar šo spektru. Šajā gadījumā nevajadzīgi augstās frekvences ar spektra “papildu kopijām” netiek pilnībā nogrieztas, un spektra “lietderīgās” daļas augšējā daļa, gluži pretēji, tiek novājināta.

Protams, praksē neviens to nedara. Ir daudz dažādu pieeju DAC veidošanai, taču pat līdzīgākā svēruma tipa DAC, gluži pretēji, taisnstūrveida impulsi DAC tiek izvēlēti pēc iespējas īsāki (tuvojoties reālai delta funkciju secībai), lai izvairītos no nevajadzīgas slāpēšanas. spektra lietderīgās daļas. Iegūtā platjoslas signāla “papildu” frekvences gandrīz vienmēr tiek slāpētas, izlaižot signālu caur analogo zemfrekvences filtru, lai nebūtu “digitālo soļu” ne pārveidotāja “iekšā”, ne arī tā izejā.

Tomēr atgriezīsimies pie Furjē transformācijas. Iepriekš aprakstīto Furjē transformāciju, kas piemērota iepriekš atlasītai signālu secībai, sauc par diskrēto laiku Furjē transformāciju (DTFT). Ar šādu transformāciju iegūtais spektrs vienmēr ir 1/T-periodisks, tāpēc DTFT spektru pilnībā nosaka tā vērtības segmentā )