Diskrečiosios funkcijos pavertimas ištisine. Diskreti Furjė transformacija VB.NET

Furjė transformacija (§ 1.5) gali būti laikoma tiesine transformacija su branduoliu

Remdamiesi pagrindu suraskime jo diskretišką atvaizdą

signalams, kurių spektras ribojamas tam tikru intervalu, kuriam atvaizdavimas galioja

Tokio signalo Furjė transformacija lygi

Dabar panagrinėkime periodinį signalą

Jo spektras yra

kur yra signalo spektro pavyzdžiai, paimti išilgai atkarpos (žr. 1.2 lentelės 19 eilutę). Jei T yra pakankamai didelis, o signalas šiame intervale greitai nukrenta iki nulio, todėl jo iškraipymų sumoje (3.60) dėl periodų persidengimo galima nepaisyti, vadinasi,

kur sumavimas per k atliekamas viduje

T ir reikšmes visada galima pasirinkti taip, kad reikšmė būtų sveikas skaičius. Pažymime jį N. Taip pat pažymime

Čia jis pasirinktas taip, kad sumavimas į (3.62) gali būti atliktas per k nuo 0 iki Tada gauname

Šis ryšys vadinamas diskrečiąja Furjė transformacija

Atskira Furjė transformacija yra apverčiama:

Jo šerdis yra matrica

yra atskiras branduolio vaizdas nuolatinė transformacija Furjė.

Formulė (3.65) yra (3.3) analogas. Atkreipkite dėmesį, kad jį galima iš karto gauti iš (3.3) pagrindo

Sekos koeficientai yra apytiksliai lygūs periodiškai pratęsiamo signalo spektro pavyzdžiams, paimtiems žingsniais. Tai yra ryšys tarp DFT ir nuolatinės Furjė transformacijos. Darant prielaidą, kad signalo ilgis yra ribotas, išplaukia, kad atrankos teorema galioja jo spektrui ir todėl ją galima atkurti iš reikšmių – signalo pavyzdžių DFT koeficientų.

Dažniausiai naudojamos vienmačio DFT savybės pateiktos lentelėje. 3.1. Kad būtų patogiau jas palyginti su ištisinės Furjė transformacijos savybėmis dešiniajame lentelės stulpelyje. 3.1 rodo atitinkamų lentelės eilučių numerius. 1.2. Pagrindinis skirtumas tarp DFT ir

(žr. nuskaitymą)

(žr. nuskaitymą)

(žr. nuskaitymą)

Lentelės tęsinys. 3.1 (žr. nuskaitymą)

nuolatinė Furjė transformacija – cikliškumas, arba periodiškumas: sekos ir jos DFT imčių skaičiai skaičiuojami modulo N, t.y., tarsi apskritime; ciklo taškų skaičius yra N (3.1 lentelės 2 eilutė).

Analogiškai su vienmačiu DFT, taikant dvimačio atrankos teoremą dvimačiams signalams ir spektrams, galima gauti dvimatį DFT. Paprastai naudojamas tik dvimatis DFT, kuris išplaukia iš dvimatės atrankos teoremos stačiakampėse koordinatėse:

Jis patogus tuo, kad gali būti suskirstytas į du vienmačius DFT, t.y. yra atskiriamas.

Atvirkštinis 2D DFT parašytas kaip

Kai kurios dvimačio DFT savybės pateiktos lentelėje. 3.2. Dvimatis DFT pasižymi dvimačiu cikliškumu (periodiškumu). Galime daryti prielaidą, kad dvimačio DFT koeficientai yra dvimačio ištisinio signalo spektro pavyzdžiai, periodiškai dauginami plokštumoje stačiakampė sistema koordinates, kaip parodyta pav. 3.4, a.

Furjė transformacija

Naudojant Furjė transformacijas, vaizdas pateikiamas kaip komplekso suma eksponentinės funkcijos amplitudės, dažnio ir fazės kintamieji. Furjė transformacija vaidina labai svarbus vaidmuo daugelyje vaizdo apdorojimo sričių, įskaitant tobulinimą, analizę, atkūrimą ir glaudinimą.

  1. Pagrindiniai Furjė transformacijos apibrėžimai
  2. Diskretinė Furjė transformacija, įskaitant greitąją Furjė transformaciją
  3. Furjė transformacijos taikymas (kai kurie pavyzdžiai praktinis pritaikymas Furjė transformacija)

Pagrindiniai Furjė transformacijos apibrėžimai

Jeigu ƒ(m,n) yra dviejų atskirų erdvinių kintamųjų m ir n funkcija, tada dvimatė transformacija Furjė funkcijos ƒ(m,n) gali būti pavaizduotas tokia išraiška

Kintamieji yra kampiniai dažniai. Taigi tai reiškia funkciją ƒ(m,n) dažnių srityje. yra kompleksinės reikšmės funkcija su atitinkamais dažniais. Dažniai yra diapazone , . Atkreipkite dėmesį, kad F(0,0) pateikiamas kaip visų kintamųjų suma ƒ(m,n). Dėl šios priežasties F(0,0) dažnai vadinamas Furjė transformacijos pastoviuoju komponentu.

