FFT Digitalna obradba signala 1 Uvod u u
FFT Digitalna obradba signala 1
Uvod u u u FFT je postupak za efikasno računanje DFT-a Kod DFT-a za N točaka broj množenja je N 2 Ako se koristi FFT algoritam broj množenja je 2
u Problem računanja DFT-a jest da se izračuna niz {X[k]} od N kompleksnih brojeva zadanih drugim nizom podataka {x[n]} dužine N 3
Pojednostavljujući notaciju definiramo kompleksnu eksponencijalu WN WN = Slično IDFT postaje 4
u Za niz kompleksnih brojeva DFT se može izraziti : 5
Direktno računanje XR[k] i XI[k] traži: proračuna trigonometrijskih funkcija u realnih množenja u realnih zbrajanja u Određen broj indeksnih i adresnih operacija u 6
u Dakle da se izračuna svih N vrijednosti DFT-a potrebno je N 2 kompleksnih množenja i N 2 - N kompleksnih zbrajanja. u Direktno izračunavanje DFT-a je u osnovi neefikasno jer ne koristi simetričnost i periodičnost kompleksne eksponencijale WN 7
u Simetričnost: u Periodičnost : u FFT algoritmi koriste ova osnovna svojstva kompleksne eksponencijale 8
u Primjer 9
10
Metoda podijeli pa vladaj u Ovaj pristup zasniva se na dekompoziciji DFT-a u N točaka u sukcesivno manje blokove DFT-a. u Kao ilustraciju osnovnih karakteristika promotrit ćemo računanje DFT-a u N točaka gdje N može biti faktoriziran kao produkt dva cijela broja N=LM 11
u Pretpostavka da N nije prost broj nije restriktivna budući da se niz može popuniti sa nulama, da se osigura faktorizacija. u niz x[n], 0£ n £ N-1 se može pohraniti u jednodimenzionalno polje indeksirano sa n 12
u Tablica 1 n 13
u Niz x[n] se, međutim, može pohraniti u dvodimenzionalno polje indeksirano sa l i m. l predstavlja indeks redaka a m indeks stupaca 14
Tablica 2 m index stupaca m 0 1 . . . . M-1 0 x[0, 0] x[0, 1] . . . x[0, M-1] 1 x[1, 0] x[1, 1] . . . x[1, M-1] 2 x[2, 0] x[2, 1] . . . x[2, M-1] . . . . l index redaka l L-1 x[L-1, 0] x[L-1, 1]. . . x[L-1, M-1] 15
u Niz x[n] može biti pohranjen u pravokutno polje na više načina od koji svaki zavisi o razlaganju indeksa n u indekse (l, m). u Na primjer, ako odaberemo razlaganje: n=Ml+m To vodi u slučaj u kojem prvi redak sadrži prvih M elemenata od x[n], drugi redak sadrži slijedećih M elemenata x[n] itd. 16
razlaganje n = M l + m m index stupaca m 0 1 2 0 x[0] x[1] x[2] . . x[M-1] 1 x[M] x[M+1] x[M+2] . . x[2 M-1] 2 x[2 M] x[2 M+1] x[2 M+2] . . x[3 M-1] . . . . l index redaka l . . M-1 L-1 x[(L-1)M] x[(L-1)M+1] x[(L-1)M+2]. . x[LM-1] [(L-1)M+M-1] 17
u U drugom slučaju razlaganje n = l +m. L pohranjuje prvih L elemenata od x[n] u prvi stupac, sljedećih L elemenata u drugi stupac, itd. kao sto je prikazano u Tablici 3 b. u 18
l index stupaca razlaganje n = l + m. L m index stupaca m 0 1 2 . . . M-1 0 x[0] x[L] x[2 L] . . x[(M-1)L] 1 x[1] x[L+1] x[2 L+1]. . . . . x[(M-1)L+1] 2 x[2] x[L+2] x[2 L+2]. . . . . x[(M-1)L+2] . . . l L-1 x[L-1] x[2 L-1] x[3 L-1]. . . . . [(M-1)L+L-1] x[LM-1] 19
Identičan aranžman može se koristiti za izračunate DFT vrijednosti. Posebno razlaganje indeksa k u par indeksa (p, q) gdje je 0£ p £ L-1 i 0 £ q £ M-1 u u Ako odaberemo razlaganje k = Mp + q , DFT je pohranjen po recima gdje prvi redak sadrži prvih M elemenata DFT-a X(k), drugi redak sadrži slijedeći niz od M elemenata. 20
u Ako se odabere razlaganje k = p + q. L rezultati X(k) pohranjeni su po stupcima u prvih L elemenata pohranjeno u prvom stupcu, drugi niz elemenata pohranjen je u drugom stupcu itd. 21
DFT se može izraziti kao dvostruka suma preko elemenata polja pomnoženih sa odgovarajućom kompleksnom eksponencijalom u 22
23
Koristeći ova pojednostavljenja 24
Proračun se može podijeliti u 3 koraka 1. Računaju se komponente DFT-a u M točaka za svaki od redaka l = 0, 1. . , L-1 25
u 2. Računa se novo polje G(l, q) 26
3. Konačno, računaju se komponente DFT-a u L točaka za svaki stupac q=0, 1, . . . . , M-1 polja G(l, q) 27
2 2 u Broj množenja: LM +LM+ML = N(M+L+1) u Broj zbrajanja: LM(M-1)+ML(L-1) = N(M+L-2) 28
Primjer: Za N=1000 i ako se odabere L=20 i M=50 u Broj množenja je N(M+L+1) =1000(20+50+1)=71000 u Direktnim postupkom potrebno je 2 6 N =10 u 29
u Kod zbrajanja omjer je 14, 69 30
u Primjer Kao ilustracija procedure računanja, promotriti će se računanje DFT-a u 15 točaka. Ako je N=5*3=15, odabire se L=5 i M=3. Dakle, pohranjuje se niz x(n) od 15 točaka po stupcima. 31
32
u Sad se računaju DFT-ovi u 3 točke za svaki od 5 redaka. 33
u Slijedeći korak je da se pomnože svaki F(l, q) sa kompleksnom eksponencijalom 34
u Rezultati računanja u 5*3 polju 35
u Konačni korak je da se izračuna DFT u 5 točaka za svaki od 3 stupca. Ovaj računski postupak sadrži željene vrijednosti DFT-a. 36
37
0 1 2 5 8 DFT u 5 točaka L=5 11 14 DFT u 3 točke M=3 0 1 5 10 6 11 2 7 12 3 8 13 4 9 14 DFT u 15 točaka 38
Korijen-2 metoda 39
Uvod u. Potrebno: 2 N kompleksnih množenja N(N-1) zbrajanja 40
u Pokazano je da možemo iskoristiti periodičnost i simetričnost kompleksne eksponencijale 41
u Pokazano je da se DFT može efikasno može izračunati ako je moguće faktorizirati N kao N = r 1 r 2. . . rj gdje su { rj } prim brojevi. 42
u Od posebne važnosti je slučaj kada je r 1 = r 2 =. . . . = rj = r tako da je N = r j u. U tom slučaju svi DFT-ovi su dimenzije r tako da izračunavanje DFT-a u N točaka poprima pravilnu strukturu u r se tada naziva baza (radix) FFT algoritma 43
je N=2 j i koristi se “podijeli pa vladaj” postupak i to tako da se izabere M=N/2 i L=2 u ulazni niz razvrstamo u 2 retka i N/2 stupaca u U prvom retku je niz f 1(n) , u drugom f 2(n) tako da parni uzorci od x(n) ulaze u f 1(n) a neparni u f 2(n) u Neka 44
u f 1(n) = x(2 n) u f 2(n) = x(2 n+1) n = 0, 1, . . . . , N/2 -1 u f 1(n) i f 2(n) dobiveni su decimacijom x(n) za faktor 2 i zato se ovaj FFT algoritam naziva algoritam decimacije u vremenu 45
u. N točaka DFT-a je 46
47
u F 1(k) i F 2(k) su DFT-ovi od N/2 točaka u F 1(k) i F 2(k) su periodički s periodom N/2 48
u F 1(k+N/2) = F 1(k) k = 0, 1, . . . , N/2 -1 u F 2(k+N/2) = F 2(k) k = 0, 1, . . . , N/2 -1 u Radi konzistencije 49
u. U potpunosti se poštuje algoritam kojim je objašnjena metoda podijeli pa vladaj 1. ) 50
51
u 2. ) Računamo G(l, q) 52
u 3. ) 53
u Neka je N= 8 = 23 F 1(0) x(0)=f 1(0) x(2)=f 1(1) x(4)=f 1(2) N/2 DFT x(6)=f 1(3) x(5)=f 2(2) x(7)=f 2(3) W N 0 F 1(2) W N 1 F 1(3) W N 2 W N 3 F 2(0) x(1)=f 2(0) x(3)=f 2(1) F 1(1) N/2 DFT F 2(1) W N 4 F 2(2) W N 5 F 2(3) W N 6 W N 7 X(0) X(1) X (2) X (3) X (4) X (5) X (6) X (7) 54
u Dalje se nastavlja s razlaganjem nizova f 1(n) i f 2(n) v 11(n) = f 1(2 n) v 12(n) = f 1(2 n+1) i n = 0, 1, . . . , N/4 -1 v 21(n) = f 2(2 n) v 22(n) = f 2(2 n+1) n = 0, 1, . . . , N/4 -1 55
56
57
u Slično se izvodi x(0)=v 11(0) x(4)=v 11(1) N/4 DFT x(2)=v 12(0) x(6)=v 12(1) N/4 DFT W 0 N/2 W 1 N/2 W 2 N/2 W 3 N/2 F 1(0) F 1(1) F 1(2) F 1(3) 58
59
60
x(0) V 11(0) x(4) V 11(1) 61
Za N=8 x(0) x(4) x(2) x(6) x(1) x(5) x(3) x(7) 0 N W WN 4 WN 0 X (0) WN 2 WN 1 X (1) WN 4 WN 2 X (2) WN 6 WN 3 X (3) WN 0 WN 4 X (4) WN 2 WN 5 X (5) WN 4 WN 6 X (6) WN 6 WN 7 X (7) 62
x(0) x(4) x(2) x(6) x(1) x(5) x(3) x(7) 0 N W WN 4 WN 0 X(0) WN 2 WN 1 X(1) WN 4 WN 2 X(2) WN 6 WN 3 X(3) WN 0 WN 4 X(4) WN 2 WN 5 X(5) WN 4 WN 6 X(6) WN 6 WN 7 63 X(7)
x(0) x(4) x(2) x(6) x(1) x(5) x(3) x(7) 0 N W WN 4 WN 0 X(0) WN 2 WN 1 X(1) WN 4 WN 2 X(2) WN 6 WN 3 X(3) WN 0 WN 4 X(4) WN 2 WN 5 X(5) WN 4 WN 6 X(6) WN 6 WN 7 64 X(7)
x(0) x(4) x(2) x(6) x(1) x(5) x(3) x(7) 0 N W WN 4 WN 0 X(0) WN 2 WN 1 X(1) WN 4 WN 2 X(2) WN 6 WN 3 X(3) WN 0 WN 4 X(4) WN 2 WN 5 X(5) WN 4 WN 6 X(6) WN 6 WN 7 65 X(7)
x(0) x(4) x(2) x(6) x(1) x(5) x(3) x(7) 0 N W WN 4 WN 0 X(0) WN 2 WN 1 X(1) WN 4 WN 2 X(2) WN 6 WN 3 X(3) WN 0 WN 4 X(4) WN 2 WN 5 X(5) WN 4 WN 6 X(6) WN 6 WN 7 66 X(7)
x(0) x(4) x(2) x(6) x(1) x(5) x(3) x(7) 0 N W WN 4 WN 0 X(0) WN 2 WN 1 X(1) WN 4 WN 2 X(2) WN 6 WN 3 X(3) WN 0 WN 4 X(4) WN 2 WN 5 X(5) WN 4 WN 6 X(6) WN 6 WN 7 67 X(7)
x(0) x(4) x(2) x(6) x(1) x(5) x(3) x(7) 0 N W WN 4 WN 0 X(0) WN 2 WN 1 X(1) WN 4 WN 2 X(2) WN 6 WN 3 X(3) WN 0 WN 4 X(4) WN 2 WN 5 X(5) WN 4 WN 6 X(6) WN 6 WN 7 68 X(7)
x(0) x(4) x(2) x(6) x(1) x(5) x(3) x(7) 0 N W WN 4 WN 0 X(0) WN 2 WN 1 X(1) WN 4 WN 2 X(2) WN 6 WN 3 X(3) WN 0 WN 4 X(4) WN 2 WN 5 X(5) WN 4 WN 6 X(6) WN 6 WN 7 69 X(7)
x(0) x(4) x(2) x(6) x(1) x(5) x(3) x(7) 0 N W WN 4 WN 0 X(0) WN 2 WN 1 X(1) WN 4 WN 2 X(2) WN 6 WN 3 X(3) WN 0 WN 4 X(4) WN 2 WN 5 X(5) WN 4 WN 6 X(6) WN 6 WN 7 70 X(7)
u Da li je to DFT ? u Da, zbog toga što je 71
u Strukture su pravilne u Naziv strukture je LEPTIR 72
u Razmatra se koliki je broj kompleksnih množenja j u Ako je N=2 broj stupnjeva je log 2 N u U svakom stupnju je N kompleksnih množenja i zbrajanja u Broj množenja je Nlog 2 N 73
u Uvidom u dijagram vidi se poredak nizova 74
u Dodatno smanjenje broja operacija 75
76
77
Xm(p) Xm+1(q) Xm(q) -1 u Graf (FFT) se može nacrtati kao 78
x(0) x(4) X(0) X(1) x(2) x(6) X(2) x(1) x(5) X(4) x(3) x(7) X(6) X(7) X(3) X(5) 79
u Broj množenja je Broj točaka N Broj množenja N 2 FFT (N/2)log 2 N 4 8 16 32 64 128 256 512 1024 16 64 256 1024 4096 16384 65536 262144 1048576 4 12 32 80 192 448 1024 2304 5120 Faktor brzine 4 5, 3 8, 0 12, 8 21, 3 36, 6 64 113, 8 204, 8 80
Decimacija u freq. domeni X(0) x(0) X(4) x(1) X(2) X(6) x(2) x(3) X(1) X(5) x(4) x(5) X(3) x(6) X(7) x(7) 81
Korištenje svojstava DFT-a u daljnjem povećanju efikasnosti FFT-a 82
Još jedno važno svojstvo DFT -a u xp(k) je realan i periodičan niz perioda N 83
84
dobivamo: 85
DFT dvaju realnih nizova uz pomoć kompleksne DFT RE 2 FFT u x(n) i y(n) su dva nezavisna realna i periodična niza u treba naći X(k) i Y(k) u stvaramo kompleksni niz z(n) = x(n) + jy(n) 86
u radimo DFT niza z(n) = x(n) + jy(n) : 87
88
u dobivamo 4 jednadžbe : 89
uiz njih slijede konačne četiri jednadžbe koje definiraju nizove X(k) i Y(k) : 1+3 3 -1 2+4 2 -4 90
Zaključujemo: u jednom DFT duljine N moguće je istovremeno transformirati dva realna niza duljine N u slijedi da je moguće transformirati jedan realni niz duljine 2 N uz pomoć DFT-a duljine N 91
REDFFT - transformacija realnog niza v(k) dužine 2 N pomoću FFT dužine N u zadan je niz v(n) duljine 2 N u definiramo dva niza x(n) te y(n) tako da je x(n) = v(2 n) y(n) = v(2 n+1) 92
93
dobivamo: 94
Da ponovimo: u niz v(n) duljine 2 N razbijemo u dva realna niza x(n) te y(n) duljine N u na ta dva niza primijenimo RE 2 FFT i dobijemo X(k) te Y(k) u da bismo dobili konačnu transformaciju početnoga niza v(k) primjenjujemo formulu: 95
Kompleksnost algoritma: u broj kompleksnih množenja za realni niz : ukorištenjem DFT-a iznosi N 2 ukorištenjem FFT-a iznosi (N/2)log 2 N ukorištenjem REDFFT-a iznosi (N/4)log 2(N/2) + N/2 96
Primjena FFT algoritma u linearnom filtriranju u važna primjena u filtriranju dugih nizova u zamislimo niz u(n) duljine L na ulazu FIR filtra impulsnog odziva duljine M. 97
u odziv filtra je dan konvolucijskom sumacijom: u y(n) je duljine L+M-1 u za određivanje y(n) dovoljan je DFT duljine N ³ L+M-1 98
u h(n) i u(n) moraju se do duljine N produljiti odgovarajućim brojem nula u koristit će se overlap-add metoda 99
L L L u 1(n) M-1 nula u 2(n) M-1 nula u 3(n) M-1 nula 100
u duljina ulaznog bloka je L uzoraka u dužina DFT-a i IDFT-a je N=L+M-1 u svakom bloku dodajemo M-1 nula i izračunamo N točaka DFT-a 101
u Ym(k)=H(k)Um(k) k=0, 1, …, N-1 u dobivamo izlazne blokove duljine N u kojima nema aliasinga jer su dužine DFT-a (i IDFT-a) N=L+M-1 u na kraju je potrebno izvršiti preklapanje posljednjih M-1 uzoraka svakog izlaznog bloka sa prvih M-1 uzoraka slijedećeg bloka 102
L y 1(n) + y 2(n) + y 3(n) 103
Diskusija uporabe FFT-a u da bi primijenili FFT uz bazu 2 moramo podesiti duljinu ulaznog bloka L tako da N (N=L+M-1) bude potencija broja 2 u potrebno produljiti u(n) i h(n) odgovarajućim brojem nula na N točaka u transformaciju impulsnog odziva sustava H(k) radi se samo jednom i zatim se izračunatih N točaka pohranjuje u memoriju 104
u povoljnije je primijeniti FFT algoritam decimacije u frekvenciji pa će uzorci od H(k) i Um(k) biti u bit-reversed poretku u pošto je Ym(k)=H(k)Um(k) transformacija izlaznog niza će biti također u bit-reversed poretku u inverzni DFT radimo s algoritmom koji koristi ulazni niz u bit-reversed poretku pa dobivamo y(n) u normalnom poretku 105 u na kraju vršimo zbrajanje M-1 uzoraka
Kompleksnost algoritma u H(k) se računa samo jednom pa se može zanemariti u svaki FFT zahtijeva kompleksnih množenja i zbrajanja u pošto radimo dva DFT-a (jednom FFT i jednom IDFT) imamo kompleksnih množenja i zbrajanja 106
u za izračunati Ym(k) potrebno je još N kompleksnih množenja i N-1 zbrajanja u omjer broja množenja filtriranja primjenom FFT-a i običnog množenja iznosi: u npr. za N=1024 i M=128 u algoritam se dodatno skraćuje korištenjem dva sukcesivna bloka i primjenom RE 2 FFT 107
- Slides: 107