Bab 5: Discrete Fourier Transform dan FFT
1 Discrete Fourier Transform (DFT)
1.1 Definisi
Tujuan Belajar 1
Peserta dapat mendefinisikan DFT, dan menghitungnya.
Untuk melakukan analisis frekuensi dari sinyal waktu diskrit x(n) maka perlu mendapatkan representasi domain frekuensi dari sinyal yang biasanya dinyatakan dalam domain waktu. DFT digunakan untuk melakukan analisa frekuensi dari sinyal waktu diskrit.
)
(
)
(
n
intX
k
x
←
NPo
DFT
→
dimana n = 0, …N-1 dan k = 0, …N-1 DFT dihitung menggunakan persamaan :kn N N n W n x k X
∑
− = = 1 0 ) ( ) ( dimana jN N e W π 2 − = sehingga∑
− = − = 1 0 2 ) ( ) ( N n n N k j e n x k X πInvers DFT (IDFT) menghitung kembali representasi sinyal waktu diskrit x(n) dari sinyal yang dinyatakan dalam domain frekuensi X(ω).
∑
− = = 1 0 2 ) ( 1 ) ( N k n N k j e k X N n x π∑
− = − = 1 0 ) ( 1 N k kn N W k X N dimana N j N e W π 2 −= → akar ke N dari unity
Tujuan Belajar 2
Peserta dapat memandang DFT sebagai transformasi linier dan perkalian matriks terhadap vektor.
DFT dan IDFT dapat juga dipandang sebagai transformasi linier antara x(n) dan X(k), jadi
N N X
x ↔
dimana xN dan XN masing-masing adalah vektor dengan n buah elemen
− = ) 1 ( ) 0 ( N x x xN M − = ) 1 ( ) 0 ( N X X XN M Jika dinyatakan matriks WN
[
(i)(j)]
N ij
N w W
W = =
maka, N point DFT dapat dinyatakan dalam bentuk
N N N W x
X =
sedangkan IDFT dapat dihitung jika terdapat invers dari WN.
exist bila 1 1 − − = N N N N W X W x Contoh:
Hitung 4 point DFT dari sinyal x(n) = ( 0 1 2 3 )
= 9 4 6 4 3 4 6 4 4 4 2 4 3 4 2 4 1 4 4 1 1 1 1 1 1 1 W W W W W W W W W W ingat WNk+N2 =−WNk − − − − − − = j j j j 1 1 1 1 1 1 1 1 1 1 1 1 − − − + − = = → j j x W X 2 2 2 2 2 6 4 4
1.2 Hubungan DFT dengan Spektrum
Tujuan Belajar 3
Peserta dapat menghubungkan DFT dengan deret Fourier untuk sinyal periodik. Ingat Nk N k N W W +2 =− j W W W = − = = 9 4 6 4 4 4 1 1 N j e W π 2 − = 2 3 0 1
∑
− = = 1 0 2 ) ( N k n N k j k p n C e x π di mana∑
− = − = 1 0 2 ) ( 1 N n n N k j p k x n e N C πbila ambil x(n) = xp(n) untuk n = 0, …N-1 (satu perioda)
maka
∑
− = − = 1 0 2 ) ( 1 N n n N k j k x n e NC π yang tidak lain adalah X(k).
Tujuan Belajar 4
Peserta dapat menghubungkan DFT dengan spektrum dari sinyal aperiodik. Bila
∑
∞ −∞ = − = l p n x n lNx ( ) ( ) → xp(n) periodik dengan periode N
∑
∞ −∞ = − = n n N k j e n x k N X π π 2 ) ( 2∑
−∑
− = − = − − + + + = 1 1 0 2 2 ... ) ( ) ( ... N n N n n N k j n N k j e n x e n x π π∑ ∑
∞ −∞ = − + = − = l N lN lN n n N k j e n x 1 2 ) ( π[
p]
k N n N k j N n l n x FT e lN n x 2 / 2 1 0 ) ( ) ( ω π π = − − = ∞ −∞ = = − =∑ ∑
bila ≤ ≤ − = otherwise N n n x n x p 0 1 0 ) ( ) ( ˆ maka ( ( ))( )
2[ ]
ˆ( ) ( ) / 2 X k DFT x n X k n x FT ω=πk N= Nπ = = jadi x(n)→xp(n)→xˆ(n)1.3 Hubungan DFT Dengan Transformasi z Tujuan Belajar 5
Peserta dapat menghubungkan DFT dengan transformasi z dari sinyal (Langrange interpolator). n N k j e z z X k X( ) ( ) 2π = =
bila durasi x(n) ≤ N maka
∑
− = − = 1 0 ) ( ) ( N n n z n x z X∑
− = − − − − = 1 0 1 2 1 ) ( 1 N k j N z e k X N z Nk π ( )∑
− = − − − = − − = = → 1 0 / 2 1 ) ( 1 ) ( ) ( N k N k j N j e z e k X N e z X X j ω π ω ω ω → Lagrange Interpolation2 Sifat DFT
Tujuan Belajar 6Peserta mengerti dan dapat memanfaatkan sifat linier, periodik dan simetri sirkular. Sifat linier : Jika x1(n) ß N-DFT à X1(k) dan x2(n) ß N-DFT à X2(k)
maka untuk sebarang konstanta a1 dan a2 real atau kompleks a1.x1(n) + a2.x2(n) ß N-DFT à a1.X1(k) + a2.X2(k) Sifat periodik :
Jika x(n) ß N-DFT à X(k) maka
x(n + N) = x(n) untuk semua n X(k + N) = X(k) untuk semua k Sifat simetri sirkular
3 Filter Menggunakan DFT
Tujuan Belajar 7
Peserta dapat melakukan filtering linier dengan DFT, dan membandingkannya dengan konvolusi.
x(n) ↔ X(ω) h(n) ↔ H(ω)
y(n) ↔ Y(ω)
X(ω) à H(ω) àY(ω)=H(ω)X(ω) Assumsikan FIR dan Finite duration
Let : x(n) = 0, n < 0 dan n ≥ L
→ durasi L h(n) = 0, n < 0 dan n ≥ M
→ durasi M Y(ω) = H(ω) X(ω) durasi : L + M- 1
Bila Y(ω) disample maka sampling harus N ≥ L + M -1
agar 2 y(n) N k y ← →IDFT π maka Nk Y k Y( )= (ω)ω=2π k = 0, …, N-1
( )
( ) ( )
padding zero 1 1 ,..., 0 , + + ≥ ↓ ↓ − = = → M L N N k k H k X k Y ) ( ) (k y n Y ← →IDFT → Contoh : FIR : h(n) = {1, 2, 3} X(n) = {1, 2, 2, 1}Cari output dengan menggunakan DFT dan IDFT L = 4, M =3 → N = 6
Pilih N = 8 (agar sesuai dengan FFT)
( )
∑
= − = 7 0 2 8 ) ( ) ( n n j k e n k k H π7 ,..., 0 , 2 3 2 1 ) ( 8 3 2 4 2 8 2 = + + + = e− e− e− k k H k j k j k j π π π
∑
= −=
7 0 8 2)
(
)
(
n n k je
n
h
k
X
π 7 ,..., 0 , 2 2 2 1 8 3 4 8 + + = + = e− e− e− k k j k j k jπ π π 6 ) 0 ( = X + + + = 2 2 3 4 2 2 2 ) 1 ( j X j X(2)=−1− − + − = 2 2 3 4 2 2 2 ) 3 ( j X 0 ) 4 ( = X − + − = 2 2 3 4 2 2 2 ) 5 ( j X j X(6)=−1+ + + + = 2 2 3 4 2 2 2 ) 7 ( j X 6 ) 0 ( = H H(1)=(
1+ 2) (
− j3+ 2)
2 2 ) 2 ( j H =− − H(3)=(
1− 2) (
+ j3− 2)
2 ) 4 ( = H H(5)=(
1− 2) (
− j3− 2)
2 2 ) 6 ( j H =− + H(7)=(
1+ 2) (
+ j3+ 2)
Y(k) = H(k) X(k) Y(0) = 36 Y(1) = -14.07 - j17.48 Y(2) = j4 Y(3) = 0.07 + j0.515 Y(4) = 0 Y(5) = 0.07 - j0.515 Y(6) = -j4 Y(7) = -14.07 + j17.48 → IDFT∑
= = 7 0 8 2 ) ( ) ( k n k j e k Y n y π n = 0, 1, …,7 → y(n) = {1, 4, 9, 11, 8, 3, 0, 0} ↓↓zeropad akibat 8 point
→ seakan lebih sukar dari konvolusi tetapi akan menguntungkan bila M > 40-43
→ aliasing terjadi bila N < M + L -1
Peserta dapat melakukan filtering linier dengan DFT, untuk sinyal yang panjang, melalui metoda overlap-save dan overlap-add.
Untuk melakukan filtering sinyal panjang dapat dilakukan dengan cara Block-by-Block - Overlap-save method
- Overlap-odd method Asumsi FIR → durasi M
Blok → durasi L Asumsi L >> M
• Metoda overlap-save
N = L + M -1 → N point DFT dan IDFT
Untuk blok -m
)
(
)
(
)
(
ˆ
k
H
k
X
k
Y
M=
M k = 0, 1, …, N-1 IDFT →)}
1
(
ˆ
),...,
(
ˆ
),
1
(
ˆ
),...,
1
(
ˆ
),
0
(
ˆ
{
)
(
ˆ
n
=
y
y
y
M
−
y
M
y
N
−
y
m m m m m m ↓ ↓M-1 point L hasil konvolusi datang dari old data
→ buang Untuk blok m+1
- ambil M-1 point terakhir di blok m untuk digunakan sebagai old data pada bagian berikut
- ulangi
x1(n) = {0, 0, …0, x(0), x(1), …x(L-1)}
• Overlap-add Method
4 Fast Fourier Transform (FFT)
Tujuan Belajar 9 Peserta mengerti konsep FFT dan butterfly. Kebutuhan kalkulasi DFT
∑
− = = 1 0 ) ( ) ( N n kn N W n x k X N j N e W jN N π π π 2 sin 2 cos 2 − = = − h(n) L-1 x(n) x(n) L New Data Old New Zero Padding M-1( )
k
X
DFT N
→
←
− M( )
k
H
DFT N
→
←
−karena x(n) = xr(n) + jxI(n) bisa bernilai kompleks, maka X(k) = XR(k) + jXI(k) 1.
∑
− = + = 1 0 2 sin ) ( 2 cos ) ( ) ( N n I r R n N k n x n N k n x k X π π 2.∑
− = − − = 1 0 2 cos ) ( 2 sin ) ( ) ( N n I R I n N k n x n N k n x k X π π→ perlu → 2N2 evaluasi trigonometric function + → 4N2 real multiplications
+ → 4N(N-1) real addition
+ → sejumlah indexing + addressing operators
→ Sering disebut O(N2)
→ Gunakan fakta : Nk k N W W +N2 =− (simetri) k N k N
W
W
+N2=
untuk menekan komputasi
⇒ Fast algorithms tersedia untuk N = r1, r2, …rv di mana {rj} = prime
Tujuan Belajar 10
Peserta dapat menjelaskan FFT Radix-2 desimasi dalam waktu.
• Radix-2 FFT] - Kasus khusus N = r x r x r x … xr = rv - R =2 → radix-2 FFT ⇒ N = 2v Decimation in Time ) ( ) (n X k x ← →FFT 1. 2 1 2 1 , 2 ) 1 2 ( ) ( 1 2 ,..., 1 , 0 ) 2 ( ) ( ) ( f f sequences bagi n x n f N n n x n f n x + = − = =
⇒ f1 dan f2 diperoleh melalui desimasi x(n)
F
1(n)
x(n
2.
∑
− = = 1 0 ) ( ) ( N n kn N W n x k X k = 0, 1, …, N-1∑
∑
− − + = odd n kn N even n kn N x nW W n x( ) ( )∑
∑
− = + − = + + = 1 0 ) 1 2 ( 1 0 2 2 2 ) 1 2 ( ) 2 ( N N m m k N m mk N x m W W m x namun WN2 =WN/2, maka∑
∑
− = + − = + = 1 0 ) 1 2 ( 2 1 0 1 2 2 2 2 ( ) ) ( ) ( N N N N m m k k N m km W m f W W m f k X 1 ,... 1 , 0 ) ( ) ( ) (k =F1 k +W F2 k k= N− X Nk di mana F1(k) : N/2 point DFT dari f1(m) F2(k) : N/2 point DFT dari f2(m)Karena F1(k) dan F2(k) periodik, dengan perioda N/2,
F1(k+N/2) = F1(k) dan F2(k+N/2) = F2(k) Juga WNk+N2 =−WNk, maka ) ( ) ( ) (k F1 k W F2 k X = + Nk k = 0, …(N/2)-1 ) ( ) ( ) 2 (k N F1 k W F2 k X + = − Nk k= 0, …(N/2)-1 Bila G1(k)=F1(k) ) ( ) ( 2 2 k W F k G = Nk DFT po k G k G N k X k G k G k X int 2 ) ( ) ( ) 2 ( ) ( ) ( ) ( 2 1 2 1 − − = + + = Lanjutkan s po N n f n V s po N n f n V f int 4 ) 1 2 ( ) ( int 4 ) 2 ( ) ( 1 12 1 11 1 + = = s po N n f n V s po N n f n V f int 4 ) 1 2 ( ) ( int 4 ) 2 ( ) ( 2 22 2 1 2 2 + = = s po N k k V W k V k F Nk int 4 ) ( ) ( ) ( 11 12 1 2 ⇒ + =
s po N k k V W k V k F N k N int 4 ) ( ) ( ) ( 4 11 12 1 2 ⇒ − = + s po N k k V W k V k F Nk int 4 ) ( ) ( ) ( 21 22 2 2 ⇒ + = s po N k k V W k V k F N k N int 4 ) ( ) ( ) ( 4 21 22 2 2 ⇒ − = +
di mana vij←→Vij(k) N/4 DFT point → O(nlogn)
• Ilustrasi untuk 8 samples
V11(n) = f1(2n)= x(4n) = {x(0), x(4)}
V12(n) = f1(2n+1) = x(2(2n+1)) = x(4n+2) ={x(2), x(4)}
V21(n) = f2(2n) = x(2(2n+1)) = x(4n+2) = {x(1), x(5)}
V22(n) = f2(2n+1) = x(2(2n+1)+1) = x(4n+3) = {x(3), x(7)}
Tujuan Belajar 11