Atvirkštinė dvimatė Furjė transformacija pavaizduota išraiška

Tie. ši išraiška reiškia ƒ(m,n) kaip suma begalinis skaičius sudėtingos eksponentinės funkcijos (sinuso bangos) su skirtingais dažniais. Amplitudė ir fazė lemia dažnių indėlį į vaizdavimą.

Furjė transformacijos vizualizacija

Iliustruodami Furjė transformaciją, tarkime, kad funkcija ƒ(m,n) lygus 1 ir pavaizduotas kaip stačiakampis. Norėdami supaprastinti diagramą, funkcija ƒ(m,n) bus pristatyta nuolatinė funkcija du atskiri kintamieji m Ir n.


Stačiakampio formos funkcija

Žemiau pateiktame paveikslėlyje, naudojant tinklelio funkciją, pavaizduotos amplitudės vertės, gautos iš Furjė transformacijos stačiakampė funkcija parodyta ankstesniame paveikslėlyje. Amplitudės vizualizacija dar vadinama Furjė transformacijos vizualizacija.


Stačiakampės funkcijos vaizdo amplitudė

Funkcijos smailė yra centre ir rodo reikšmę F(0,0), kuri yra visų reikšmių suma ƒ(m,n). Visi kiti komponentai atspindi energijos pasiskirstymą vertikaliais ir horizontaliais dažniais.

Kitas būdas vizualizuoti Furjė transformaciją yra rodyti reikšmes kaip vaizdą.


Stačiakampės funkcijos Furjė transformacijos logaritminis vaizdas

Pažvelkime į įvairių paprastų formų funkcijų Furjė transformacijų pavyzdžius.


Įvairių paprastų formų funkcijų Furjė transformacijų pavyzdžiai

Diskretinė kosinuso transformacija

Diskrečiosios kosinuso transformacijos vaizduoja vaizdą kaip sinusoidų, turinčių skirtingą amplitudę ir dažnį, sumą. dct2 funkcija vaizdo programoje Apdorojimo įrankių rinkinysįgyvendina dvimates diskrečiąsias vaizdų kosinuso transformacijas. Viena iš diskrečiosios Furjė transformacijos ypatybių yra ta, kad kai kurios vietines teritorijas galima apibūdinti vaizdus nedidelė suma diskretieji Furjė transformacijos koeficientai. Ši savybė labai dažnai naudojama kuriant vaizdo glaudinimo metodus. Pavyzdžiui, diskrečioji kosinuso transformacija yra tarptautinio standarto, naudojamo JPEG nuostolingo vaizdo glaudinimo algoritme, pagrindas. Formato pavadinimas „JPEG“ susideda iš pirmųjų pavadinimo raidžių darbo grupė, kuri dalyvavo kuriant šį standartą (Joint Photography Experts Group).

Dvimatė diskrečiųjų kosinuso matricos transformacija A su matmenimis įgyvendinamas pagal tokią išraišką

Vertybės Bpq vadinami matricos diskrečiosios kosinuso transformacijos koeficientais A.

(Pažymėtina, kad MATLAB matricos indeksai visada prasideda 1, o ne 0. Todėl matricos elementai, kurie MATLAB pateikiami kaip A(1,1) ir B(1,1), atitiks elementus A 00 Ir B00 iš aukščiau pateiktos formulės.)

Atvirkštinė diskretinė kosinuso transformacija įgyvendinama pagal išraiškas

Atvirkštinė diskrečioji kosinuso transformacijos išraiška gali būti interpretuojama kaip matricinis vaizdas A kurių matmenys yra šių funkcijų suma

Šios funkcijos vadinamos pagrindinėmis (pagrindinėmis) diskrečiosios kosinuso transformacijos funkcijomis. Diskretieji kosinuso transformacijos koeficientai Bpq gali būti laikomi kiekvienos pagrindinės funkcijos svarmenimis. Pavyzdžiui, matricoje su elemento dydžiu yra 64 pagrindinės funkcijos, kuris parodytas paveikslėlyje.


64 pagrindinės funkcijos, kurios gaunamos matricai su elementų dydžiais

Horizontalieji dažniai didėja iš kairės į dešinę, o vertikalūs – iš viršaus į apačią.

Diskretinė kosinuso transformacijos matrica

Taikymas Vaizdo apdorojimas Toolbox siūlo du skirtingais būdais diskrečiųjų kosinusų transformacijų įgyvendinimas. Pirmasis metodas yra įgyvendintas funkcijoje dct2. Funkcija dct2 naudoja greitą Furjė transformaciją, kad pagreitintų skaičiavimus. Antrasis metodas naudoja diskrečiąją kosinuso transformacijos matricą, kurią grąžina funkcija dctmtx. Transformacijos matrica T sudaroma pagal tokią išraišką

Dėl matricos A su matmenimis yra matrica su matmenimis , kur kiekviename stulpelyje yra vienmatė diskrečioji kosinuso transformacija A. Dvimatė diskretinė kosinuso transformacija A skaičiuojamas kaip B=T*A*T“. Atvirkštinė dvimatė diskretinė kosinuso transformacija B skaičiuojamas kaip T'*B*T.

Atskiros kosinuso transformacijos ir vaizdo suspaudimas

