1 . Dyskretna transformata Fouriera
Problem: f jest funkcją o okresie a. Znamy jej wartości w N punktach równomiernie rozłożonych na odcinku [0, a):
f k a N
!
= yk dla k = 0, 1, 2, . . . , N − 1.
Mówiąc inaczej, sygnał f jest próbkowany w regularnych odstępach czasu o długości Na. Na podstawie tych informacji chcemy aproksymować współ- czynniki cn szeregu Fouriera funkcji f .
Będziemy również zakładać, że szereg Fouriera funkcji f jest punktowo zbieżny do f i w punktach nieciągłości t zachodzi równość
f (t) = f (t+) + f (t−)
2 .
Mając dane N punktów będziemy wyznaczać N współczynników Fo- uriera. Wiedząc, że cn → 0 przy n → ∞, wyznaczymy współczynniki dla n = −N2, . . . ,N2 − 1 (lub n = −N −12 , . . . ,N −12 , jeśli N jest nieparzyste). Te założenia pozwalają wyznaczyć przybliżoną wartość całki
cn = 1 a
Z a
0 f (t)e−2iπnatdt.
Sposób 1. Stosujemy metodę trapezów:
c0n = 1 a
N −1 X k=0
f k a N
!
e−2iπnNk (k + 1)a
N − k a N
!
= 1 N
N −1 X k=0
yke−2iπnNk
lub inaczej
c0n = 1 N
N −1 X k=0
ykωN−nk, gdzie ωN = e2iπN1.
Sposób 2. Możemy wyznaczyć współczynniki Fouriera cNn wielomianu try- gonometrycznego
P (t) =
N 2−1
X n=−N2
cNn e2iπnat,
który interpoluje funkcję f w punktach kNa, k = 0, 1, 2, . . . , N − 1. Musimy rozwiązać układ równań liniowych rzędu N:
N 2−1
X n=−N2
cNnωNnk = yk, k = 0, 1, 2, . . . , N − 1.
Przesuwamy dla wygody ujemne indeksy o N w prawo. Możemy to zrobić, gdyż wyrażenie ωkN jest N -okresowe (ze względu na zmienną k). Stąd
−1 X n=−N2
cNnωNnk =
N −1 X p=N2
cNp−NωNk(p−N ) =
N −1 X p=N2
cNp−NωNkp =
N −1 X n=N2
cNn−NωNkn.
Definiujemy:
Yn =
cNn dla 0 ¬ n ¬ N2 − 1 cNn−N dla N2 ¬ n ¬ N − 1 i wówczas układ równań ma postać
N −1 X n=0
YnωNnk = yk, k = 0, 1, 2, . . . , N − 1.
Niech 0 ¬ p ¬ N − 1. Mnożymy obie strony równań przez ωN−kp i doda- jemy równania stronami:
N −1 X k=0
ykωN−kp =
N −1 X k=0
N −1 X n=0
YnωNk(n−p) =
N −1 X n=0
Yn
N −1 X k=0
ωNk(n−p).
Zauważmy, że
N −1 X k=0
ωNk(n−p) =
0, jeśli n 6= p N, jeśli n = p, a więc
N −1 X k=0
ykωN−kp = N Yp
i stąd nieznane Yn są dane wzorami Yn = 1
N
N −1 X k=0
ykωN−nk, n = 0, 1, 2, . . . , N − 1.
Wniosek: Całkując metodą trapezów, otrzymujemy N przybliżonych współ- czynników Fouriera cNn, równych współczynnikom wielomianu trygonome- trycznego interpolującego funkcję f w punktach tk = kNa. Mamy dwie rów- noważne formuły:
yk =
N −1 X n=0
YnωNnk, k = 0, 1, 2, . . . , N − 1,
Yn = 1 N
N −1 X k=0
ykωN−nk, n = 0, 1, 2, . . . , N − 1.
Przybliżone współczynniki szeregu Fouriera mają postać cn ≈ cNn =
Yn, gdy 0 ¬ n < N2 Yn+N, gdy − N2 ¬ n < 0.
Definicja: Dyskretną transformatą Fouriera (DFT) ciągu y0, y1, . . . , yN −1
nazywamy ciąg liczbowy Y0, Y1, . . . , YN −1 dany wzorem Yn = 1
N
N −1 X k=0
ykωN−nk, n = 0, 1, 2, . . . , N − 1.
Piszemy
Y = (Y0, Y1, . . . , YN −1) = FN((y0, y1, . . . , yN −1)).
Wniosek: FN : CN → CN jest odwracalnym odwzorowaniem liniowym.
Odwzorowanie odwrotne dane jest wzorem yk =
N −1 X n=0
YnωNnk, k = 0, 1, 2, . . . , N − 1.
FN−1 zadaje się macierzą
ΩN = (ωNnk) =
1 1 1 . . . 1
1 ωN ω2N . . . ωN −1N 1 ω2N ω4N . . . ωN2(N −1)
... ... ... ...
1 ωN −1N ωN2(N −1) . . . ω(N −1)N 2
.
Macierzą odwzorowania FN jest
Ω−1N = 1 NΩN.
Uwaga: Pamiętając, że yk = f (kNa) i f jest funkcją o okresie a, wygodnie jest rozważać ciąg (yk) jako ciąg N -okresowy, określony dla k ∈ Z. Wzór
Yn = 1 N
M +N −1 X k=M
ykω−nkN
zadaje okresowe rozszerzenie ciągu Yn niezależnie od wyboru M : YN l+n = 1
N
M +N −1 X k=M
ykωN−(N l+n)k = 1 N
M +N −1 X k=M
ykωN−nk = 1 N
N j+s+N −1 X k=N j+s
ykωN−nk =
= 1 N
N −1 X k=0
yN j+s+kω−n(N j+s+k)
N = 1
N
N −1 X k=0
ys+kωN−n(s+k) = 1 N
N −1 X k=0
ykωN−nk = Yn. Wynika stąd, że także współczynniki cNn tworzą ciąg okresowy. Należy jed- nak pamiętać, że cNn aproksymują cn tylko dla −N2 ¬ n < N2 , bowiem cn → 0 przy n → ∞.
DFT ciągów rzeczywistych
W przypadku ciągów rzeczywistych przy wyznaczaniu DFT można zre- dukować liczbę wykonywanych operacji o połowę, stosując do dwóch takich ciągów pojedynczą transformatę zespoloną.
Chcemy wyznaczyć DFT dwóch ciągów rzeczywistych (xk) i (yk):
FN :(xk) → (Xn), FN :(yk) → (Yn).
Wiemy, że
XN −n = Xn i YN −n = Yn.
Niech zk = xk+ iyk i niech (Zn) oznacza transformatę ciągu (zk):
FN : (zk) → (Zn).
Na mocy liniowości
Zn = Xn+ iYn,
przy czym Xn i Yn niekoniecznie muszą być rzeczywiste, i wtedy Xn =1
2(Zn+ ZN −n), Yn =1
2(Zn− ZN −n).
Wystarczy wyznaczyć te wartości dla n = 0, 1, . . . ,N2 , ponieważ wartości dla n pomiędzy N2 i N − 1 pojawią się jako sprzężenia.
Zależność pomiędzy rzeczywistymi a przybliżonymi współczynni- kami Fouriera
Załóżmy dla ułatwienia, że funkcja okresowa f daje się przedstawić w postaci
f (t) =
∞ X n=−∞
cne2iπnat
i szereg współczynników jest absolutnie zbieżny:
∞ X n=−∞
|cn| < +∞.
Możemy wówczas zmienić kolejność sumowania i sumować najpierw wyrazy z indeksami mającymi ustaloną resztę modulo N, a potem sumować po tych resztach. Biorąc t = kNa, otrzymujemy:
f (k a
N) = yk =
∞ X m=−∞
cmωNmk =
N −1 X n=0
∞ X q=−∞
cn+qN
ωNnk,
gdzie m = n + qN , n ∈ {0, 1, . . . , N − 1}, q ∈ Z. Otrzymujemy:
cNn =
∞ X q=−∞
cn+qN.
Powyższa równość wyraża przybliżone współczynniki poprzez współczynni- ki właściwe i daje wzór na błąd aproksymacji:
cNn − cn = X
q6=0
cn+qN.
Widzimy więc, że dla ustalonego N im szybciej współczynniki cn zbiegają do zera przy n → ∞, tym dokładniejsze będzie przybliżenie.
Własności DFT
Fakt: Jeśli FN : (yk) → (Yn), to a) FN : (y−k) → (Y−n),
b) FN : (yk) → (Yn), c) FN : (y−k) → (Yn).
Dowód:
a) Niech FN((y−k)) = (Yn0). Wówczas Yn0 = 1
N
N −1 X k=0
y−kω−nkN = 1 N
0 X k=−N +1
ykωNnk = Y−n.
b) Niech FN((yk)) = (Yn0). Wówczas Yn0 = 1
N
N −1 X k=0
ykω−nkN = 1 N
N −1 X k=0
ykωNnk = Y−n.
c) Niech FN((y−k)) = (Yn0). Wówczas Yn0 = 1
N
N −1 X k=0
y−kω−nkN = 1 N
N −1 X k=0
y−kωNnk = 1 N
0 X k=−N +1
ykωNnk = Yn.
Wniosek: Jeśli FN : (yk) → (Yn), to zachodzą własności:
a) (yk) jest parzysty (nieparzysty) ⇐⇒ (Yn) jest parzysty (nieparzysty), b) (yk) jest rzeczywisty ⇐⇒ Y−n = Yn dla każdego n ∈ Z,
c) (yk) jest parzystym ciągiem liczb rzeczywistych ⇐⇒ (Yn) jest parzystym ciągiem liczb rzeczywistych,
d) (yk) jest nieparzystym ciągiem liczb rzeczywistych ⇐⇒ (Yn) jest nie- parzystym ciągiem liczb czysto urojonych.
Fakt: Niech (xk) i (yk) będą dwoma zespolonymi ciągami o okresie N i niech (Xk) i (Yk) oznaczają ich DFT.
a) Transformata splotu cyklicznego, tzn. ciągu zdefiniowanego wzorem zk =
N −1 X q=0
xqyk−q, k ∈ Z, ma postać
FN : (zk) → (Zn = N XnYn).
b) Transformata iloczynu ciągów (xk) i (yk) ma postać FN : (pk = xkyk) → (Pn =
N −1 X q=0
XqYn−q).
Dowód:
a) Z definicji Zn = 1
N
N −1 X k=0
xqyk−qωN−nk = 1 N
N −1 X q=0
xqωN−nq
N −1 X k−0
yk−qωN−n(k−q) = N XnYn.
b) Wyznaczamy odwrotną transformatę ciągu (Pn):
pk =
N −1 X n=0
N −1 X q=0
XqYn−qωNnk = xkyk.
Fakt: Jeśli FN : (yk) → (Yn), to
N −1 X k=0
|yk|2 = N
N −1 X n=0
|Yn|2.
Dowód:
N
N −1 X n=0
|Yn|2 = NYTY = YTΩNTΩTNY = (ΩNY )T(ΩNY ) = yTy =
N −1 X k=0
|yk|2.