DSP 6
The Fast Fourier Transform (FFT)

การแปลงฟูริเยร์ แบบเร็ว

รศ.ดร. พีระพล ยุวภูษิตานนท์
ภาควิชา วิศวกรรมอิเล็กทรอนิกส...
เปาหมาย
้
• นศ รูจกความหมายของ การแปลงฟูรเยร์แบบเร็ว (Fast
้ ั
ิ
Fourier Transform :FFT) และผลการแปลงจาก
สัญญาณในโดเมนเวลา...
DFT คํานวณช้ า...

เพราะการคณของเลขเชิงซ้ อน
ู

• จากเรืองของ DFT
่
X (k )
=

โดย

N −1

nk
x ( n )WN , k 0,1,..., N − 1
=...
จํานวนการคูณและบวกเลขจริงต่ อ
การคูณเลขเชิงซ้ อนหนึ่งครัง
้

ตัวอย่าง จงหาจํานวนการคูณและบวก สําหรับการเลขเชิงซ้อนข้างล่าง...
จํานวนการคูณเลขเชิงซ้ อนสําหรั บ 2กรณี N=2

point DFT

X (0)  W20

 X (1)  =  0

 W2

คูณ =
X (0)

W20   x(0) ...
จํานวนการคูณเลขเชิงซ้ อนสําหรั บ 4กรณี N=4

คูณ

point DFT

 X (0)  W40
 X (1)   0

 = W4
 X (2)  W40

 
X ...
วิธีลดจํานวนการคูณเลขเชิงซ้ อน
ลองมาดูวากรณี N=2 เราได้
่
N
= 2

เราได้

1

X (k ) = x(n)W
∑
n =0

นันคือ
่

nk
2

→ W2

=...
วิธีลดจํานวนการคูณเลขเชิงซ้ อน (ต่ อ)
แต่เนื่องจาก
ซึงเป็ นเลขจํานวนจริง ดังนัน
่
้

W =1
0
2

W = −1
1
2

หรือ

(0)
X = x...
The Fast Fourier Transform (FFT)
เร็ว...เพราะการสลับลําดับข้ อมูล

• FFT เป็ นชือเรียกโดยรวมๆของ อัลกอริธมใดๆ ทีมการ
่
ึ
่...
x(n) for 4-point DFT (N=4)

x(0) x(1) x(2) x(3)
n=0,1,2,3

CESdSP

EEET0485 Digital Signal Processing
http://embedsigproc....
x(n) for 4-point DFT (N=4)

x(0)
x(1)

x(2)
x(3)

x(2n)
x(2n+1)

n=0,1

= เลขคู่ (Even)
CESdSP

EEET0485 Digital Signal Pr...
3

X (k )

=
∑ x(n)W , k
kn
4

n =0

= x(0)W

k .0
4

0,1, 3, 4

+ x(1)W

k .1
4

+ x(2)W

= เลขคู่ (Even)
CESdSP

EEET048...
จัดเรี ยงข้ อมูล
3

=
∑ x(n)W , k

X (k )

n =0
1

kn
4

∑ x(2n)W

=

0,1, 3, 4

1

+ ∑ x(2n + 1)W

kn
4
n 0= 0
n

kn
4

=...
X (k ) = x(0)W

k .0
4

+ x(2)W

k .2
4

+ x(1)W

k .1
4

k .(2 +1)
4

+ x(3)W

k .3
4

= W
W
= W W
k .3
4

CESdSP

EEET04...
X (k ) = x(0)W

k .0
4

+ x(2)W

k .2
4

−2π .k .2
4