JPEG vaizdo glaudinimo algoritme originalus vaizdas yra padalintas į matmenų arba elementų blokus. Toliau kiekvienam blokui apskaičiuojama dvimatė diskretinė kosinuso transformacija. Diskrečiųjų kosinusų transformacijų koeficientai yra kvantuojami, užkoduojami ir perduodami. JPEG imtuvas dekoduoja diskrečiuosius kosinuso transformacijos koeficientus, apskaičiuoja atvirkštinę 2D diskrečiąją kosinuso transformaciją kiekviename bloke ir sujungia juos į vieną vaizdą.

Panagrinėkime dvimačių diskrečiųjų kosinusų transformacijų skaičiavimo blokais su pradinio vaizdo elementų dydžiais pavyzdį. Be to, rekonstruodami vaizdą, atsižvelgsime tik į 10 koeficientų iš kiekvieno bloko, likusi dalis bus nustatyta į nulį. Atliekant aprašytus skaičiavimus, taip pat bus naudojama transformacijos matrica.

I = imread("kameras.tif"); I = im2double(I); T = dctmtx(8); B = blkproc(I,,"P1*x*P2",T,T"); kaukė = ; B2 = blkproc(B,,"P1.*x",kaukė); I2 = blkproc(B2,"P1 *x*P2",T",T); imshow(I); figūra, parodymas (I2)

Paveikslėlyje pavaizduoti du vaizdai – originalus ir rekonstruotas. Atkuriant vaizdą buvo panaudota tik 15% diskrečiųjų kosinusų transformacijos koeficientų. Tačiau reikia pažymėti, kad rekonstruoto vaizdo kokybė yra gana priimtina. Norėdami peržiūrėti kitas diskrečiojo kosinuso transformacijos savybes, žr. funkciją dctdemo.

Radono transformacijos

Vaizdo apdorojimo įrankių rinkinyje esanti radono funkcija apskaičiuoja vaizdo projekcijų matricą nurodytomis kryptimis. Dvimatės funkcijos f(x,y) projekcija lygi integralui išilgai nurodytos tiesės. Radono funkcija yra vaizdo projekcijų ašyje apskaičiavimas, kurios yra nurodytos kampais laipsniais horizontalės atžvilgiu prieš laikrodžio rodyklę. Paveikslėlyje parodyta tam tikros figūros projekcija nurodytu kampu


Lygiagreti spindulio projekcija su sukimosi kampu teta

Žemiau esančiame paveikslėlyje pavaizduotos horizontalios ir vertikalios paprastos dvimatės funkcijos projekcijos.


Horizontalios ir vertikalios kai kurių paprastų funkcijų projekcijos

Projekcijas galima apskaičiuoti kartu savavališkas kampas teta. Vaizdo apdorojimo įrankių rinkinyje integruota radono funkcija apskaičiuoja vaizdo projekcijas tam tikromis kryptimis. Dvimatės funkcijos f(x,y) projekcija į x ašį yra tiesinis integralas

Taigi, x'y' ašys yra nurodytos sukant kampu prieš laikrodžio rodyklę.

Žemiau pateiktame paveikslėlyje parodyta Radono transformacijos geometrija.


Radono transformacijos geometrija

Radono transformacijų vizualizacija

Atliekant Radono transformacijas būtina nurodyti pradinį vaizdą ir kampų vektorių teta.

Radonas (I, teta);

R yra matrica, kurioje kiekvienas stulpelis yra Radono transformacija vienam iš kampų, kurie yra vektoriuje teta. Vektoryje xp yra atitinkamos koordinatės išilgai x ašies. Centrinis pikselis I nustatomas pagal išraišką grindys((dydis(I)+1)/2).

Pažiūrėkime, kaip apskaičiuojamos projekcijos Radono transformacijose. Panagrinėkime projekcijas 0° ir 45° kampu.

I = nuliai(100,100); I(25:75, 25:75) = 1; imshow (aš)

Radonas (I,); figūra; plot(xp,R(:,1)); title ("R_(0^o) (x\prime)")

Radono virsmai 0° kampu

Figūra; plot(xp,R(:,2)); title ("R_(45^o) (x\prime)")


Radono virsmai 45° kampu

Radono transformacijos at didelis skaičius kampai dažnai rodomi kaip vaizdas. IN šiame pavyzdyje Kvadrato formos vaizdo radono transformacijos laikomos kampu nuo 0° iki 180° su 1° skiriamąja geba.

teta = 0:180;


= radonas(I,teta); imagesc(theta,xp,R); title ("R_(\theta) (X\prime)"); xlabel("\theta (laipsniai)"); ylabel("X\prime"); set(gca,"XTick",0:20:180); spalvų žemėlapis (karštas); spalvų juosta

Radono transformacijos naudojant 180 projekcijų

Radono transformacijos yra panašios į kitas gerai žinomas operacijas, kurios yra žinomos kaip Hoch transformacijos. Radono funkcija gali būti naudojama tiesioms linijoms aptikti. Pažvelkime į pagrindinius šio proceso etapus.


