Elektrotehnički fakultet Sveučilište u Osijeku Kneza Trpimira 2b Osijek, 14 siječnja 2008 Seminarski rad iz predmeta Matematičko programiranje Diskretna Fourierova transformacija Željko Mihaljčić 1, Držislav Petrijevčanin 2 Sažetak U ovom seminarskom radu razmatra se diskretna Fourierova tranformacija i njena primjena Dana je formula za DFT i njen inverz(idft) te neka osnovna svojstva Dani su primjeri primjene diskretne Fourierove tranformacije na mirnu sliku i zvuk Ključne riječi: Diskretna Fourierova tranformacija, DFT, IDFT, Obrada slike, Obrada zvuka Abstract In this seminar paper we will show the basic formula for Discrete Fourier Transform and its inverse We will also show some basic properties of this method and application of DFT for image processing Keywords: Disrete Fourier Tranform, Image processing, Sound Processing, Inverse DFT Datum predaje seminara Ocjena Datum ocjene Potpis 1 e-mail: zeljko1510@gmailcom 2 e-mail: dpetrije@gmailcom
2 1 Uvod u diskretnu Fourierovu tranformaciju Diskretna Fourierova tranformacija pripada u područje Fourierove analize Ona kao takva prebacuje funkciju iz jedne domene u drugu, primjerice iz vremenske u frekvencijsku domenu Ulazna funkcija DFT-a mora biti definirana diskretnim vrijednostima i analizira se na ograničenom intervalu S obzirom da je ulazna funkcija konačna sekvenca realnih i kompleksnih brojeva, DFT je idealna za procesiranje informacija pohranjenih u računalu DFT se široko koristi u obradi signala (obrada slike, obrada zvuka) te za rješavanje parcijalnih diferencijalnih jednadžbi 2 Definicija diskretne Fourierove transformacije Definicija 1 Dani skup od kompleksnih brojeva x 0,,x je transformiran u niz od kompleksnih brojeva X 0,,X prema formuli: X k = x n e 2πkni k = 0,, 1 i 2 = 1 (1) takvu tranformaciju nazivamo diskretna Fourierova transformacija od x 0,,x Inverzna diskretna Fourierova transformacija dana je izrazom: x n = 1 k=0 Alternativni zapis DFT-a (vidi [1]) ima sljedeću notaciju: U matrično-vektorskoj notaciji, DFT je definiran kao produkt X k e 2πkni n = 0,, 1 (2) F[x 0,, x 1] := [X 0,, X 1] (3) X 0 X 1 = 1 V x 0 x 1 gdje je matrica V C x kompleksno konjugirana od simetricne matrice (4) 1 1 1 1 1 ω ω 2 ω V := 1 ω 2 ω 4 ω 2() 1 ω ω 2() ω ()2 (5) = (ω k j) k, j = 0 1 C x, ω := e i2π/ Primjer 1 Zadan je signal x[n] sa svojih 8 uzoraka, x[n]= { 4,0,1,2,3,2,1,0 } Izračunati DFT u 8(=8) točaka Dani zadatak riješimo sljedećim Mathematica-programom:
3 x = {4, 0, 1, 2, 3, 2, -1, 3}; For[k = 0, k < 8, a = Sum[x[[n + 1]] Re[Exp[-I 2 Pi n k/8]] //, {n, 0, 7, 1}]; b = Sum[x[[n + 1]]Im[Exp[-I 2 Pi n k/8]] //, {n, 0, 7, 1}]; If[b < 0, Print["X[", k, "]=", a, "-j", -b], Print["X[", k, "]=", a, "+j", b]]; k++]; Rješenja su prikazana u Tablici 1 3 Svojstva i X k [i] 0 14 + j0 1 0293 + j0121 2 7 + j3 3 1708 + j4121 4 0 + j0 5 1707 j4121 6 7 j3 7 0293 j0121 Tablica 1 Rezultat dobiven DFT-om Komplementarnost: Diskretna Fourierova transformacija je inverzna, linearna tranformacija F : C C (6) gdje C označava skup kompleksnih brojeva Drugim riječima, za bilo koji > 0, -dimenzionalni kompleksni vektor ima DFT i IDFT koji su takodjer -dimenzionalni kompeksni vektori Ortogonalnost: Vektor e 2πkni vektora formira ortogonalne baze za skup od -dimenzionalnih kompleksnih ( e 2πkni )( e 2πk ni ) = δ kk (7) gdje je δ kk Kroneckerov δ-simbol Uvjet ortogonalnosti se može iskoristiti za izvodjenje IDFT-a iz definicije DFT-a Kroneckerov δ-simbol definiran je na sljedeći način: { 1 za k = k δ kk = 0 za k k (8) Periodičnost: Ako izraz kojim je definiran DFT vrijedi za sve cijele brojeve k koji su unutar intervala k = 0,, 1 onda je rezultirajući beskonačni niz periodična ekstenzija DFT-a s periodom Svojstvo periodičnosti može se pokazati iz definicije: X k+ = x n e 2πi (k+)n = x n e 2πi kn e 2πin = x n e 2πi kn = X k (9) gdje smo koristili činjenicu da je e 2πi = 1 a isti se način može pokazati da formula za IDFT vodi na isti zaključak Za teorem pomaka vrijede sljedeće:
4 ako je F({x n }) k = X k, tada je F({x n e 2πi nm }) k = X k m i F({x n m }) k = X k e 2πi km Trigonometrijski interpolacijski polinom: Trigonometrijski interpolacijski polinom p(t) = X 0 + X 1 eit + + X /2 za parne, cos(t/2) + X /2+1 e( /2+1)it + + X e it (10) p(t) = X 0 + X 1 eit + + X /2 e /2 it + X /2 +1 e /2 it + + X e it (11) za neparne, gdje su koeficijenti X k / dobiveni DFT-om od x n iz izraza (10),(11) zadovoljavaju svojstvo interpolacije: p(2πn/) = x n za n = 0,, 1 Primjetimo da interpolacija nije jedinstvena: aliasing vodi ka tome da je moguće dodati bilo kojoj kompleksno-sinusoidalnoj frekvenciji bez promjene interpolacijskog svojstva, ali dodavanjem različitih vrijednosti izmedju x n točaka Gornji izbor je tipičan jer daje dva korisna svojstva Prvo, sastoji se od sinusoida čije frekvencije imaju najmanju moguću amplitudu, stoga minimiziraju srednji korijen nagiba p (t) 2 dt interpolacijske funkcije Drugo, ako su x n realni brojevi, tada p(t) je takodjer realan Za detaljniji opis svojstava vidi [2] 4 Primjena DFT-a na mirnu sliku Obrada mirne slike vrši se iz nekoliko razloga eki od osnovnih su problem pohrane slike na medij, neodgovarajuća izmjena svojstava orginalne slike (npr u medicini potrebno dobiti bolji kontrast ultrazvuka, rgenske slike ), obrada grafike na računalu Sliku je moguće obradjivati u dvije domene, prostornoj i frekvencijskoj Obrada slike u frekvencijskoj domeni omogućava upotrebu raznih filtera kojima možemo jako utjecati na svojstva slike Slika je na računalu prikazana u matričnom zapisu gdje broj pixela odgovara broju elemenata matrice za koji vrijedi da je prvi element matrice ekvivalentan prvom pixelu, drugi drugom itd Prijenos slike iz prostorne domene u frekvencijsku vrši se primjenom DFT-a na matricu slike ajprije pogledajmo kako predhodno definiranu formulu za jednodimenzionalni DFT možemo proširiti na 2D koji ćemo primjeniti na sliku, odnosno matricu slike: X k,j = 1 M M 1 k=0 j=0 a isti način dobivamo formulu za dvodimenzionalni IDFT: f(x, y) = M 1 k=0 j=0 f(x, y)e j2π(kx/m+vy/) (12) X k,j e j2π(kx/m+vy/) (13) Varijable k i j su varijable transformacija odnosno frekvencijske varijable, a x i y su prostorne varijable ili varijable slike S obzirom da sliku predstavljmo kao dvodimenzionalnu matricu, iz gornje formule je lako uočiti da će f(x, y) zapravo predstavljati element matrice slike u redu x i stupcu y akon što na matricu slike primjenimo 2D DFT dobivamo novu matricu gdje je svaki pojedini element kompleksni broj U praksi se prije primjene DFT-a najprije svaki element matrice množi sa ( 1) x+y S obzirom na svojstva eksponencijalne funkcije može se pokazati da vrijedi:
5 F[f(x, y)( 1) x+y ] = F (u M/2, v /2) (14) gdje F[ ] označava Fourierovu transformaciju argumenta Sada će ishodište Fourierove tranformacije (element F (0, 0) koji predstavlja srednju vrijednost slike) biti u središtu matrice (M/2, /2), odnosno bit će pomaknuto za (M/2,/2) u odnosu na orginal To se radi zbog simetričnosti spektra i njegovog jasnijeg prikaza Kada se govori o frekvencijskom spektru slike to u praksi znači da promatramo apsolutnu vrijednost svakog elementa matrice Primjer 2 U programskom paketu Matlab učitajmo crno-bijelu sliku veličine 371x298 pixela te primjenom 2D DFT-a prikažimo frekvencijski spektar slike Slika 1: Orginalna slika Problem smo riješili sljedećim programom u MATLAB-u: A= imread (A, slika bmp, bmp ); % ucitavanje slike % mnozenje svakog pojedinog elementa sa ( -1)^( i+j) for i = 1:371 for j = 1:298 A(i,j) = A(i,j )*(( -1)^( i+j )); %2 D DFT ( Matlab ima gotovu funkciju za FFT ) B= fft2 (A); % svaki element matrice zamjenimo sa apsolutnom vrijednosti B= abs (B); % za bolji prikaz spektra, vise sivih tonova for i = 1:371 for j = 1:298 B(i,j) = 01* log10 (1+ B(i,j ));
6 % dobivene vrijednosti prebacujemo na skalu od 0-255 %(8 bit BMP moze imati vrijednosti od 0( crno ) do 255( bijelo )) B=B *100; B= uint8 (B); B =3* B; % prikaz spektra imwrite (B, spektar bmp, bmp ); ajprije prikazimo dobivene matrice A i B: A := B := 61 0 62 0 0 61 0 53 63 0 63 0 25 0 40 0 204 183 162 183 186 174 162 174 153 177 168 171 186 174 174 174 (15) (16) Program u Matlabu dao je traženi frekvencijski spektar(vidi Slika 2) Slika 2: Prikaz spektra Iz prikaza spektra je vidljivo da je simetričan, srednja vrijednost je u sredini slike i ima največu vrijednost pa je stoga i najsvjetlija U području oko nule imamo takodjer visoke vrijednosti što nam pokazuje da su na ovoj slici izraženije niske frekvencije Za detaljniji opis postupaka obrade slike u frekvencijskoj domeni vidi [3] Mnoštvo dodatnih primjera obrade slike korištenjem Matlaba može se pronaći u [4]
7 5 Primjena DFT-a na zvuk Zvuk se kao i slika na računalu može prikazati samo u digitalnom obliku koji se dobije analogno-digitalnom pretvorbom Slično kao i kod mirne slike, ovdje nam je takodjer zanimljiv prikaz spektra signala Da bi dobili spektar signala na prethodno digitaliziran signal primjenjujemo DFT Primjer 3 Uzorkovanjem i kvantizacijom snimke zvuka dobili smo matricu A koja predstavlja digitalizirani signal Prikažimo spektar danog signala Dani zadatak riješimo Matlab programom [a,fs, bits ]= wavread ( zvuk wav ); % ucitavanje zvuka, % Fs( frekvencija uzorkovanja )=441 khz, bits ( rezolucija )=16 bita easyspec (a, Fs ); % gotovi Matlab program koji primjenjuje DFT, odnosno FFT % kod easyspec m programa : if nargin ==0 error ( o input vector given ); if ( nargin ==1) fs =2; FFT =16384; WI = FFT /4; LOOP =100; win = hanning ( WI ) ; x=x (:) *(17127/ FFT / sqrt ( LOOP )); n= length (x); maxshift =n- WI ; if (n <2* WI ) error ([ Input vector should be at least of length num2str (2* WI )]); s= zeros (1, FFT ); for i =1: LOOP zuz = floor ( rand * maxshift ); s=s+ abs ( fft ([ win *x(1+ zuz : WI + zuz ) zeros (1, FFT - WI )]))^2; s =10* log10 (s (1: FFT /2)); f= linspace (0, fs /2, FFT /2); if nargout ==0 hold off ; plot (f,s); ylabel ( Power Spectrum [db ] ); xlabel ( Frequency ); grid on; zoom on; Primjeri koje smo obradili pripadaju u područje digitalne obrade signala Za detaljan uvod u digitalnu obradu signala primjenom DFT-a vidi [5] Mnostvo slozenijih primjera može se pronači u [6]
8 0 10 20 Power Spectrum [db] 30 40 50 60 70 80 90 0 05 1 15 2 25 Frequency x 10 4 Slika 3: Spektar zvucnog signala Literatura [1] R Plato, Concise umerical Mathematics, American Mathematical Society, Providence, 2003 [2] EOran Brigham, The fast Fourier transform and its applications, Englewood Cliffs, J: Prentice Hall [3] RC Gonzales, RE Woods, Digital Image Processing, Prentice Hall; 3 edition August 31, 2007 [4] RC Gonzales, RE Woods, SL Edins, Digital Image Processing Using MATLAB, Prentice Hall; 1st edition September 5 2003 [5] RG Lyons, Understanding Digital Signal Processing, Prentice Hall PTR; 2004 [6] JG Proakis, DK Manolakis, Digital Signal Processing, Prentice Hall; 4th edition 2006