+ W [ x(1)W
k .1
4

−2π .k
42

k .0
4

−2π .k
2

+ x(3)W

k .2
4

W
...
X (k ) = x(0)W

k .0
2

+ x(2)W

k .1
2

+ W [ x(1)W
k .1
4

k .0
2

+ x(3)W ]
k .1
2

1

X 1 (k )

=
∑ x(2n)W , k
n =0
1
...
ผลการแปลง DFT X(k) ,

k=0,1,2,3

=
X (0) X 1 (0) + W X 2 (0)
0
4

=
X (1) X 1 (1) + W X 2 (1)
1
4

=
X (2) X 1 (2) + W X 2...
X (2) X 1 (2) + W X 2 (2)
=
2
4

= x(0)W

2.0
2

( k + N 2).n
N 2

−2π .( k + N 2).n
N 2

= e= e
W

+ x(2)W

2.1
2

−2π .k...
2.n
2

W

−2π .(0 + 2).n
2

e= e

−2π .0.n
2

−2π .2.n
2

= W
e
 

0
N 2

=1

3.n
2

W

−2π .(1+ 2).n
2

e= e

−2π .1.n...
ผลการแปลง DFT X(k) ,
(ลดรูป)

k=0,1,2,3

X (0) X 1 (0) + W X 2 (0)
=
0
4

X (1) X 1 (1) + W X 2 (1)
=
1
4

X (2) X 1 (0) +...
บัตเตอร์ ฟลาย Butterfly
• เป็ นชือเรียก ของ กราฟการไหลของสัญญาณ (signal
่
flow graph) โดยหนึ่ง บัตเตอร์ฟลาย มีการคูณเลข
1
...
X (0) X 1 (0) + W40 X 2 (0)
หา =
x (0)

X 1 (0)

การรวม (Recomposition)

X 1 (1)
x (2)

x (1)

x (3)

X (0)

W40
X (1)

X ...
หา

X (1) X 1 (1) + W41 X 2 (1)
=
x (0)

X 1 (0)

X 1 (1)

X (0)

W40

x (2)

x (1)

x (3)

X (1)

X 2 (0)

X 2 (1)

W41

...
หา

X (2) =(2) + W X 2 (2) =(0) + W X 2 (0)
X1
X1
2
4

2
4

X 1 (0)

X (0)

x (0)

W40 = 1

X 1 (1)

X (1)

x (2)

W41

X ...
หา

X (3) =(3) + W43 X 2 (3) =(1) + W43 X 2 (1)
X1
X1
X 1 (0)

X (0)

x (0)

W40 = 1

X 1 (1)

X (1)

x (2)

W41

X 2 (0)
...
ผลลัพท์ทายสุดคือ 4-point DIT-FFT
้
x(0)

1

X 1 (0)

X (0)

W40
X 1 (1)

x(2)
x(1)
x(3)

CESdSP

W40 = 1
X (1)

W42

1

W4...
x(n) for 8-point DFT (N=8)

x(0) x(1) x(2) x(3) x(4) x(5) x(6) x(7)

CESdSP

EEET0485 Digital Signal Processing
http://emb...
x(n) for 8-point DFT (N=8)

x(0)
x(1)

CESdSP

x(2)
x(3)

x(4)
x(5)

EEET0485 Digital Signal Processing
http://embedsigpro...
8-point DIT-FFT
N =8 
8 →W

2π
−j
e 8

−j

π

= 2− j 2
e 4 =

7

= 0,..., 7
x(n)W8nk ,
k
∑

X (k )

n =0

= x(0)W80.k + x...
8-point DIT-FFT (ต่ อ)
X (k ) = x(0)W80.k + x(2)W82.k + x(4)W84.k + x(6)W86.k
+W81.k  x(1)W80.k + x(3)W82.k + x(5)W84.k +...
ลดรูปลงได้ อีกไหม?
ได้ใช้ประโยชน์จากความเป็ นคาบของสัญญาณ
X = X 1 ( k + 4)
1 (k )

X = X 2 ( k + 4)
2 (k )

X (0) X 1 (0) ...
8-point บัตเตอร์ ฟลาย
การรวม (Recomposition)
X 1 (0)

x (0)
x (2)
x (4)

4-point
DFT

x (5)
x (7)
CESdSP

X 1 (2)

W81

X ...
แต่ เรายังลดรูปได้ อีก

จาก สมการ 8-point DFT ทีถกลดลงเหลือ 4-point DFTx2
่ ู
X ( k ) = 81.k X 2 ( k ),
X 1 (k ) + W

k=
0...
แยก 4-point DFT ออกเป็ น 2-point DFT
สําหรับ x(0),x(2),x(4) และ x(6)
X 1 (0)

x (0)
x (2)
x (4)
x (6)

4-point
DFT

x(0)

...
สําหรับ x(1),x(3),x(5) และ x(7)
X ( k ) = 81.k X 2 ( k ),
X 1 (k ) + W

k=
0,..., 7

X 2 (k ) = x(1)W40.k + x(3)W4k + x(5)...
แยก 4-point DFT ออกเป็ น 2-point DFT
สําหรับ x(1),x(3),x(5) และ x(7)
X 2 (0)

x(1)
x(3)
x(5)
x(7)

4-point
DFT

X 2 (1)

X...
DIT-FFT สําหรั บ N=8
X (0)

x (0)
W80

x (4)

W80

W80

X (1)

W84

W82

x (2)
W80

X (2)

W84
W82

x (6)

W86

W84

W81

...
สรุ ป
8-point DFT แตกตัวออกได้ จนเหลือ 2-point
DFT

8-point DFT
4-point DFT + Wk8 x 4-point DFT
2-point DFT + W4k x 2-poin...
กรณี 8-point
x (0)
x (4)
x (2)
x (6)
x (1)
x (5)
x (3)
x (7)
CESdSP

2 − point
DFT

X 1 (0)

ตัวรวม
4-point DFT

2 − point...
กรณี N-point

2-point DFT
2-point DFT


2-point DFT


2-point DFT



2-point DFT
CESdSP




DIT-FFT

N /4 N /4
N /2

...
ทําไม FFT ใช้ การคํานวณเพียง N log2N ?
เมือเราให้ R เป็ น จํานวนขัน (stage) ที่มีการรวม เราจะได้วา
่
้
่
N
= 2R
2
log 2 N ...
จํานวนขันการรวม (R)
้
4-point DFT
2
4
2

จํานวนครัง
้
การรวม (R)=

8-point DFT

1
จํานวนครัง
้
การรวม (R)=

CESdSP

EEET04...
จํานวนบัตเตอร์ ฟลายต่ อคอลัมน์ (B)
4-point DFT

2
2

8-point DFT

2
2
2
2

4

จํานวนบัตเตอร์
2 2
ฟลาย (B)=
2
จํานวนคอลัมน์...
จํานวนการคูณเลขเชิงซ้ อน
= จ.น.บัตเตอร์ฟลายต่อคอลัมน์ X จ.น.คอลัมน์ X มีการคูณ 2 ครังต่อบัต
้
เตอร์ฟลาย
= ( N / 2) × log 2...
เปรียบเทียบจํานวนครังการคูณเลขเชิงซ้ อน
้
ของ DFT และ FFT
เราลดการคํานวณ จาก

N2 อ
เหลื

N
2
4
8
:
256
512
1,024
CESdSP

D...
ปรั บปรุ งบัตเตอร์ ฟลาย

จาก

r
WN

เราทราบว่า
ดังนัน
้

N
WN / 2  1

r= เลขใดๆ

r
WN + N / 2

1
-1
ทําให้เหลือ จ.น.การค...
บัตเตอร์ ฟลาย 4-point DFT ที่ถูกลดรูป
x (0)

x (2)

x (1)

1

1

X 1 (0)

1
1 X 1 (1)
-1
1

X 2 (0)

W40

x (3)

1
1 X 2 (...
สรุ ป
• FFT ก็คอ DFT แต่เป็ นการสลับตําแหน่ งข้อมูลและเทค
ื
นิกการรวมสัญญาณ เพือย่อยให้จานวนการแปลงลดรูป
่
ํ
ลง วิธการนี้ ...
Upcoming SlideShare
Loading in …5
×

Dsp 2556 6

426 views

Published on

  • Be the first to comment

  • Be the first to like this

Dsp 2556 6

  1. 1. DSP 6 The Fast Fourier Transform (FFT) การแปลงฟูริเยร์ แบบเร็ว รศ.ดร. พีระพล ยุวภูษิตานนท์ ภาควิชา วิศวกรรมอิเล็กทรอนิกส ์ CESdSP EEET0485 Digital Signal Processing http://embedsigproc.wordpress.com Assoc. Prof. Dr. P.Yuvapoositanon DSP6-1
  2. 2. เปาหมาย ้ • นศ รูจกความหมายของ การแปลงฟูรเยร์แบบเร็ว (Fast ้ ั ิ Fourier Transform :FFT) และผลการแปลงจาก สัญญาณในโดเมนเวลา • นศ เข้าใจกระบวนการลดความซับซ้อนด้วยเทคนิก FFT CESdSP EEET0485 Digital Signal Processing http://embedsigproc.wordpress.com Assoc. Prof. Dr. P.Yuvapoositanon DSP6-2
  3. 3. DFT คํานวณช้ า... เพราะการคณของเลขเชิงซ้ อน ู • จากเรืองของ DFT ่ X (k ) = โดย N −1 nk x ( n )WN , k 0,1,..., N − 1 = ∑ n =0 เลขเชิงซ้อน • สังเกตว่า แต่ละค่าของ X(k) นัน ต้องทําการคูณจํานวนเชิงซ้อน ้ • ถึง N ค่า คือ x(0) ถึง x(N-1) ้ • และ ถ้าต้องการ X(k), โดยที่ k=0 ถึง N-1 ก็ตองคูณจํานวน NxN หรือ เชิงซ้อน อีก N ครัง กลายเป็ น ้ ่ • ซึงเป็ นการกินกําลังงานของโปรเซสเซอร์อย่างมาก !!! CESdSP EEET0485 Digital Signal Processing http://embedsigproc.wordpress.com Assoc. Prof. Dr. P.Yuvapoositanon 2 N DSP6-3
  4. 4. จํานวนการคูณและบวกเลขจริงต่ อ การคูณเลขเชิงซ้ อนหนึ่งครัง ้ ตัวอย่าง จงหาจํานวนการคูณและบวก สําหรับการเลขเชิงซ้อนข้างล่าง = โดยที่ X a1 + jb1 XY Y a2 + jb2 = วิธทา ี ํ c1 (a1 + jb1 ).(a2 + jb2 ) = + jd1 มีการคูณ สี่ครัง ้ (a1 + jb1 ).(a2 + jb2 ) = a1a2 − b1b2 + j (b1a2 + a1b2 ) CESdSP มีการบวกสามครัง ้ EEET0485 Digital Signal Processing http://embedsigproc.wordpress.com Assoc. Prof. Dr. P.Yuvapoositanon DSP6-4
  5. 5. จํานวนการคูณเลขเชิงซ้ อนสําหรั บ 2กรณี N=2 point DFT X (0)  W20   X (1)  =  0   W2 คูณ = X (0) W20   x(0)   1 W2   x(1)  x(0)W + x(1)W 0 2 0 2 2 ครัง ้ = x(0)W + x(1)W X (1) 2 รอบ CESdSP 0 2 1 2 มีการคูณเลขเชิงซ้อน 4 ครัง ้ EEET0485 Digital Signal Processing http://embedsigproc.wordpress.com Assoc. Prof. Dr. P.Yuvapoositanon DSP6-5
  6. 6. จํานวนการคูณเลขเชิงซ้ อนสําหรั บ 4กรณี N=4 คูณ point DFT  X (0)  W40  X (1)   0   = W4  X (2)  W40    X (3)  W40   W40 W41 W40 W42 W42 W44 W43 W46 W40   x(0)    W43   x(1)  W46   x(2)   9 x(3)  W4    X (0) = x(0)W40 + x(1)W40 + x(2)W40 4 Wครัง ้ + x(3) 0 4 X (1) = x(0)W40 + x(1)W41 + x(2)W42 + x(3)W43 X (2) = x(0)W40 + x(1)W42 + x(2)W44 + x(3)W46 4 รอบ X (3) = x(0)W40 + x(1)W43 + x(2)W46 + x(3)W49 CESdSP มีการคูณเลขเชิงซ้อน 16 ครัง ้ EEET0485 Digital Signal Processing http://embedsigproc.wordpress.com Assoc. Prof. Dr. P.Yuvapoositanon DSP6-6
  7. 7. วิธีลดจํานวนการคูณเลขเชิงซ้ อน ลองมาดูวากรณี N=2 เราได้ ่ N = 2 เราได้ 1 X (k ) = x(n)W ∑ n =0 นันคือ ่ nk 2 → W2 = W x(0) 0.k 2 +x(1)W 1.k 2 , k= 0,1 = x(0).1 + x(1)W X (0) 0 2 = x(0).1 + x(1)W X (1) 1 2 CESdSP EEET0485 Digital Signal Processing http://embedsigproc.wordpress.com Assoc. Prof. Dr. P.Yuvapoositanon DSP6-7
  8. 8. วิธีลดจํานวนการคูณเลขเชิงซ้ อน (ต่ อ) แต่เนื่องจาก ซึงเป็ นเลขจํานวนจริง ดังนัน ่ ้ W =1 0 2 W = −1 1 2 หรือ (0) X = x(0) + x(1) X= x(0) − x(1) (1) โดยการคํานวณ WN ไว้ก่อน จะทําให้ลดการคูณเลขลง ซึงอาจจะทําให้ไม่มการคูณเลขเชิงซ้อนเลย!!! ่ ี CESdSP EEET0485 Digital Signal Processing http://embedsigproc.wordpress.com Assoc. Prof. Dr. P.Yuvapoositanon DSP6-8
  9. 9. The Fast Fourier Transform (FFT) เร็ว...เพราะการสลับลําดับข้ อมูล • FFT เป็ นชือเรียกโดยรวมๆของ อัลกอริธมใดๆ ทีมการ ่ ึ ่ ี แปลง DFT อย่างเร็ว • วิธ“แบ่งแยกแล้วปกครอง (Divide and conquer)” ก็ ี เป็ นหนึ่งวิธทจะลดจํานวนการคูณเลขเชิงซ้อนลง ี ี่ • เราใช้ การลดทอนทางเวลา (Decimation in time) หรือ DIT กับ N สัญญาณโดเมนเวลา โดยที่ N เป็ นเลข กําลังของ 2 หรือเรียกว่า Radix-2 ดังนันชือเต็มเรียกว่า ้ ่ Radix-2 DIT-FFT CESdSP EEET0485 Digital Signal Processing http://embedsigproc.wordpress.com Assoc. Prof. Dr. P.Yuvapoositanon DSP6-9
  10. 10. x(n) for 4-point DFT (N=4) x(0) x(1) x(2) x(3) n=0,1,2,3 CESdSP EEET0485 Digital Signal Processing http://embedsigproc.wordpress.com Assoc. Prof. Dr. P.Yuvapoositanon DSP6-10
  11. 11. x(n) for 4-point DFT (N=4) x(0) x(1) x(2) x(3) x(2n) x(2n+1) n=0,1 = เลขคู่ (Even) CESdSP EEET0485 Digital Signal Processing http://embedsigproc.wordpress.com Assoc. Prof. Dr. P.Yuvapoositanon = เลขคี่ (Odd) DSP6-11
  12. 12. 3 X (k ) = ∑ x(n)W , k kn 4 n =0 = x(0)W k .0 4 0,1, 3, 4 + x(1)W k .1 4 + x(2)W = เลขคู่ (Even) CESdSP EEET0485 Digital Signal Processing http://embedsigproc.wordpress.com Assoc. Prof. Dr. P.Yuvapoositanon k .2 4 + x(3)W k .3 4 = เลขคี่ (Odd) DSP6-12
  13. 13. จัดเรี ยงข้ อมูล 3 = ∑ x(n)W , k X (k ) n =0 1 kn 4 ∑ x(2n)W = 0,1, 3, 4 1 + ∑ x(2n + 1)W kn 4 n 0= 0 n kn 4 = x(0)W4k .0 + x(2)W4k .2 + x(1)W4k .1 + x(3)W4k .3 CESdSP EEET0485 Digital Signal Processing http://embedsigproc.wordpress.com Assoc. Prof. Dr. P.Yuvapoositanon DSP6-13
  14. 14. X (k ) = x(0)W k .0 4 + x(2)W k .2 4 + x(1)W k .1 4 k .(2 +1) 4 + x(3)W k .3 4 = W W = W W k .3 4 CESdSP EEET0485 Digital Signal Processing http://embedsigproc.wordpress.com Assoc. Prof. Dr. P.Yuvapoositanon k 4 k .2 4 DSP6-14
  15. 15. X (k ) = x(0)W k .0 4 + x(2)W k .2 4 −2π .k .2 4 + W [ x(1)W k .1 4 −2π .k 42 k .0 4 −2π .k 2 + x(3)W k .2 4 W = e = e= e= W k .2 4 k .2 N W CESdSP k 2 =W k N 2 EEET0485 Digital Signal Processing http://embedsigproc.wordpress.com Assoc. Prof. Dr. P.Yuvapoositanon DSP6-15 ]
  16. 16. X (k ) = x(0)W k .0 2 + x(2)W k .1 2 + W [ x(1)W k .1 4 k .0 2 + x(3)W ] k .1 2 1 X 1 (k ) = ∑ x(2n)W , k n =0 1 kn 2 0,1, 2,3 X 2 (k ) = x(2n + 1)W , k = 2,3 0,1, ∑ n =0 CESdSP kn 2 EEET0485 Digital Signal Processing http://embedsigproc.wordpress.com Assoc. Prof. Dr. P.Yuvapoositanon DSP6-16
  17. 17. ผลการแปลง DFT X(k) , k=0,1,2,3 = X (0) X 1 (0) + W X 2 (0) 0 4 = X (1) X 1 (1) + W X 2 (1) 1 4 = X (2) X 1 (2) + W X 2 (2) 2 4 = X (3) X 1 (3) + W X 2 (3) 3 4 CESdSP EEET0485 Digital Signal Processing http://embedsigproc.wordpress.com Assoc. Prof. Dr. P.Yuvapoositanon DSP6-17
  18. 18. X (2) X 1 (2) + W X 2 (2) = 2 4 = x(0)W 2.0 2 ( k + N 2).n N 2 −2π .( k + N 2).n N 2 = e= e W + x(2)W 2.1 2 −2π .k .n N 2 −2π .( N 2).n N 2 = W e    k N 2 0. = WN n 1 = 2 N 2 N 2 W CESdSP =W 0 N 2 EEET0485 Digital Signal Processing http://embedsigproc.wordpress.com Assoc. Prof. Dr. P.Yuvapoositanon DSP6-18
  19. 19. 2.n 2 W −2π .(0 + 2).n 2 e= e −2π .0.n 2 −2π .2.n 2 = W e   0 N 2 =1 3.n 2 W −2π .(1+ 2).n 2 e= e −2π .1.n 2 −2π .2.n 2 = W e   1 N 2 =1 CESdSP EEET0485 Digital Signal Processing http://embedsigproc.wordpress.com Assoc. Prof. Dr. P.Yuvapoositanon DSP6-19
  20. 20. ผลการแปลง DFT X(k) , (ลดรูป) k=0,1,2,3 X (0) X 1 (0) + W X 2 (0) = 0 4 X (1) X 1 (1) + W X 2 (1) = 1 4 X (2) X 1 (0) + W X 2 (0) = 2 4 X (3) X 1 (1) + W X 2 (1) = 3 4 CESdSP EEET0485 Digital Signal Processing http://embedsigproc.wordpress.com Assoc. Prof. Dr. P.Yuvapoositanon DSP6-20
  21. 21. บัตเตอร์ ฟลาย Butterfly • เป็ นชือเรียก ของ กราฟการไหลของสัญญาณ (signal ่ flow graph) โดยหนึ่ง บัตเตอร์ฟลาย มีการคูณเลข 1 เชิงซ้อน สอง ครัง ้ X (0) x(0) W20 = 1 1 x (1) 1 W2 = −1 X (1) Note: จริงๆแล้วแม้วา W =1 ส่วน W = -1, เป็ นเลขจริง แต่ตอนนี้เราจะ ่ นับไปก่อนว่าเป็ นเลขเชิงซ้อน 0 2 CESdSP 1 2 EEET0485 Digital Signal Processing http://embedsigproc.wordpress.com Assoc. Prof. Dr. P.Yuvapoositanon DSP6-21
  22. 22. X (0) X 1 (0) + W40 X 2 (0) หา = x (0) X 1 (0) การรวม (Recomposition) X 1 (1) x (2) x (1) x (3) X (0) W40 X (1) X 2 (0) X 2 (1) X (2) X (3) หมายเหตุ: ลูกศรทีไม่เขียนค่ากํากับไว้ จะเท่ากับการคูณด้วย “1” ่ CESdSP EEET0485 Digital Signal Processing http://embedsigproc.wordpress.com Assoc. Prof. Dr. P.Yuvapoositanon DSP6-22
  23. 23. หา X (1) X 1 (1) + W41 X 2 (1) = x (0) X 1 (0) X 1 (1) X (0) W40 x (2) x (1) x (3) X (1) X 2 (0) X 2 (1) W41 X (2) X (3) การรวม (Recomposition) CESdSP EEET0485 Digital Signal Processing http://embedsigproc.wordpress.com Assoc. Prof. Dr. P.Yuvapoositanon DSP6-23
  24. 24. หา X (2) =(2) + W X 2 (2) =(0) + W X 2 (0) X1 X1 2 4 2 4 X 1 (0) X (0) x (0) W40 = 1 X 1 (1) X (1) x (2) W41 X 2 (0) x (1) x (3) W42 X 2 (1) X (2) X (3) การรวม (Recomposition) CESdSP EEET0485 Digital Signal Processing http://embedsigproc.wordpress.com Assoc. Prof. Dr. P.Yuvapoositanon DSP6-24
  25. 25. หา X (3) =(3) + W43 X 2 (3) =(1) + W43 X 2 (1) X1 X1 X 1 (0) X (0) x (0) W40 = 1 X 1 (1) X (1) x (2) W41 X 2 (0) x (1) x (3) W42 X 2 (1) X (2) X (3) W43 การรวม (Recomposition) CESdSP EEET0485 Digital Signal Processing http://embedsigproc.wordpress.com Assoc. Prof. Dr. P.Yuvapoositanon DSP6-25
  26. 26. ผลลัพท์ทายสุดคือ 4-point DIT-FFT ้ x(0) 1 X 1 (0) X (0) W40 X 1 (1) x(2) x(1) x(3) CESdSP W40 = 1 X (1) W42 1 W41 X 2 (0) W42 W40 X 2 (1) X (2) X (3) W42 W43 2-point DFT x 2 การรวม (Recomposition) EEET0485 Digital Signal Processing http://embedsigproc.wordpress.com Assoc. Prof. Dr. P.Yuvapoositanon DSP6-26
  27. 27. x(n) for 8-point DFT (N=8) x(0) x(1) x(2) x(3) x(4) x(5) x(6) x(7) CESdSP EEET0485 Digital Signal Processing http://embedsigproc.wordpress.com Assoc. Prof. Dr. P.Yuvapoositanon DSP6-27
  28. 28. x(n) for 8-point DFT (N=8) x(0) x(1) CESdSP x(2) x(3) x(4) x(5) EEET0485 Digital Signal Processing http://embedsigproc.wordpress.com Assoc. Prof. Dr. P.Yuvapoositanon x(6) x(7) x(2n) x(2n+1) DSP6-28
  29. 29. 8-point DIT-FFT N =8  8 →W 2π −j e 8 −j π = 2− j 2 e 4 = 7 = 0,..., 7 x(n)W8nk , k ∑ X (k ) n =0 = x(0)W80.k + x(1)W81.k + x(2)W82.k + x(3)W83.k + x(4)W84.k + x(5)W85.k + x(6)W86.k + x(7)W87.k จัดรูปแบบใหม่ X (k ) = x(0)W80.k + x(2)W82.k + x(4)W84.k + x(6)W86.k + x(1)W81.k + x(3)W83.k + x(5)W85.k + x(7)W87.k CESdSP EEET0485 Digital Signal Processing http://embedsigproc.wordpress.com Assoc. Prof. Dr. P.Yuvapoositanon DSP6-29
  30. 30. 8-point DIT-FFT (ต่ อ) X (k ) = x(0)W80.k + x(2)W82.k + x(4)W84.k + x(6)W86.k +W81.k  x(1)W80.k + x(3)W82.k + x(5)W84.k + x(7)W86.k    จาก 2 = e WN j 2π .2 N = 2π N 2 e= j WN / 2 X 1 (k ) X (k ) = x(0)W40.k + x(2)W4k + x(4)W42.k + x(6)W43.k +W81.k  x(1)W40.k + x(3)W4k + x(5)W42.k + x(7)W43.k    X 2 (k ) สังเกตว่า เหลือเพียงการคํานวณสําหรับ 4-point DFT เท่านัน ้ CESdSP EEET0485 Digital Signal Processing http://embedsigproc.wordpress.com Assoc. Prof. Dr. P.Yuvapoositanon DSP6-30
  31. 31. ลดรูปลงได้ อีกไหม? ได้ใช้ประโยชน์จากความเป็ นคาบของสัญญาณ X = X 1 ( k + 4) 1 (k ) X = X 2 ( k + 4) 2 (k ) X (0) X 1 (0) + W80 X 2 (0) = X (4) X 1 (0) + W84 X 2 (0) = X (1) X 1 (1) + W81 X 2 (1) = X (5) X 1 (1) + W X 2 (1) = = X (2) X 1 (2) + W82 X 2 (2) X (6) X 1 (2) + W X 2 (2) = = X (3) X 1 (3) + W83 X 2 (3) X (7) X 1 (3) + W87 X 2 (3) = CESdSP 5 8 6 8 EEET0485 Digital Signal Processing http://embedsigproc.wordpress.com Assoc. Prof. Dr. P.Yuvapoositanon DSP6-31
  32. 32. 8-point บัตเตอร์ ฟลาย การรวม (Recomposition) X 1 (0) x (0) x (2) x (4) 4-point DFT x (5) x (7) CESdSP X 1 (2) W81 X 2 (0) x (1) x (3) X 1 (1) W80 X 1 (3) x (6) 4-point DFT X (0) X 2 (1) X (1) W82 W83 W84 X (2) X (3) X (4) W85 X (5) X 2 (2) W86 X (6) W87 X (7) X 2 (3) EEET0485 Digital Signal Processing http://embedsigproc.wordpress.com Assoc. Prof. Dr. P.Yuvapoositanon DSP6-32
  33. 33. แต่ เรายังลดรูปได้ อีก จาก สมการ 8-point DFT ทีถกลดลงเหลือ 4-point DFTx2 ่ ู X ( k ) = 81.k X 2 ( k ), X 1 (k ) + W k= 0,..., 7 X 1 (k ) = x(0)W40.k + x(2)W4k + x(4)W42.k + x(6)W43.k = x(0)W40.k + x(4)W42.k + x(2)W4k + x(6)W43.k = x(0)W 0.k 4 + x(4)W 2.k 4 +W 1.k 4  x(2)W40.k + x(6)W42.k    X 1a ( k ) 2-point DFT X 1b ( k ) 2-point DFT ซึงก็คอ การแบ่ง 4-point DFT ออกเป็ น 2-point DFTx2 ่ ื CESdSP EEET0485 Digital Signal Processing http://embedsigproc.wordpress.com Assoc. Prof. Dr. P.Yuvapoositanon DSP6-33
  34. 34. แยก 4-point DFT ออกเป็ น 2-point DFT สําหรับ x(0),x(2),x(4) และ x(6) X 1 (0) x (0) x (2) x (4) x (6) 4-point DFT x(0) W40 X1 (0) W40 = 1 X 1 (1) x(4) X 1 (2) W42 W41 x(2) W40 X 1 (3) x(6) CESdSP 1 1 W42 EEET0485 Digital Signal Processing http://embedsigproc.wordpress.com Assoc. Prof. Dr. P.Yuvapoositanon W42 X 1(1) X1 (2) X1 (3) W43 DSP6-34
  35. 35. สําหรับ x(1),x(3),x(5) และ x(7) X ( k ) = 81.k X 2 ( k ), X 1 (k ) + W k= 0,..., 7 X 2 (k ) = x(1)W40.k + x(3)W4k + x(5)W42.k + x(7)W43.k = x(1)W40.k + x(5)W42.k + x(3)W4k + x(7)W43.k = x(1)W 0.k 4 + x(5)W 2.k 4 +W 1.k 4  x(3)W40.k + x(7)W42.k    X 2 a (k ) 2-point DFT X 2b ( k ) 2-point DFT ซึงก็คอ การแบ่ง 4-point DFT ออกเป็ น 2-point DFTx2 ่ ื CESdSP EEET0485 Digital Signal Processing http://embedsigproc.wordpress.com Assoc. Prof. Dr. P.Yuvapoositanon DSP6-35
  36. 36. แยก 4-point DFT ออกเป็ น 2-point DFT สําหรับ x(1),x(3),x(5) และ x(7) X 2 (0) x(1) x(3) x(5) x(7) 4-point DFT X 2 (1) X 2 (2) x(1) W40 x(5) W42 W40 X 2 (3) X 2 (0) W40 = 1 W41 x(3) x(7) CESdSP 1 1 W42 X 2 (1) X 2 (2) X 2 (3) W42 EEET0485 Digital Signal Processing http://embedsigproc.wordpress.com Assoc. Prof. Dr. P.Yuvapoositanon W43 DSP6-36
  37. 37. DIT-FFT สําหรั บ N=8 X (0) x (0) W80 x (4) W80 W80 X (1) W84 W82 x (2) W80 X (2) W84 W82 x (6) W86 W84 W81 W83 x (1) W80 x (5) W84 W80 W82 x (3) W80 W84 W85 W84 W86 W86 W87 x (7) CESdSP W84 X (3) EEET0485 Digital Signal Processing http://embedsigproc.wordpress.com Assoc. Prof. Dr. P.Yuvapoositanon X (4) X (5) X (6) X (7) DSP6-37
  38. 38. สรุ ป 8-point DFT แตกตัวออกได้ จนเหลือ 2-point DFT 8-point DFT 4-point DFT + Wk8 x 4-point DFT 2-point DFT + W4k x 2-point DFT CESdSP 2-point DFT + W4k x 2-point DFT EEET0485 Digital Signal Processing http://embedsigproc.wordpress.com Assoc. Prof. Dr. P.Yuvapoositanon DSP6-38
  39. 39. กรณี 8-point x (0) x (4) x (2) x (6) x (1) x (5) x (3) x (7) CESdSP 2 − point DFT X 1 (0) ตัวรวม 4-point DFT 2 − point DFT 2 − point DFT X (1) X 1 (2) X 1 (3) ตัวรวม 4-point DFT X (0) X 1 (1) X 2 (0) 2 − point DFT DIT-FFT ตัวรวม 8-point DFT (Recomposition to 8-point DFT) X 2 (1) X 2 (2) X 2 (3) EEET0485 Digital Signal Processing http://embedsigproc.wordpress.com Assoc. Prof. Dr. P.Yuvapoositanon X (2) X (3) X (4) X (5) X (6) X (7) DSP6-39
  40. 40. กรณี N-point 2-point DFT 2-point DFT  2-point DFT  2-point DFT  2-point DFT CESdSP   DIT-FFT N /4 N /4 N /2  N /4 N /4  N /4 N /4  N /2 N /4 N /4 N N /2 EEET0485 Digital Signal Processing http://embedsigproc.wordpress.com Assoc. Prof. Dr. P.Yuvapoositanon N /2 DSP6-40
  41. 41. ทําไม FFT ใช้ การคํานวณเพียง N log2N ? เมือเราให้ R เป็ น จํานวนขัน (stage) ที่มีการรวม เราจะได้วา ่ ้ ่ N = 2R 2 log 2 N − log 2 2 R = log 2 2 จึงได้ log 2 N − R = 1 = log 2 N − 1 R สําหรับ 4–point DFT, R=1 สําหรับ 8–point DFT, R=2 CESdSP EEET0485 Digital Signal Processing http://embedsigproc.wordpress.com Assoc. Prof. Dr. P.Yuvapoositanon DSP6-41
  42. 42. จํานวนขันการรวม (R) ้ 4-point DFT 2 4 2 จํานวนครัง ้ การรวม (R)= 8-point DFT 1 จํานวนครัง ้ การรวม (R)= CESdSP EEET0485 Digital Signal Processing http://embedsigproc.wordpress.com Assoc. Prof. Dr. P.Yuvapoositanon 2 2 2 2 4 8 4 1 2 DSP6-42
  43. 43. จํานวนบัตเตอร์ ฟลายต่ อคอลัมน์ (B) 4-point DFT 2 2 8-point DFT 2 2 2 2 4 จํานวนบัตเตอร์ 2 2 ฟลาย (B)= 2 จํานวนคอลัมน์ 4 8 4 4 จํานวนคอลัมน์ CESdSP จํานวน บัตเตอร์ฟลาย (B)= 4 3 EEET0485 Digital Signal Processing http://embedsigproc.wordpress.com Assoc. Prof. Dr. P.Yuvapoositanon 4 DSP6-43
  44. 44. จํานวนการคูณเลขเชิงซ้ อน = จ.น.บัตเตอร์ฟลายต่อคอลัมน์ X จ.น.คอลัมน์ X มีการคูณ 2 ครังต่อบัต ้ เตอร์ฟลาย = ( N / 2) × log 2 N × 2 = N (log 2 N ) CESdSP EEET0485 Digital Signal Processing http://embedsigproc.wordpress.com Assoc. Prof. Dr. P.Yuvapoositanon DSP6-44
  45. 45. เปรียบเทียบจํานวนครังการคูณเลขเชิงซ้ อน ้ ของ DFT และ FFT เราลดการคํานวณ จาก N2 อ เหลื N 2 4 8 : 256 512 1,024 CESdSP DFT N2 4 16 64 : 65,536 262,144 1,048,576 N log 2 N FFT (N log2N) 2 8 24 : 2,048 4,608 10,240 EEET0485 Digital Signal Processing http://embedsigproc.wordpress.com Assoc. Prof. Dr. P.Yuvapoositanon DSP6-45
  46. 46. ปรั บปรุ งบัตเตอร์ ฟลาย จาก r WN เราทราบว่า ดังนัน ้ N WN / 2  1 r= เลขใดๆ r WN + N / 2 1 -1 ทําให้เหลือ จ.น.การคูณเลขเชิงซ้อนเป็ น (N/2)log2N r WN CESdSP EEET0485 Digital Signal Processing http://embedsigproc.wordpress.com Assoc. Prof. Dr. P.Yuvapoositanon DSP6-46
  47. 47. บัตเตอร์ ฟลาย 4-point DFT ที่ถูกลดรูป x (0) x (2) x (1) 1 1 X 1 (0) 1 1 X 1 (1) -1 1 X 2 (0) W40 x (3) 1 1 X 2 (1) -1 1 -1 W4 เหลือจ.น. การคูณเลขเชิงซ้อนเพียง (N/2)log2N= 4 CESdSP X (0) EEET0485 Digital Signal Processing http://embedsigproc.wordpress.com Assoc. Prof. Dr. P.Yuvapoositanon 1 1 -1 1 1 X (1) X (2) X (3) DSP6-47
  48. 48. สรุ ป • FFT ก็คอ DFT แต่เป็ นการสลับตําแหน่ งข้อมูลและเทค ื นิกการรวมสัญญาณ เพือย่อยให้จานวนการแปลงลดรูป ่ ํ ลง วิธการนี้ เรียกว่า Decimation in Time (DIT) และ ี เรียก การแปลงฟูรเยร์แบบเร็วนี้วา DIT-FFT ิ ่ • การแปลงฟูรเยร์แบบเร็ว (FFT) แบบจะทําให้เหลือการ ิ คูณเลขเชิงซ้อนเหลือเพียง Nlog2N ครัง จาก N2 ครัง ้ ้ เมือใช้ DFT ่ • หรืออาจจะลดการคูณเลขเชิงซ้อนลงได้อกเป็ น (N/2) ี log2N หากใช้การปรับปรุงบัตเตอร์ฟลาย CESdSP EEET0485 Digital Signal Processing http://embedsigproc.wordpress.com Assoc. Prof. Dr. P.Yuvapoositanon DSP6-48

×