Didžiausia smailė matricoje R atitinka =1° ir x´= -80. Linija nubrėžiama nuo pradinio vaizdo centro kampu atstumu x’. Šiai linijai statmena nubrėžiama tiesi linija, kuri atitinka tiesią liniją originalus vaizdas. Be to, paveikslėlyje yra ir kitų eilučių, kurios pateikiamos matricoje R atitinkamos smailės.


Radono transformacijos geometrija, skirta tiesių linijų aptikimui

Tikiu, kad visko yra bendras kontūrasžinoti apie tokį nuostabų matematinį įrankį kaip Furjė transformacija. Tačiau universitetuose kažkodėl taip prastai dėstoma, kad palyginti mažai žmonių supranta, kaip ši transformacija veikia ir kaip ją reikia teisingai panaudoti. Tuo tarpu šios transformacijos matematika yra stebėtinai graži, paprasta ir elegantiška. Kviečiu visus sužinoti šiek tiek daugiau apie Furjė transformaciją ir susijusią temą kaip analoginiai signalai gali būti efektyviai konvertuojami į skaitmeninius skaičiavimo apdorojimui.

Jokios naudos sudėtingos formulės ir Matlab pabandysiu atsakyti į šiuos klausimus:

  • FT, DTF, DTFT – kokie yra skirtumai ir kaip iš pažiūros visiškai skirtingos formulės duoda tokius konceptualiai panašius rezultatus?
  • Kaip teisingai interpretuoti rezultatus greitas konvertavimas Furjė (FFT)
  • Ką daryti, jei jums duotas 179 mėginių signalas, o FFT reikia įvesties sekos ilgio vienodai deuces
  • Kodėl bandant gauti sinusoidės spektrą naudojant Furjė, o ne tikėtinai viena „lazda“, grafike atsiranda keistas raibulis ir ką su juo galima padaryti
  • Kodėl analoginiai filtrai dedami prieš ADC ir po DAC?
  • Ar galima skaitmeninti ADC signalą, kurio dažnis didesnis nei pusė atrankos dažnio (mokyklos atsakymas neteisingas, galimas teisingas atsakymas)
  • Kaip atkurti pradinį signalą naudojant skaitmeninę seką

Remsiuosi prielaida, kad skaitytojas supranta, kas yra integralas, kompleksinis skaičius (taip pat jo modulis ir argumentas), funkcijų konvoliucija ir bent jau „praktinis“ supratimas apie tai, kas yra Dirako delta funkcija. yra. Jei nežinote, ne problema, perskaitykite aukščiau pateiktas nuorodas. Skiltyje „Funkcijų produktas“. šis tekstas Visur suprasiu „taškinį dauginimą“.

Turbūt turėtume pradėti nuo to, kad normalus konvertavimas Furjė yra tam tikras dalykas, kuris, kaip galima spėti iš pavadinimo, paverčia kai kurias funkcijas kitomis, tai yra, kiekvieną tikrojo kintamojo x(t) funkciją susieja su jo spektru arba Furjė vaizdu y(w):

Jei pateikiame analogijas, tai panašaus reikšme transformacijos pavyzdys gali būti, pavyzdžiui, diferenciacija, funkcijos pavertimas jos išvestiniu. Tai reiškia, kad Furjė transformacija iš esmės yra ta pati operacija, kaip ir išvestinės, ir ji dažnai žymima panašiu būdu, nubrėždami trikampį „dangtelį“ virš funkcijos. Tik priešingai nei diferencijavimas, kuris taip pat gali būti apibrėžtas tikriesiems skaičiams, Furjė transformacija visada „veikia“ su bendresniais kompleksiniais skaičiais. Dėl šios priežasties visada kyla problemų rodant šios konversijos rezultatus, nes kompleksiniai skaičiai nustato ne viena, o dvi koordinatės realūs skaičiai grafika. Patogiausia, kaip taisyklė, kompleksinius skaičius pavaizduoti modulio ir argumento pavidalu ir nubrėžti juos atskirai kaip du atskirus grafikus:

Dažnai iškviečiamas sudėtingo vertės argumento grafikas šiuo atveju„fazės spektras“, o modulio grafikas – „amplitudės spektras“. Amplitudės spektras paprastai yra daug didesnis, todėl dažnai praleidžiama "fazinė" spektro dalis. Šiame straipsnyje mes taip pat sutelksime dėmesį į „amplitudės“ dalykus, tačiau neturėtume pamiršti apie trūkstamos grafiko fazės dalies egzistavimą. Be to, vietoj įprasto kompleksinio verčių modulio jis dažnai nubraižytas dešimtainis logaritmas padauginta iš 10. Rezultatas yra logaritminis grafikas, kurio reikšmės rodomos decibelais (dB).

