N - DSP AGH

Transkrypt

N - DSP AGH
Szybka transformacja Fouriera
Spis treści
1.
Nieefektywność obliczeniowa DFT
2.
Usprawnienia zaproponowane przez Cooley’a i Tukey’a
3.
Porównanie efektywności DFT i FFT
1
Cechy charakterystyczne procedury
obliczeniowej DFT
Obliczenia DFT można zapisać w postaci macierzowej
 sˆ(0)          s (0) 
 s (1) 
 sˆ(1)  






 
 sˆ(2)          s (2)



 
ˆ




(
3
)
s
(
3
)
s




 sˆ(4)         s (4)



 



 s (5) 
 sˆ(5)  
 sˆ(6)           s (6) 



 



 s (7)
 sˆ(7) 
gdzie


1

2
j
2
  1  j
2
2

1

2
j
2
 
1

2
j
2
2
Przykład dublowania obliczeń
Obliczenia DFT można zapisać w postaci macierzowej
 sˆ(0)          s (0) 
 s (1) 
 sˆ(1)  






 
 sˆ(2)          s (2)



 
ˆ




(
3
)
s
(
3
)
s




 sˆ(4)         s (4)



 



 s (5) 
 sˆ(5)  
 sˆ(6)           s (6) 



 



 s (7)
 sˆ(7) 
Wynika stąd
sˆ(0)  s (0)  s (2)  s(4)  s (6)  s(1)  s (3)  s (5)  s (7) 
sˆ(4)  s(0)  s(2)  s (4)  s(6)  s(1)  s (3)  s (5)  s (7) 
3
Nakład obliczeniowy dla dyskretnej
transformacji Fouriera
Dyskretne widmo jest obliczane przy pomocy wzoru
N 1
sˆ(k )   s (n)wNkn
n 0
gdzie
wN  e
j
2
N
2N 2 mnożeń bo: jest N składników sumy (ze względu na n), jest N
równań (ze względu na k) i są to mnożenia liczb rzeczywistych przez
zespolone.
4
Cooley i Tukey 1965 rok
Dla poprawy efektywności, przeprowadźmy obliczenia osobno dla próbek
o numerach parzystych i osobno o numerach nieparzystych. Otrzymamy
N 2 1
N 1
sˆ(k )   s(n)w   s(2n)w
n 0
kn
N
n 0

2 nk
N

N 2 1

n 0
s(2n)w
kn
N /2
N 2 1
( 2 n 1) k
s
(
2
n

1
)
w

N
n 0
w
N 2 1
k
N
kn
s
(
2
n

1
)
w

N /2
n 0
dla k  0,1,..., N / 2  1
sˆ(k )  sˆ p (k )  wNk sˆn (k )
gdzie
wN  e
j
2
N
natomiast
wN / 2  e
A co z wartościami dla k  N / 2, , N  1 ?
j
4
N
5
Okresowość widm dyskretnych
Otrzymaliśmy
sˆ(k )  sˆ p (k )  wNk sˆn (k )
Widma zarówno dla próbek o numerach parzystych jak i nieparzystych
są funkcjami okresowymi, tzn.
sˆ p (k )  sˆ p (k  N / 2)
sˆn (k )  sˆn (k  N / 2)
Dodatkowo zauważmy, że
w e
k
N
j
2
k
N
 e
j
2
k
N
e
j
 e
j
2
k  N 2 
N
 w
kN 2
N
 
Im w k
wNk  1
Jeśli na przykład k = 4 i N = 8, to
wNk  N 2  1
 
Re w k
6
Wzór wynikający z okresowości
funkcji dyskretnych
Z warunków
sˆ p (k )  sˆ p (k  N / 2)
sˆn (k )  sˆn (k  N / 2)
oraz
wNk   wNk  N 2
wynika, że
sˆ(k )  sˆ p (k )  wNk sˆn (k )
jest równoważne
sˆ p (k )  wNk sˆn (k )
dla k  0,1,...,N / 2  1
sˆ(k )  
kN / 2
sˆn (k  N / 2) dla k  N / 2,...,N  1.
sˆ p (k  N / 2)  wN
7
Efektywność algorytmu
Ilość mnożeń w otrzymanym wzorze
sˆ p (k )  wNk sˆn (k )
dla k  0,1,...,N / 2  1
sˆ(k )  
kN / 2
sˆn (k  N / 2) dla k  N / 2,...,N  1.
sˆ p (k  N / 2)  wN
wynosi
N 2  2N
bo zarówno sˆ p ( k ) jak i sˆn ( k ) dla k = 0, 1, ..., N/2-1 wymaga 2(N/2)2
mnożeń i dodatkowo trzeba wykonać 4(N/2) mnożeń dla w Nk sˆn ( k )
(mnożenie liczb zespolonych!).
Przedstawiony algorytm jest bardziej efektywny jeśli spełniona jest
nierówność
2
2
2N  N  2N
czyli musi być N > 2, a przecież tak jest zawsze!
8
Szybka transformacja Fouriera
ang. Fast Fourier Transform - FFT
Dla zwiększenia efektywności obliczeń, przedstawiony schemat można zastosować
do obliczenia widm dla próbek parzystych i nieparzystych, a również i dalej.
Wymaga to dzielenia ilości próbek przez 2. Cooley i Tukey przyjęli N  2 M .
Stosując M - krotnie podział na próbki o numerach parzystych i nieparzystych, na
końcu otrzymujemy dla N = 2
sˆ(0)  s (0)  s (1)
sˆ(1)  s (0)  s (1)
s ( 0)
ŝ (0)
s (1)
ŝ (1)

9
Operacje motylkowe
przebieg 1
s(0)
s(1)
s(2)
s(3)
s(4)
s(5)
s(6)
s(7)
przebieg 2
przebieg 3
W
0
N
WN0
WN0
W
0
N
W
0
N
W
0
N
W
0
N
grupa 0
1
1
grupa 1
1
W
2
N
W
2
N
1
1
W N2
W N1
1
grupa 0
1
grupa 0
grupa 2
1
1
1
W N3
grupa 1
1
grupa 3
ŝ(0)
ŝ(4)
ŝ(2)
ŝ(6)
ŝ(1)
ŝ(5)
ŝ(3)
ŝ(7)
1
10
Efektywność operacji motylkowych
Ilość próbek N  2 M .
Poziomów jest M  lg 2 N a na każdym z nich N/2 operacji motylkowych.
Czyli ostatecznie mnożeń (na ogół liczb zespolonych) jest
.
4M
N
 2 N log 2 N
2
Reasumując, ilość mnożeń w dyskretnej transformacji Fouriera jest proporcjonalna
do drugiej potęgi ilości próbek a w szybkiej transformacji Fouriera proporcjonalna
do iloczynu ilości próbek i logarytmu z ilości próbek.
DFT ~ N 2
FFT ~ N log 2 N
11
Porównanie efektywności DFT i FFT
Ilość mnożeń DFT i FFT dla N próbek
N
4
8
16
32
64
128
2N 2
32
128
512
2048
8192
32768
2 N lg 2 N
16
48
128
320
768
1792
x 10
1.8
2N 2
1.4
1
0.6
2 N log 2 N
0.2
12
0
20
40
60
80
100

Podobne dokumenty