Documente Academic
Documente Profesional
Documente Cultură
Mitică Craus
1/ 17
Cuprins Transformata Fourier discretă Algoritm Algoritm ı̂mbunătăţit Algoritmul Cooley-Tukey Comentarii bibliografice
Cuprins
2/ 17
Cuprins Transformata Fourier discretă Algoritm Algoritm ı̂mbunătăţit Algoritmul Cooley-Tukey Comentarii bibliografice
• Notăm cu f (t) funcţia care descrie semnalul ı̂n domeniul timp şi cu F (ν) funcţia
care descrie semnalul ı̂n domeniul frecvenţei.
• Se poate trece dintr-o descriere ı̂n alta prin transformata Fourier.
• Trecerea din domeniul timp ı̂n domeniul frecvenţă se face prin transformata Fourier
directă: Z +∞
F (ν) = F [f (t)] = f (t)e −2πiνt dt, (1)
−∞
iar trecerea de la domeniul frecvenţă la domeniul timp se face prin transformata
Fourier inversă: Z +∞
f (t) = F −1 [F (ν)] = F (ν)e 2πiνt dν. (2)
−∞
3/ 17
Cuprins Transformata Fourier discretă Algoritm Algoritm ı̂mbunătăţit Algoritmul Cooley-Tukey Comentarii bibliografice
• Notăm:
n−1 −2πijk
yj = ∑ xk e n . (4)
k=0
• Transformata Fourier discretă inversă este dată de relaţia:
4/ 17
Cuprins Transformata Fourier discretă Algoritm Algoritm ı̂mbunătăţit Algoritmul Cooley-Tukey Comentarii bibliografice
obţinem
yn−j = X (ωj ), j = 0, 1, . . . , n − 1, (8)
unde am considerat yn = y0 .
5/ 17
Cuprins Transformata Fourier discretă Algoritm Algoritm ı̂mbunătăţit Algoritmul Cooley-Tukey Comentarii bibliografice
Demonstraţie.
2πi(j+m) 2πij 2πim 2πij 2πi2m
2
Avem ωj+m = (e 2m )2 = (e 2m )2 (e 2m )2 = (e 2m )2 e 2m = ωj2 . Deoarece ωj şi
ωj+m sunt distincte, rezultă ωj = −ωj+m .
Lema (1)
Dacă n este par, n = 2m, şi 1 ≤ j < m, atunci ωj2 este de asemenea o rădăcină 6= 1.
Demonstraţie.
Deoarece ωjn = 1 rezultă (ωj2 )n = 1. Pe de altă parte,
2πij 2πi(j+j)
ωj2 = (e n )2 =e n = ωj+j 6= 1 pentru că 2 ≤ j + j ≤ n − 2.
6/ 17
Cuprins Transformata Fourier discretă Algoritm Algoritm ı̂mbunătăţit Algoritmul Cooley-Tukey Comentarii bibliografice
n −1 n −1
2 2
X (ωj ) = ∑ x2m ωj2m + ∑ x2m+1 ωj2m+1
m=0 m=0 (9)
n −1 n −1
2 2
= ∑ x2m ωj2m + ωj ∑ x2m+1 ωj2m
m=0 m=0
7/ 17
Cuprins Transformata Fourier discretă Algoritm Algoritm ı̂mbunătăţit Algoritmul Cooley-Tukey Comentarii bibliografice
X (z) = (x0 +x2 z 2 +· · ·+xn−2 z n−2 )+z(x1 +x3 z 2 +· · ·+xn−1 z n−2 ) = X 1(z)+zX 2(z),
(10)
unde X 1(z) şi X 2(z) sunt polinoame de grad n − 2, i.e., de grad mai mic cu 1 decât
cel al lui X (z).
• Evaluarea acestor polinoame se za face numai ı̂n punctele
ωm , m = 0, 1, . . . , n
2 −1 = 2
r −1 − 1.
şi
n
X 00 (z) = x1 + x3 z + x5 z 2 + · · · + xn−1 z 2 −1 (12)
pentru rădăcinile de ordinul n 2 ale unităţii.
• Notăm cu ωj0 , j = 0, 1, . . . , n − 1 aceste rădăcini.
2
• Se pune problema dacă putem calcula X (ωj ), utilizând X 0 (ωj0 ) şi X 00 (ωj0 ).
8/ 17
Cuprins Transformata Fourier discretă Algoritm Algoritm ı̂mbunătăţit Algoritmul Cooley-Tukey Comentarii bibliografice
• Aceste relaţii arată că valorile X (ωj ) pot fi calculate dacă se cunosc X (ωj0 ) şi
X 00 (ωj0 ):
n
X (ωj ) = X 0 (ωj0 ) + ωj X 00 (ωj0 ), dacă j < (15)
2
şi
n
X (ωj ) = X 0 (ωj−n
0
) + ωj X 00 (ωj−n
0
), dacă j ≥ (16)
2
9/ 17
Cuprins Transformata Fourier discretă Algoritm Algoritm ı̂mbunătăţit Algoritmul Cooley-Tukey Comentarii bibliografice
10/ 17
Cuprins Transformata Fourier discretă Algoritm Algoritm ı̂mbunătăţit Algoritmul Cooley-Tukey Comentarii bibliografice
• În algoritmul de mai sus există dezavantajul că trebuie calculate atât rădăcinile
unităţii de ordinul n, cât şi cele de ordinul n
2.
• Acest dezavantaj poate fi eliminat dacă se schimbă instanţa problemei.
• Plecând de la observaţia că dacă se cunoaşte o rădăcină primitivă de ordinul n a lui
1, să zicem ω 6= 1, atunci celelalte rădăcini sunt puteri ale lui ω.
• Deci putem lua ωj = ω j .
• Instanţa problemei se modifică ı̂n felul următor: ı̂n loc să considerăm dat numai
polinomul X , presupunem date polinomul X de grad n − 1 şi o rădăcină primitivă de
ordinul n a unităţii.
• Ieşirea constă ı̂n determinarea valorilor X (ω 0 ), X (ω 1 ), X (ω 2 ), . . . , X (ω n−1 ).
• De asemenea, se ţine cont de faptul că dacă ω este o rădăcină primitivă de ordinul n
a unităţii, atunci ω 2 este o rădăcină primitivă de ordinul n
2 a unităţii.
11/ 17
Cuprins Transformata Fourier discretă Algoritm Algoritm ı̂mbunătăţit Algoritmul Cooley-Tukey Comentarii bibliografice
Notat, ii:
• X este polinomul cu coeficienţii x0 , x1 , . . . , xn−1 .
• ω este o rădăcină de ordinul n a unităţii.
FFT Recursiv 2(X , n, ω)
1 if n = 1
2 then X (ω 0 ) ← x0
n
3 else X 0 ← x0 + x2 z + · · · + xn−2 z 2 −1
n
4 X 00 ← x1 + x3 z + · · · + xn−1 z 2 −1
5 FFT Recursiv 2(X , 2 , ω )0 n 2
12/ 17
Cuprins Transformata Fourier discretă Algoritm Algoritm ı̂mbunătăţit Algoritmul Cooley-Tukey Comentarii bibliografice
Exemplu de execuţie
Exemplu de execuţie
X Y
Figura 3 : Implementare pe hipercub sau fluture - exemplu pentru n = 8
16/ 17
Cuprins Transformata Fourier discretă Algoritm Algoritm ı̂mbunătăţit Algoritmul Cooley-Tukey Comentarii bibliografice
Comentarii bibliografice
17/ 17