Atkreipkite dėmesį, kad nelabai neigiamus skaičius logaritminis grafikas (-20 dB ar mažiau) atitinka praktiškai nulis skaičių„įprastoje“ diagramoje. Todėl ilgos ir plačios įvairių spektrų „uodegos“ tokiuose grafikuose, rodomos „įprastomis“ koordinatėmis, kaip taisyklė, praktiškai išnyksta. Tokio keisto iš pirmo žvilgsnio vaizdavimo patogumas kyla dėl to, kad Furjė vaizdai įvairių funkcijų dažnai reikia daugintis tarpusavyje. Taip taškiškai dauginant kompleksinės vertės Furjė vaizdus, ​​pridedami jų fazių spektrai, o jų amplitudės spektrai padauginami. Pirmasis yra lengvas, o antrasis yra gana sunkus. Tačiau amplitudės logaritmai sumuojasi dauginant amplitudes, todėl logaritminiai grafikai amplitudės, kaip ir fazių grafikai, gali būti tiesiog pridedamos taškas po taško. Be to, in praktines problemas Dažnai patogiau veikti ne signalo „amplitude“, o jo „galia“ (amplitudės kvadratu). Įjungta logaritminė skalė abu grafikai (amplitudė ir galia) atrodo identiški ir skiriasi tik koeficientu – visos galios grafiko reikšmės yra lygiai dvigubai didesnės nei amplitudės skalėje. Atitinkamai, norėdami nubraižyti galios pasiskirstymą pagal dažnį (decibelais), negalite nieko kvadratuoti, o apskaičiuoti dešimtainį logaritmą ir padauginti jį iš 20.

Ar tau nuobodu? Palaukite dar šiek tiek, netrukus baigsime nuobodžią straipsnio dalį, paaiškinančią, kaip interpretuoti grafikus :). Tačiau prieš tai turėtumėte labai suprasti vieną svarbus dalykas: Nors visi aukščiau pateikti spektro grafikai buvo sudaryti tam tikriems ribotiems reikšmių diapazonams (ypač teigiamiems skaičiams), visos šios diagramos iš tikrųjų tęsiasi iki begalybės pliuso ir minuso. Grafikai tiesiog vaizduoja kokią nors „prasmingiausią“ grafiko dalį, kuri paprastai yra atspindima neigiamos reikšmės parametras ir dažnai kartojamas periodiškai su tam tikru žingsniu, kai svarstoma didesniu mastu.

Nusprendę, kas nupiešta grafikuose, grįžkime prie pačios Furjė transformacijos ir jos savybių. Yra keletas skirtingais būdais kaip nustatyti šią transformaciją, besiskiriančią mažomis detalėmis (skirtingomis normalizacijomis). Pavyzdžiui, mūsų universitetuose kažkodėl dažnai naudojamas Furjė transformacijos normalizavimas, kuris apibrėžia spektrą kampiniu dažniu (radianais per sekundę). Naudosiu patogesnę vakarietišką formulę, kuri apibrėžia spektrą įprastu dažniu (hercais). Tiesioginis ir atvirkštinė konversija Furjė šiuo atveju nustatoma pagal formules kairėje, o kai kurias šios transformacijos savybes, kurių mums prireiks, nustato septynių taškų sąrašas dešinėje:

Pirmoji iš šių savybių yra tiesiškumas. Jei imsime tam tikrą tiesinį funkcijų derinį, tai šios kombinacijos Furjė transformacija bus tokia pati tiesinė šių funkcijų Furjė vaizdų kombinacija. Ši savybė leidžia sumažinti sudėtingos funkcijos o jų Furjė transformuojasi į paprastesnius. Pavyzdžiui, sinusinės funkcijos Furjė transformacija, kurios dažnis f ir amplitudė a yra dviejų delta funkcijų, esančių taškuose f ir -f ir su koeficientu a/2, derinys:

Jei imsime funkciją, susidedančią iš skirtingų dažnių sinusoidų aibės sumos, tai pagal tiesiškumo savybę šios funkcijos Furjė transformaciją sudarys atitinkamas delta funkcijų rinkinys. Tai leidžia pateikti naivią, bet vaizdingą spektro interpretaciją pagal principą „jei funkcijos spektre dažnis f atitinka amplitudę a, tai pradinė funkcija gali būti pavaizduota kaip sinusoidų suma, iš kurių viena bus sinusoidė, kurios dažnis f ir amplitudė 2a. Griežtai kalbant, toks aiškinimas yra neteisingas, nes delta funkcija ir taškas grafike yra visiškai skirtingi dalykai, tačiau, kaip matysime vėliau, diskrečiosios transformacijos Furjė, tai nebus taip toli nuo tiesos.

Antroji Furjė transformacijos savybė yra amplitudės spektro nepriklausomumas nuo signalo laiko poslinkio. Jei funkciją perkelsime į kairę arba dešinę išilgai x ašies, pasikeis tik jos fazių spektras.

Trečioji savybė yra ta, kad pradinės funkcijos ištempimas (suspaudimas) išilgai laiko ašies (x) proporcingai suspaudžia (ištempia) jos Furjė vaizdą išilgai dažnio skalės (w). Visų pirma, baigtinės trukmės signalo spektras visada yra be galo platus ir, atvirkščiai, baigtinio pločio spektras visada atitinka neribotos trukmės signalą.

Ketvirtoji ir penktoji savybės yra bene naudingiausios iš visų. Jie leidžia sumažinti funkcijų konvoliuciją iki taškinio Furjė vaizdų dauginimo ir atvirkščiai - taškinio funkcijų dauginimo iki Furjė vaizdų konvoliucijos. Šiek tiek toliau parodysiu, kaip tai patogu.

Šeštoji savybė kalba apie Furjė vaizdų simetriją. Visų pirma, iš šios savybės išplaukia, kad Furjė transformacijos metu tikrosios vertės funkcija (t. y. bet koks „tikrasis“ signalas) amplitudės spektras yra visada lygi funkcija, o fazių spektras (jei atvestas į intervalą -pi...pi) yra nelyginis. Būtent dėl ​​šios priežasties spektrai beveik niekada nebraižomi grafikuose. neigiama dalis spektras – realios vertės signalams jis neteikia jokio nauja informacija(bet, kartoju, tai irgi nėra nulis).

Galiausiai, paskutinė, septintoji savybė, sako, kad Furjė transformacija išsaugo signalo „energiją“. Tai reikšminga tik baigtinės trukmės signalams, kurių energija yra baigtinė, ir leidžia manyti, kad tokių signalų spektras begalybėje greitai artėja prie nulio. Būtent dėl ​​šios savybės spektro grafikai dažniausiai vaizduoja tik „pagrindinę“ signalo dalį, kuri neša liūto dalį energijos - likusi grafiko dalis tiesiog linkusi į nulį (bet vėlgi, nėra nulis).

Apsiginklavę šiomis 7 savybėmis, pažvelkime į signalo „skaitmenizavimo“ išversti matematiką. nuolatinis signalasį skaičių seką. Norėdami tai padaryti, turime naudoti funkciją, žinomą kaip „Dirac šukos“:

„Dirac“ šukos yra tiesiog periodinė delta funkcijų seka su vienybės koeficientu, pradedant nuo nulio ir tęsiant žingsniu T. Signalų skaitmeninimui T pasirenkamas kuo mažesnis skaičius, T.<<1. Фурье-образ этой функции - тоже гребенка Дирака, только с гораздо большим шагом 1/T и несколько меньшим коэффициентом (1/T). С математической точки зрения, дискретизация сигнала по времени - это просто поточечное умножение исходного сигнала на гребенку Дирака. Значение 1/T при этом называют частотой дискретизации:

Vietoj tolydžios funkcijos po tokio dauginimo gaunama tam tikro aukščio delta impulsų seka. Be to, pagal Furjė transformacijos savybę 5, gauto diskretiško signalo spektras yra pradinio spektro su atitinkamomis Dirako šukomis konvoliucija. Nesunku suprasti, kad, remiantis konvoliucijos savybėmis, pradinio signalo spektras yra tarsi „nukopijuojamas“ begalinį skaičių kartų išilgai dažnio ašies žingsniu 1/T, o tada sumuojamas.

Atkreipkite dėmesį, kad jei pradinio spektro plotis buvo baigtinis, o mes naudojome pakankamai aukštą diskretizavimo dažnį, tada pradinio spektro kopijos nepersidengs, taigi ir nesusidės. Nesunku suprasti, kad iš tokio „sugriuvusio“ spektro bus nesunku atkurti originalų - pakaks tiesiog paimti spektro komponentą nulio srityje, „nupjovus“ papildomas kopijas, eisiančias į begalybę. Paprasčiausias būdas tai padaryti yra padauginti spektrą iš stačiakampės funkcijos, lygios T diapazone -1/2T...1/2T ir nuliui už šio diapazono ribų. Tokia Furjė transformacija atitinka funkciją sinc(Tx) ir pagal 4 savybę toks dauginimas yra lygiavertis pradinės delta funkcijų sekos konvoliucijai su funkcija sinc(Tx)



Tai yra, naudojant Furjė transformaciją, mes turime būdą lengvai atkurti pradinį signalą iš laiko atrankos signalo, veikiantį su sąlyga, kad mes naudojame diskretizavimo dažnį, kuris yra bent du kartus (dėl neigiamų dažnių spektre) didesnis nei didžiausias pradiniame signale esantis dažnis. Šis rezultatas yra plačiai žinomas ir vadinamas „Kotelnikovo / Shannon-Nyquist teorema“. Tačiau, kaip nesunku pastebėti dabar (suprantant įrodymą), šis rezultatas, priešingai nei plačiai paplitusi klaidinga nuomonė, lemia pakankamai, bet ne būtina pradinio signalo atkūrimo sąlyga. Viskas, ko mums reikia, yra užtikrinti, kad mus dominanti spektro dalis po signalo atrinkimo nepersidengtų viena su kita, o jei signalas yra pakankamai siauras (turi mažą ne nulinės spektro dalies „plotį“), tada šis rezultatas dažnai gali būti pasiektas, kai diskretizavimo dažnis yra daug mažesnis nei du kartus didesnis už maksimalų signalo dažnį. Ši technika vadinama „nepaprastu diskretizavimu“ (subsampling, bandpass atranka) ir yra gana plačiai naudojama apdorojant visų rūšių radijo signalus. Pavyzdžiui, jei paimsime FM radiją, veikiančią dažnių juostoje nuo 88 iki 108 MHz, tada norėdami jį suskaitmeninti, galime naudoti ADC, kurio dažnis yra tik 43,5 MHz, o ne 216 MHz, numatyto Kotelnikovo teoremoje. Tačiau šiuo atveju jums reikės aukštos kokybės ADC ir gero filtro.

Leiskite pažymėti, kad aukštų dažnių „dubliavimas“ žemesnės eilės dažniais (aliasing) yra tiesioginė signalo atrankos savybė, kuri negrįžtamai „sugadina“ rezultatą. Todėl, jei signale iš esmės gali būti aukšto laipsnio dažniai (ty beveik visada), priešais ADC dedamas analoginis filtras, „atjungiantis“ viską, kas nereikalinga tiesiai pradiniame signale (kadangi po jo atrinkimo). bus per vėlu tai padaryti). Šių filtrų, kaip analoginių įrenginių, charakteristikos nėra idealios, todėl tam tikra signalo „žala“ vis tiek atsiranda, o praktiškai iš to išplaukia, kad aukščiausi dažniai spektre, kaip taisyklė, yra nepatikimi. Siekiant sumažinti šią problemą, signalas dažnai yra perkomponuojamas, nustatant įvesties analoginį filtrą į mažesnį dažnių juostos plotį ir naudojant tik apatinę teoriškai prieinamo ADC dažnių diapazono dalį.

Kitas dažnas klaidingas supratimas, beje, yra tada, kai signalas DAC išvestyje traukiamas „žingsniais“. „Žingsniai“ atitinka atrinktos signalų sekos su stačiakampe pločio T ir aukščio 1 konvoliuciją:

Signalo spektras su šia transformacija padauginamas iš šios stačiakampės funkcijos Furjė transformacijos, o panašiai stačiakampei funkcijai ji vėl sinc(w), kuo daugiau „ištempiama“, tuo mažesnis atitinkamo stačiakampio plotis. Atrinkto signalo su tokiu „DAC“ spektras taškas po taško dauginamas iš šio spektro. Tokiu atveju nereikalingi aukšti dažniai su „papildomomis spektro kopijomis“ nėra visiškai nupjaunami, tačiau viršutinė „naudingos“ spektro dalies dalis, priešingai, yra susilpnėjusi.

Žinoma, praktiškai niekas to nedaro. Yra daug skirtingų DAC konstravimo būdų, tačiau net ir artimiausiuose svertinio tipo DAC stačiakampiai impulsai DAC, priešingai, parenkami kuo trumpesni (apytiksliai atitinkantys tikrąją delta funkcijų seką). kad būtų išvengta per didelio naudingosios spektro dalies slopinimo. „Papildomi“ dažniai gautame plačiajuosčio ryšio signale beveik visada panaikinami perduodant signalą per analoginį žemųjų dažnių filtrą, kad nebūtų „skaitmeninių žingsnių“ nei keitiklio „viduje“, nei ypač jo išvestyje.

Tačiau grįžkime prie Furjė transformacijos. Aukščiau aprašyta Furjė transformacija, taikoma iš anksto atrinktai signalų sekai, vadinama diskrečiąja laiko Furjė transformacija (DTFT). Spektras, gautas atliekant tokią transformaciją, visada yra 1/T periodinis, todėl DTFT spektrą visiškai lemia jo reikšmės segmente n=0,…,N-1 – pradinis kompleksinis signalas, susidedantis iš N kompleksinių skaičių. . Pažymime X[k], k=0,…N-1 - jo kompleksinį spektrą, taip pat susidedantį iš N kompleksinių skaičių. Tada galioja šios tiesioginės ir atvirkštinės Furjė transformacijų formulės:

Jei realų signalą išskaidysime į spektrą naudodami šias formules, tai pirmieji N/2+1 kompleksiniai spektro koeficientai sutaps su „įprasto“ tikrojo DFT spektru, pateiktu „sudėtinga“ forma, o likusiais koeficientais. bus jų simetriškas atspindys, palyginti su puse diskretizavimo dažnio. Kosinuso koeficientų atspindys yra lyginis, o sinuso koeficientų – nelyginis.

2D DFT

Vaizdams, kurie yra dvimatis signalas, spektras taip pat yra dvimatis signalas. Furjė transformacijos pagrindinės funkcijos turi tokią formą:

Be to, fazės taip pat gali būti skirtingos. Paveikslėlyje kiekviena iš šių pagrindinių funkcijų reiškia tam tikro dažnio, tam tikros orientacijos ir tam tikros fazės bangą.

Čia N 1 xN 2 yra pradinio signalo dydis, kuris kartu yra ir spektro dydis. k 1 ir k 2 yra bazinių funkcijų skaičiai (dvimačio DFT koeficientų skaičiai, kuriuose šios funkcijos randamos). Kadangi spektro dydis lygus pradinio signalo dydžiui, tai k 1 = 0,...,N 1 -1; k 2 = 0,…,N 2 -1.

n 1 ir n 2 yra kintamieji pagrindinių funkcijų argumentai. Kadangi bazinių funkcijų apibrėžimo sritis sutampa su signalo apibrėžimo sritimi, tai n 1 = 0,...,N 1 -1; n2 = 0,…,N2-1.

Dvimatis DFT (sudėtinga forma) apibrėžiamas šiomis formulėmis (čia x yra pradinis signalas, o X yra jo spektras):

Tiesioginis dvimačio DFT apskaičiavimas naudojant aukščiau pateiktas formules reikalauja milžiniškų skaičiavimo išlaidų. Tačiau galima įrodyti, kad dvimatis DFT turi atskyrimo savybę, t.y. jį galima paeiliui apskaičiuoti iš dviejų matmenų.

Norint apskaičiuoti dvimatį DFT, pakanka apskaičiuoti visų vaizdo eilučių vienmačius kompleksinius DFT, o tada apskaičiuoti visų gauto „vaizdo“ stulpelių vienmačius kompleksinius DFT.

Tokiu atveju visų vienmačių kompleksinių DFT rezultatai turi būti parašyti vietoje pirminių šių DFT duomenų. Pavyzdžiui, skaičiuojant pirmosios vaizdo eilutės vienmatį DFT, DFT rezultatą reikia įrašyti pirmoje šio vaizdo eilutėje (ji yra tokio pat dydžio). Norėdami tai padaryti, kiekvieną „pikselį“ turite išsaugoti kaip kompleksinį skaičių.

Taigi efektyvus vaizdo DFT skaičiavimo algoritmas yra apskaičiuoti vienmačius FFT iš pradžių iš visų vaizdo eilučių, o paskui iš visų vaizdo stulpelių.

Tai viena iš Furjė transformacijų, plačiai naudojamų skaitmeninių signalų apdorojimo algoritmuose (jos modifikacijos naudojamos garso suspaudimui MP3 formatu, vaizdo glaudinimui JPEG formatu ir kt.), taip pat kitose srityse, susijusiose su dažnių analize diskretiniuose (pvz. pavyzdžiui, suskaitmenintas analoginis ) signalas. Atskirai Furjė transformacijai kaip įvestis reikalinga atskira funkcija. Tokios funkcijos dažnai sukuriamos atrankos būdu (verčių atranka iš nuolatinių funkcijų). Diskrečiosios Furjė transformacijos padeda išspręsti dalines diferencialines lygtis ir atlikti tokias operacijas kaip konvoliucija. Diskrečiosios Furjė transformacijos taip pat aktyviai naudojamos statistikoje, analizuojant laiko eilutes. Transformacijos gali būti vienmatės, dvimatės ir net trimatės.

Tiesioginis konvertavimas:

Atvirkštinis konvertavimas:

Pavadinimai:

§ N- signalo verčių, išmatuotų per laikotarpį, skaičius, taip pat skilimo komponentų skaičius;

§ - išmatuotos signalo vertės (atskirais laiko taškais su skaičiais, kurie yra įvesties duomenys tiesioginiam konvertavimui ir išvesties duomenys atvirkštiniam konvertavimui);

§ - N sinusinių signalų kompleksinės amplitudės, sudarančios pradinį signalą; yra tiesioginio konvertavimo išvesties duomenys ir atvirkštinio konvertavimo įvesties duomenys; kadangi amplitudės yra sudėtingos, iš jų galima apskaičiuoti ir amplitudę, ir fazę;

§ – įprastinė (tikra) k-ojo sinusinio signalo amplitudė;

§ arg( Xk) - k-ojo sinusinio signalo fazė (kompleksinio skaičiaus argumentas);

§ k- k-ojo signalo dažnis, lygus , kur T- laikotarpis, per kurį buvo paimti įvesties duomenys.

Iš pastarojo aišku, kad transformacija išskaido signalą į sinusoidinius komponentus (kurie vadinami harmonikomis), kurių dažniai yra nuo N virpesių per periodą iki vieno svyravimų per periodą. Kadangi pats mėginių ėmimo dažnis yra lygus N mėginiams per periodą, aukšto dažnio komponentai negali būti rodomi teisingai – atsiranda muaro efektas. Tai veda prie to, kad antroji N kompleksinių amplitudių pusė iš tikrųjų yra pirmosios veidrodinis vaizdas ir neturi papildomos informacijos.

Apsvarstykite tam tikrą periodinį signalą x(t) su periodu, lygiu T. Išplėskime jį į Furjė eilutę:

Paimkime signalą taip, kad per periodą būtų N mėginių. Atskirą signalą pavaizduokime pavyzdžių pavidalu: x n = x(tn), kur , tada šie Furjė serijos rodmenys bus parašyti taip:

Naudodami santykį: , gauname:

Kur

Taigi gavome atvirkštinė diskretinė Furjė transformacija.

Dabar padauginkime išraišką už x n ir mes gauname:


Čia mes naudojame: a) geometrinės progresijos baigtinio skaičiaus narių (eksponentų) sumos išraišką ir b) Kronecker simbolio išraišką kaip kompleksinių skaičių Eulerio funkcijų santykio ribą. Iš to išplaukia, kad:

Ši formulė apibūdina tiesioginė diskretinė Furjė transformacija.

Literatūroje įprasta daugiklį rašyti atvirkštine transformacija, todėl transformacijos formulės paprastai rašomos tokia forma:

Diskrečioji Furjė transformacija yra tiesinė transformacija, kuri paverčia laiko imčių vektorių į tokio pat ilgio spektrinių imčių vektorių. Taigi transformacija gali būti įgyvendinta kaip kvadratinės matricos padauginimas iš vektoriaus:



Ar jums patiko straipsnis? Pasidalinkite su draugais!