bk biẾn ĐỔi fourier nhanh (fft)...biẾn ĐỔi fourier nhanh (fft) dsp –lecture 6, ©2007,...

28
Faculty of Computer Science and Engineering HCMC University of Technology 268, av. Ly Thuong Kiet, District 10, HoChiMinh city Telephone : (08) 864-7256 (ext. 5843) Fax : (08) 864-5137 Email : [email protected] http://www.cse.hcmut.edu.vn/~anhvu Chương Chương 6 BK TP.HCM T.S. Đinh Đức Anh Vũ BIN ĐỔI FOURIER NHANH (FFT) BIN ĐỔI FOURIER NHANH (FFT)

Upload: others

Post on 24-Feb-2020

27 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: BK BIẾN ĐỔI FOURIER NHANH (FFT)...BIẾN ĐỔI FOURIER NHANH (FFT) DSP –Lecture 6, ©2007, Dr. Dinh-Duc Anh-Vu –CSE 2 Nộidung TínhDFT & IDFT Tínhtrựctiếp Biến đổiWN

Faculty of Computer Science and EngineeringHCMC University of Technology268, av. Ly Thuong Kiet,District 10, HoChiMinh cityTelephone : (08) 864-7256 (ext. 5843)Fax : (08) 864-5137Email : [email protected]://www.cse.hcmut.edu.vn/~anhvu

Chương Chương 66

BKTP.HCM

T.S. Đinh Đức Anh Vũ

BIẾN ĐỔI FOURIER NHANH (FFT)

BIẾN ĐỔI FOURIER NHANH (FFT)

Page 2: BK BIẾN ĐỔI FOURIER NHANH (FFT)...BIẾN ĐỔI FOURIER NHANH (FFT) DSP –Lecture 6, ©2007, Dr. Dinh-Duc Anh-Vu –CSE 2 Nộidung TínhDFT & IDFT Tínhtrựctiếp Biến đổiWN

2DSP – Lecture 6, © 2007, Dr. Dinh-Duc Anh-Vu – CSE

Nội dungNội dung

Tính DFT & IDFT

Tính trực tiếp Biến đổi WN

Chia-Trị Lọc tuyến tính

Cơ số 2 Cơ số 4 Chirp-zGoertzelTách cơ số

Page 3: BK BIẾN ĐỔI FOURIER NHANH (FFT)...BIẾN ĐỔI FOURIER NHANH (FFT) DSP –Lecture 6, ©2007, Dr. Dinh-Duc Anh-Vu –CSE 2 Nộidung TínhDFT & IDFT Tínhtrựctiếp Biến đổiWN

3DSP – Lecture 6, © 2007, Dr. Dinh-Duc Anh-Vu – CSE

§ Tính DFT: xác định chuỗi N giá trị phức {X(k)} khi biết trước chuỗi {x(n)} chiều dài N

ª Giải thuật tính DFT cũng được áp dụng cho việc tính IDFT§ Tính trực tiếp

ª N2 phép nhân phứcª N(N-1) phép cộng phức→ Độ phức tạp : O(N2)

§ Biến đổi WNª 2N2 phép tính lượng giácª 4N2 phép nhân số thựcª 4N(N-1) phép cộng số thựcª Một số phép toán chỉ số

và địa chỉ để nạp x(n)

DFT & IDFTDFT & IDFT

10)()(1

0

−≤≤= ∑−

=

NkWnxkXN

n

knN

10)(1)(1

0−≤≤= ∑

=

− NnWkXN

nxN

k

knN

DFT

IDFTNj

N eWπ2−=

−−=

+=

∑−

=

=

1

0

22

1

0

22

)]cos()()sin()([)(

)]sin()()cos()([)(

N

nNkn

INkn

RI

N

nNkn

INkn

RR

nxnxkX

nxnxkX

ππ

ππ

Giải thuật tính DFT tối ưu mỗi phép toántheo những cách khác nhau

kN

NkN

kN

NkN

WWhoaønTuaàn

WWxöùngÑoái

=

−=+

+ 2/

Page 4: BK BIẾN ĐỔI FOURIER NHANH (FFT)...BIẾN ĐỔI FOURIER NHANH (FFT) DSP –Lecture 6, ©2007, Dr. Dinh-Duc Anh-Vu –CSE 2 Nộidung TínhDFT & IDFT Tínhtrựctiếp Biến đổiWN

4DSP – Lecture 6, © 2007, Dr. Dinh-Duc Anh-Vu – CSE

Phương pháp chia-trịPhương pháp chia-trị

x(N-1)…x(2)x(1)x(0)

N-1…210

x(L-1,M-1)…x(L-1,1)x(L-1,0)L-1

…………

x(2,M-1)…x(2,1)x(2,0)2

x(1,M-1)…x(1,1)x(1,0)1

x(0,M-1)…x(0,1)x(0,0)0

M-1…10lm

n →

§ Nguyên tắc: phân rã nhỏ việc tính DFT N điểm thành việc tính các DFT kích thước nhỏ hơn → các giải thuật FFT

§ Phương phápª Giả sử N=L.Mª Lưu trữ x(n) vào mảng 2 chiều LxM (l: chỉ số hàng, m: chỉ số cột)

ª Cách lưu trữ• Theo dòng n = Ml + m• Theo cột n = l + mL

ª Tương tự, các giá trị DFT X(k) tính được cũng sẽ được lưu trữ trong ma trận LxM (p: chỉ số hàng, q: chỉ số cột)

• Theo dòng k = Mp + q• Theo cột k = p + qL

Page 5: BK BIẾN ĐỔI FOURIER NHANH (FFT)...BIẾN ĐỔI FOURIER NHANH (FFT) DSP –Lecture 6, ©2007, Dr. Dinh-Duc Anh-Vu –CSE 2 Nộidung TínhDFT & IDFT Tínhtrựctiếp Biến đổiWN

5DSP – Lecture 6, © 2007, Dr. Dinh-Duc Anh-Vu – CSE

Phương pháp chia-trịPhương pháp chia-trị

∑∑−

=

=

++=1

0

1

0

))((),(),(M

m

L

l

lmLqMpNWmlxqpX

Với:x(n) : theo cộtX(k) : theo hàng

lqN

MplN

mLqN

MLmpN

lmLqMpN WWWWW =++ ))((

plL

plMN

MplN

mqM

mqLN

mqLN

NmpN

WWWWWW

W

==

==

=

/

/

1

lpL

L

l

M

m

mqM

lqN WWmlxWqpX ∑ ∑

=

=

=

1

0

1

0),(),(

10)()(1

0−≤≤= ∑

=

NkWnxkXN

n

knN

DFT M điểmF(l,q)

G(l,q)

DFT L điểmX(p,q)

1

2

3

(1): Tính L DFT M điểmªNhân phức : LM2

ªCộng phức : LM(M-1)

(2): Tính G(l,q)ªNhân phức : LM

(3): Tính X(p,q)ªNhân phức : ML2

ªCộng phức : ML(L-1)

è Độ phức tạpªNhân phức : N(M+L+1)ªCộng phức : N(M+L-2)

Page 6: BK BIẾN ĐỔI FOURIER NHANH (FFT)...BIẾN ĐỔI FOURIER NHANH (FFT) DSP –Lecture 6, ©2007, Dr. Dinh-Duc Anh-Vu –CSE 2 Nộidung TínhDFT & IDFT Tínhtrựctiếp Biến đổiWN

6DSP – Lecture 6, © 2007, Dr. Dinh-Duc Anh-Vu – CSE

§ Hiệu quả

§ PP chia-trị rất hiệu quả khi N= r1r2r3…rvª Phân rã nhỏ hơn đến (v-1) lần

§ Giải thuật

Phương pháp chia-trịPhương pháp chia-trị

PP tính trực tiếp• Nhân phức : N2

• Cộng phức : N(N-1)

PP chia-trị• Nhân phức : N(M+L+1)• Cộng phức : N(M+L-2)

N=1000 → L=2, M=500106 nhân phức → 503,000 (~ N/2)

1. Lưu trữ t/h theo hàng2. Tính DFT L điểm của mỗi cột3. Nhân ma trận kết quả với hệ số pha WN

pm

4. Tính DFT M điểm của mỗi hàng5. Đọc ma trận kết quả theo cột

Giải thuật 2

n = Ml + mk = qL + p

1. Lưu trữ t/h theo cột2. Tính DFT M điểm của mỗi hàng3. Nhân ma trận kết quả với hệ số pha WN

lq

4. Tính DFT L điểm của mỗi cột5. Đọc ma trận kết quả theo hàng

Giải thuật 1

n = l + mLk = Mp + q

Page 7: BK BIẾN ĐỔI FOURIER NHANH (FFT)...BIẾN ĐỔI FOURIER NHANH (FFT) DSP –Lecture 6, ©2007, Dr. Dinh-Duc Anh-Vu –CSE 2 Nộidung TínhDFT & IDFT Tínhtrựctiếp Biến đổiWN

7DSP – Lecture 6, © 2007, Dr. Dinh-Duc Anh-Vu – CSE

§ Mô hình tính toán DFT 6 điểm thông qua việc tính DFT 3 điểm và DFT 2 điểm

§ Giải thuật tính FFT cơ số 2ª Nếu N = r1r2r3…rv = rv → mô hình tính DFT có cấu trúc đều (chỉ dùng 1 DFT r điểm)ª r = 2 → FFT cơ số 2ª Chọn M = N/2 và L = 2

x(5)

x(3)

X(5)

X(4)

Phương pháp chia-trịPhương pháp chia-trị

DFT

3 điểm

DFT

2 đ

iểm

x(0)

x(2)

x(4)

x(1)

W6lq

X(0)

X(1)

X(2)

X(3)

x(1) x(3) x(N-1)…

x(0) x(1) x(2) … x(N-1)………

x(0) x(2) x(N-2)…l=0

l=1

m=0 m=1 m=M-1f1(2n)

f2(2n+1)n= 0,1, …, N/2-1

Giải thuậtchia theo thời gian

Page 8: BK BIẾN ĐỔI FOURIER NHANH (FFT)...BIẾN ĐỔI FOURIER NHANH (FFT) DSP –Lecture 6, ©2007, Dr. Dinh-Duc Anh-Vu –CSE 2 Nộidung TínhDFT & IDFT Tínhtrựctiếp Biến đổiWN

8DSP – Lecture 6, © 2007, Dr. Dinh-Duc Anh-Vu – CSE

FFT cơ số 2FFT cơ số 2

∑∑

∑∑

=

+−

=

=

++=

+=

−==

1)2/(

0

)12(1)2/(

0

2

1

0

)12()2(

)()(

1,...,1,0)()(

N

m

mkN

N

m

mkN

oldn

knN

evenn

knN

N

n

knN

WmxWmx

WnxWnx

NkWnxkX

2/2

NN WW =

1,...,1,0)()(

)()()(

21

2/

1)2/(

022/

1)2/(

01

−=+=

+= ∑∑−

=

=

NkkFWkF

WmfWWmfkX

kN

kmN

N

m

kN

kmN

N

m

2/,...,1,0)()(

2/,...,1,0)()(

22

11

2/

2/

NkkFmf

NkkFmf

N

N

DFT

DFT

= →←

= →←

kN

NkN WW −=+ 2/

F1(k), F2(k) tuần hoànchu kỳ N/2

F1(k+ N/2) = F1(k)F2(k+ N/2) = F2(k)

−=−=+

−=+=

1,..,1,0)()()(

1,..,1,0)()()(

2212

221

NkN

N

NkN

kkFWkFkX

kkFWkFkX

Page 9: BK BIẾN ĐỔI FOURIER NHANH (FFT)...BIẾN ĐỔI FOURIER NHANH (FFT) DSP –Lecture 6, ©2007, Dr. Dinh-Duc Anh-Vu –CSE 2 Nộidung TínhDFT & IDFT Tínhtrựctiếp Biến đổiWN

9DSP – Lecture 6, © 2007, Dr. Dinh-Duc Anh-Vu – CSE

FFT cơ số 2FFT cơ số 2

−==

−==

1,..,1,0)()(

1,..,1,0)()(

222

211

NkN

N

kkFWkG

kkFkG

−=−=+

−=+=

1,...,1,0)()()(1,...,1,0)()()(

2212

221

NN

N

kkGkGkXkkGkGkX

DFT2X(k)

G2(k)

G1(k)

k=0,1,…,(N/2-1)

X(k+ N/2)

x(1) x(3

)x(4

)

x(N-2)

F 2(0)

F 2(1)

F 2(2)

F 2(N

/2-1)

DFT N

/2 đ

iểm

x(0) x(2

)x(4

)

x(N-2)

F 1(0)

F 1(1)

F 1(2)

F 1(N

/2-1)

DFT N

/2 đ

iểm

X(N/2-

1)

G 1(N

/2-1)

X(N/2)X(N

/2+1)

X(N-1)

G 2(0)

W N0 W N

1

W NN/2-

1

G 1(0)

G 1(1)

DFT 2 điểm

DFT 2 điểm

X(1)

DFT 2 điểmDFT

2 điểm

X(0)

Page 10: BK BIẾN ĐỔI FOURIER NHANH (FFT)...BIẾN ĐỔI FOURIER NHANH (FFT) DSP –Lecture 6, ©2007, Dr. Dinh-Duc Anh-Vu –CSE 2 Nộidung TínhDFT & IDFT Tínhtrựctiếp Biến đổiWN

10DSP – Lecture 6, © 2007, Dr. Dinh-Duc Anh-Vu – CSE

§ Tiếp tục phân f1(n) và f2(n) thành các chuỗi N/4 điểm

§ Hiệu quả

FFT cơ số 2FFT cơ số 2

−=+=

−==

−=+=

−==

1,...,1,0)12()(1,...,1,0)2()(1,...,1,0)12()(1,...,1,0)2()(

4222

4221

4112

4111

N

N

N

N

nnfnvnnfnvnnfnvnnfnv

−=−=+

−=+=

−=−=+

−=+=

1,...,1,0)()()(

1,...,1,0)()()(

1,...,1,0)()()(

1,...,1,0)()()(

4222/2142

4222/212

4122/1141

4122/111

NkN

N

NkN

NkN

N

NkN

kkVWkVkF

kkVWkVkF

kkVWkVkF

kkVWkVkF

DFT N/4 điểmvij(n) Vij(k)

DFT trực tiếp N=2v điểm FFT cơ số 2 Các DFT 2 điểm

Nhân phức: N2

Cộng phức: N2 – NNhân phức: (N/2)log2NCộng phức: Nlog2N

Page 11: BK BIẾN ĐỔI FOURIER NHANH (FFT)...BIẾN ĐỔI FOURIER NHANH (FFT) DSP –Lecture 6, ©2007, Dr. Dinh-Duc Anh-Vu –CSE 2 Nộidung TínhDFT & IDFT Tínhtrựctiếp Biến đổiWN

11DSP – Lecture 6, © 2007, Dr. Dinh-Duc Anh-Vu – CSE

FFT cơ số 2FFT cơ số 2

§ Ví dụ: tính DFT 8 điểm

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

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

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

x(0)

x(2)

x(4)

x(6)

x(1)

x(3)

x(5)

x(7)

Ph

ânth

eothờigian

[0,1,2,3,4,5,6,7]

[0,2,4,6] [1,3,5,7]

[0,4] [2,6] [1,5] [3,7]

Page 12: BK BIẾN ĐỔI FOURIER NHANH (FFT)...BIẾN ĐỔI FOURIER NHANH (FFT) DSP –Lecture 6, ©2007, Dr. Dinh-Duc Anh-Vu –CSE 2 Nộidung TínhDFT & IDFT Tínhtrựctiếp Biến đổiWN

12DSP – Lecture 6, © 2007, Dr. Dinh-Duc Anh-Vu – CSE

FFT cơ số 2FFT cơ số 2

08W

08W

08W

08W

-1

-1

-1

-1

08W

28W

08W

28W

-1

-1

-1

-1

08W

18W

28W

38W

-1

-1

-1

-1

X(0)

X(1)

X(2)

X(3)

X(4)

X(5)

X(6)

X(7)

x(0)

x(4)

x(2)

x(6)

x(1)

x(5)

x(3)

x(7)

Page 13: BK BIẾN ĐỔI FOURIER NHANH (FFT)...BIẾN ĐỔI FOURIER NHANH (FFT) DSP –Lecture 6, ©2007, Dr. Dinh-Duc Anh-Vu –CSE 2 Nộidung TínhDFT & IDFT Tínhtrựctiếp Biến đổiWN

13DSP – Lecture 6, © 2007, Dr. Dinh-Duc Anh-Vu – CSE

FFT cơ số 2FFT cơ số 2

§ Khối tính toán cơ bản cho DFT 2 điểm (hình con bướm)

W N’

a

b

A = a+WN’b

B = a–WN’b–1

Độ phức tạp• 1 nhân phức• 2 cộng phức

N= 2v:+ Log2N : tầng tính toán+ N/2 : khối tính toán cơ bản cho mỗi lớp

Bộ nhớ:+ Vào : (a,b) – số phức+ Ra : (A,B) – số phức+ Có thể lưu (A,B) đè lên (a,b)è Chỉ cần N ô nhớ phức (2N ô nhớ thực)è Tính toán tại chỗ

Page 14: BK BIẾN ĐỔI FOURIER NHANH (FFT)...BIẾN ĐỔI FOURIER NHANH (FFT) DSP –Lecture 6, ©2007, Dr. Dinh-Duc Anh-Vu –CSE 2 Nộidung TínhDFT & IDFT Tínhtrựctiếp Biến đổiWN

14DSP – Lecture 6, © 2007, Dr. Dinh-Duc Anh-Vu – CSE

FFT cơ số 2FFT cơ số 2

x(7)x(7)x(7)

x(3)x(5)x(6)

x(5)x(3)x(5)

x(1)x(1)x(4)

x(6)x(6)x(3)

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

x(4)x(2)x(1)

x(0)x(0)x(0)

Bộnhớ

Phânchia

Bộnhớ

Phânchia

Bộnhớ

111111111

011101110

101011101

001001100

110110011

010100010

100010001

000000000

Địachỉ

Phânchia

Địachỉ

Phânchia

Địachỉ

§ Thứ tự chuỗi dữ liệu vào sau khi phân (v-1) lầnª Biểu diễn các chỉ số ở dạng nhị phânª Chuỗi sau khi phân chia sẽ là lấy theo thứ tự đảo các bit

Page 15: BK BIẾN ĐỔI FOURIER NHANH (FFT)...BIẾN ĐỔI FOURIER NHANH (FFT) DSP –Lecture 6, ©2007, Dr. Dinh-Duc Anh-Vu –CSE 2 Nộidung TínhDFT & IDFT Tínhtrựctiếp Biến đổiWN

15DSP – Lecture 6, © 2007, Dr. Dinh-Duc Anh-Vu – CSE

FFT cơ số 2FFT cơ số 2

§ Phân chia theo tần sốª Phương pháp chia và trịª M = 2, L = N/2ª Chuỗi dữ liệu nhập được sắp xếp theo cộtª Phân chia X(k) thành X(2k) và X(2k+1)ª Sau đó có thể phân chia tiếp tục mỗi X(k chẵn) và X(k lẻ)

a

b

A = (a+b) WN’

B = (a–b)WN’–1 W N’

X(0)

X(3)

X(6)

X(5)

X(2)

X(1)

X(4)

X(7)

18W2

8W3

8W

08W

-1

-1

-1

-1

DFT4 điểm

DFT4 điểm

x(0)

x(5)

x(3)

x(6)

x(1)

x(4)

x(2)

x(7)

Page 16: BK BIẾN ĐỔI FOURIER NHANH (FFT)...BIẾN ĐỔI FOURIER NHANH (FFT) DSP –Lecture 6, ©2007, Dr. Dinh-Duc Anh-Vu –CSE 2 Nộidung TínhDFT & IDFT Tínhtrựctiếp Biến đổiWN

16DSP – Lecture 6, © 2007, Dr. Dinh-Duc Anh-Vu – CSE

FFT cơ số 4FFT cơ số 4

x(0)

x(1)

x(2)

x(3)

x(4)

x(5)

x(6)

x(7)

x(N-4)

x(N-3)

x(N-2)

x(N-1)

x(0) x(2) x(4) … … … x(N-1)

L = 4, M = N/4

N = 4v

x(4n)

x(4n+1)

x(4n+2)

x(4n+3)

l=0

l=1

l=2

l=3

m=0 m=1 m=(N/4)-1

n = 4m + lk = (N/4)p + q

n = 0,1,…,N/4-1

l,p = 0,1,2,3m,q = 0,1,…,N/4 – 1

Page 17: BK BIẾN ĐỔI FOURIER NHANH (FFT)...BIẾN ĐỔI FOURIER NHANH (FFT) DSP –Lecture 6, ©2007, Dr. Dinh-Duc Anh-Vu –CSE 2 Nộidung TínhDFT & IDFT Tínhtrựctiếp Biến đổiWN

17DSP – Lecture 6, © 2007, Dr. Dinh-Duc Anh-Vu – CSE

FFT cơ số 4FFT cơ số 4

[ ]

+=

+=

−==

=

==

=

=

)(),()4(),(

)1(,..,1,03,2,1,0

),(),(

3,2,1,0),(),(

4

4

4/

04/

3

04

qpXqpXlmxmlx

ql

WmlxqlF

pWqlFWqpX

N

N

N

m

mqN

l

lplqN

DFT N/4 điểm

−−−−

−−=

),3(),2(

),1(),0(

111111

111111

),3(),2(),1(),0(

3

2

0

qFWqFW

qFWqFW

jj

jj

qXqXqXqX

qN

qN

qN

N

lpL

L

l

M

m

mqM

lqN WWmlxWqpX ∑ ∑

=

=

=

1

0

1

0),(),(

Page 18: BK BIẾN ĐỔI FOURIER NHANH (FFT)...BIẾN ĐỔI FOURIER NHANH (FFT) DSP –Lecture 6, ©2007, Dr. Dinh-Duc Anh-Vu –CSE 2 Nộidung TínhDFT & IDFT Tínhtrựctiếp Biến đổiWN

18DSP – Lecture 6, © 2007, Dr. Dinh-Duc Anh-Vu – CSE

FFT cơ số 4FFT cơ số 4

Dạng rút gọn

0NW

qNW

qNW 2

qNW 3

-j

-1

j-1

1-1

j-1

-j0

q

2q

3q

Page 19: BK BIẾN ĐỔI FOURIER NHANH (FFT)...BIẾN ĐỔI FOURIER NHANH (FFT) DSP –Lecture 6, ©2007, Dr. Dinh-Duc Anh-Vu –CSE 2 Nộidung TínhDFT & IDFT Tínhtrựctiếp Biến đổiWN

19DSP – Lecture 6, © 2007, Dr. Dinh-Duc Anh-Vu – CSE

FFT cơ số 4FFT cơ số 4

Độ phức tạp: 1 khối tính toán cần+ 3 nhân phức+ 12 cộng phức

N=4v

+ Tầng tính toán : v = log4N + Mỗi tầng có : N/4 khối tính toán

−−

=

),0(),0(),0(),0(

1010101001010101

0100101

0100101

),3(),2(),1(),0(

3

2

0

qFWqFWqFWqFW

j

j

qXqXqXqX

qN

qN

qN

N

Biểu diễn lại nhân ma trận

(3N/8)log2N : Nhân phức (giảm 25% vs FFT2)Nlog2N : Cộng phức (bằng FFT2)

3vN/4 = (3N/8)log2N : Nhân phức (giảm 25% vs FFT2)12vN/4 = (3N/2)log2N : Cộng phức (tăng 50% vs FFT2)

Page 20: BK BIẾN ĐỔI FOURIER NHANH (FFT)...BIẾN ĐỔI FOURIER NHANH (FFT) DSP –Lecture 6, ©2007, Dr. Dinh-Duc Anh-Vu –CSE 2 Nộidung TínhDFT & IDFT Tínhtrựctiếp Biến đổiWN

20DSP – Lecture 6, © 2007, Dr. Dinh-Duc Anh-Vu – CSE

Hiện thực các giải thuật FFTHiện thực các giải thuật FFT

§ FFT cơ số 2ª Tính toán hình bướm: (N/2)log2N lầnª Hệ số quay WN

k: được tính một lần và lưu trong bảngª Bộ nhớ: 2N nếu muốn việc tính toán được thực hiện tại chỗ

• 4N nếu muốn đơn giản hóa các tác vụ chỉ số và điều khiển; đồng thời cho phépchuỗi nhập và xuất theo đúng thứ tự

§ IDFT

ª Khác nhau cơ bản giữa việc tính DFT và IDFT là hệ số 1/N và dấu của hệ sốpha WN

• Đảo chiều sơ đồ tính DFT, đổi dấu hệ số pha, và chia kết quả cuối cùng cho N →IDFT

§ DFT với số điểm khác 2v hoặc 4v → đệm thêm các số 0§ Độ phức tạpª Tác vụ số học (nhân phức, cộng phức)ª Cấu trúc hiện thực của giải thuật (qui tắc vs bất qui tắc)ª Kiến trúc của các bộ DSPs (xử lý song song các tác vụ)

10)(1)(1

0−≤≤= ∑

=

− NnWkXN

nxN

k

knN

Page 21: BK BIẾN ĐỔI FOURIER NHANH (FFT)...BIẾN ĐỔI FOURIER NHANH (FFT) DSP –Lecture 6, ©2007, Dr. Dinh-Duc Anh-Vu –CSE 2 Nộidung TínhDFT & IDFT Tínhtrựctiếp Biến đổiWN

21DSP – Lecture 6, © 2007, Dr. Dinh-Duc Anh-Vu – CSE

Ứng dụng của các giải thuật FFTỨng dụng của các giải thuật FFT

§ Tính DFT của 2 chuỗi thựcª x1(n) và x2(n): chuỗi thực độ dài N cần tính DFTª Định nghĩa chuỗi x(n) = x1(n) + jx2(n) 0 ≤ n ≤ N – 1ª X(k) = X1(k) + jX2(k) (tính tuyến tính của DFT)

jnxnxnx

nxnxnx

2)()()(

2)()()(

*

2

*

1

−=

+= [ ] [ ]{ }

[ ] [ ]{ })()(21)(

)()(21)(

*2

*1

nxDFTnxDFTkX

nxDFTnxDFTkX

−=

+=

[ ][ ])()()(

)()()(*

21

2

*21

1

kNXkXkXkNXkXkX

−−=

−+=)()( ** kNXnx NDFT − →←

Page 22: BK BIẾN ĐỔI FOURIER NHANH (FFT)...BIẾN ĐỔI FOURIER NHANH (FFT) DSP –Lecture 6, ©2007, Dr. Dinh-Duc Anh-Vu –CSE 2 Nộidung TínhDFT & IDFT Tínhtrựctiếp Biến đổiWN

22DSP – Lecture 6, © 2007, Dr. Dinh-Duc Anh-Vu – CSE

Ứng dụng của các giải thuật FFTỨng dụng của các giải thuật FFT

§ Tính DFT của chuỗi thực 2N điểmª g(n): chuỗi thực độ dài 2N cần tính DFTª Tách thành 2 chuỗi x1(n) = g(2n) và x2(n) = g(2n+1) 0 ≤ n ≤ N-1ª Định nghĩa chuỗi x(n) = x1(n) + jx2(n) 0 ≤ n ≤ N-1ª X(k) = X1(k) + jX2(k) (tính tuyến tính của DFT)

[ ][ ])()()(

)()()(*

21

2

*21

1

kNXkXkX

kNXkXkX

−−=

−+=

∑∑

∑∑−

=

=

=

+−

=

+=

++=

1

022

1

01

1

0

)12(2

1

0

22

)()(

)12()2()(

N

n

nkN

kN

N

n

nkN

N

n

knN

N

n

nkN

WnxWWnx

WngWngkG

1,,1,0)()()(

1,,1,0)()()(

221

221

−=−=+

−=+=

NkkXWkXNkGNkkXWkXkG

kN

kN

Κ

Κ

Page 23: BK BIẾN ĐỔI FOURIER NHANH (FFT)...BIẾN ĐỔI FOURIER NHANH (FFT) DSP –Lecture 6, ©2007, Dr. Dinh-Duc Anh-Vu –CSE 2 Nộidung TínhDFT & IDFT Tínhtrựctiếp Biến đổiWN

23DSP – Lecture 6, © 2007, Dr. Dinh-Duc Anh-Vu – CSE

Ứng dụng của các giải thuật FFTỨng dụng của các giải thuật FFT

§ Lọc tuyến tính các chuỗi dữ liệu dàiª Overlap-addª Overlap-save

§ Phương phápª h(n) – Đáp ứng xung đơn vị của bộ lọc (chiều dài M)

• Được đệm thêm L-1 số không sao cho N = L + M – 1 = 2v

• H(k): DFT N điểm của h(n), theo thứ tự đảo nếu h(n) được sắp theo thứ tự thuận(Giải thuật FFT suy giảm theo tần số)

ª xm(n) – khối dữ liệu chiều dài L (đã được phân cắt)• Được đệm thêm M–1 điểm (giá trị tùy theo PP lọc được dùng)• Xm(k): DFT N điểm của xm(n), cũng theo thứ tự đảo (Giải thuật FFT suy giảm

theo tần số)ª Ym(k) = H(k)Xm(k)

• H(k) và Xm(k) cùng có thứ tự đảo → Ym(k) theo thứ tự đảo• ym(n) = IDFTN{Ym(k)} sẽ đúng theo thứ tự thuận nếu dùng giải thuật FFT suy

giảm theo thời gianª Không cần thiết đảo vị trí các dữ liệu trong việc tính DFT và IDFT

§ Tính tương quan (tương tự)

+ FFTDFT

Page 24: BK BIẾN ĐỔI FOURIER NHANH (FFT)...BIẾN ĐỔI FOURIER NHANH (FFT) DSP –Lecture 6, ©2007, Dr. Dinh-Duc Anh-Vu –CSE 2 Nộidung TínhDFT & IDFT Tínhtrựctiếp Biến đổiWN

24DSP – Lecture 6, © 2007, Dr. Dinh-Duc Anh-Vu – CSE

Phương pháp lọc tuyến tínhPhương pháp lọc tuyến tính

§ FFT không hiệu quả khi tính DFT (IDFT) tại một số điểm (< log2N) →tính trực tiếp

§ Giải thuật Goertzelª Dựa vào tính chu kỳ của WN

k và biểu diễn việc tính toán DFT như lọc tuyếntính

Nnk

knNk

k

N

m

mnkNk

N

m

mNkN

N

m

kmN

kNN

nykXnuWnhvói

nhnxWmxnyĐăt

WmxWmxWkX

=

=

−−

=

−−−

=

=⇒

=

==

==

∑∑

)()()()(

)(*)()()(

)()()(

1

0

)(

1

0

)(1

0

111)( −−−

=zW

zH kN

k

Một pole trên vòng tròn đơn vịtại tần số ωk=2πk/N

0)1()()1()( =−+−= −kk

kNk ynxnyWny

Thay vì tính tổng chập trực tiếp, ta có thể dùng PTSP

Việc tính DFT tại một điểm k có thểđược thực hiện bằng cách cho t/hđi vào bộ cộng hưởng một pole tại tần số ωk=2πk/N

Page 25: BK BIẾN ĐỔI FOURIER NHANH (FFT)...BIẾN ĐỔI FOURIER NHANH (FFT) DSP –Lecture 6, ©2007, Dr. Dinh-Duc Anh-Vu –CSE 2 Nộidung TínhDFT & IDFT Tínhtrựctiếp Biến đổiWN

25DSP – Lecture 6, © 2007, Dr. Dinh-Duc Anh-Vu – CSE

Giải thuật GoertzelGiải thuật Goertzel

§ Kết hợp từng cặp các bộ cộng hưởng có pole liên hợp phức

§ Hiện thực bằng dạng chuẩn tắc (dạng II)

ª Với đ/k đầu

§ vk(n) được lặp lại cho n = 0, 1, …, Nª Mỗi vòng cần 1 phép nhân thực

§ yk(n) được tính duy nhất một lần cho n = N

§ Nếu x(n) là t/h thực, cần N+1 phép nhân thực để tính X(k) và X(N-k) {do tínhđối xứng}

§ Giải thuật Goertzel chỉ thích hợp khi số giá trị DFT cần tính khá nhỏ (≤ log2N)

NnnvWnvny

Nnnxnvnvnv

kk

Nkk

kkNk

k

=−−=

=+−−−=

)1()()(

,...,1,0)()2()1(cos2)( 2π

0)2()1( =−=− kk vv

21

1

)/2cos(211)( −−

−−

+−−

=zzNk

zWzHk

Nk π

+

+

)cos(2 2N

Z–1

Z–1

+

knW

–1

yk(n)x(n) –

vk(n)

Page 26: BK BIẾN ĐỔI FOURIER NHANH (FFT)...BIẾN ĐỔI FOURIER NHANH (FFT) DSP –Lecture 6, ©2007, Dr. Dinh-Duc Anh-Vu –CSE 2 Nộidung TínhDFT & IDFT Tínhtrựctiếp Biến đổiWN

26DSP – Lecture 6, © 2007, Dr. Dinh-Duc Anh-Vu – CSE

Giải thuật BĐ Chirp-zGiải thuật BĐ Chirp-z

§ DFT N điểm ~ X(zk) với zk = ej2πkn/N , k=0,1,…,N-1 (các điểm cách đều trênvòng tròn đơn vị)

§ BĐ Z của x(n) tại các điểm zk

§ Nếu zk = rej2πkn/N (zk là N điểm cách đều nhau trên vòng tròn bk r)

ª Việc tính DFT có thể được thực hiện bằng giải thuật FFT cho chuỗi x(n)r-n

§ Tổng quát, zk nằm trên cung xoắn ốc bắt đầu từ điểm (đi vàohoặc đi ra gốc tạa độ)

1,...,1,0)()(1

0−== ∑

=

− LkznxzXN

n

nkk

1,...,1,0])([)(1

0

/2 −== ∑−

=

−− NkernxzXN

n

Nknjnk

π

000

θjerz =1,,1,0)( 00

00 −== LkeRerz kjjk Κφθ

R0 = r0 = 1Φ0 = θ0 = 0

Vòng trònđơn vị

Im(z)

Re(z)

r0

R0 = 1, r0 < 1Φ0 = θ0 = 0

Im(z)

Re(z)

R0 > 1

Im(z)

Re(z)

R0 < 1

Im(z)

Re(z)θ0

r0

Page 27: BK BIẾN ĐỔI FOURIER NHANH (FFT)...BIẾN ĐỔI FOURIER NHANH (FFT) DSP –Lecture 6, ©2007, Dr. Dinh-Duc Anh-Vu –CSE 2 Nộidung TínhDFT & IDFT Tínhtrựctiếp Biến đổiWN

27DSP – Lecture 6, © 2007, Dr. Dinh-Duc Anh-Vu – CSE

Giải thuật BĐ Chirp-zGiải thuật BĐ Chirp-z

1,,1,0)()()(

))(()(

)(

1,,1,0)()()(

1

0

2/0

2/

0

20

2

0

−=−=

=

=

=

−==

∑−

=

−−

Lknkhngky

Vernxng

Vnh

eRV

LkkhkyzX

N

n

nnj

n

j

k

Κ

Κ

θ

φ

njnnjnj eeenhR ωφφ ≡==⇒= )2/(2/0

02

0)(1

2/0φω n= Tần số của t/h mũ phức h(n), tăng tuyến tính theo thời gian→ h(n): chirp signal

BĐ chirp-z

Page 28: BK BIẾN ĐỔI FOURIER NHANH (FFT)...BIẾN ĐỔI FOURIER NHANH (FFT) DSP –Lecture 6, ©2007, Dr. Dinh-Duc Anh-Vu –CSE 2 Nộidung TínhDFT & IDFT Tínhtrựctiếp Biến đổiWN

28DSP – Lecture 6, © 2007, Dr. Dinh-Duc Anh-Vu – CSE

Giải thuật BĐ Chirp-zGiải thuật BĐ Chirp-z

§ Xác định tổng chập vòng của chuỗi g(n) N điểm và chuỗi h(n) M điểm (M > N)ª N-1 điểm đầu là các điểm lặp lạiª M-(N-1) điểm còn lại chứa kết quả

§ Giả sử M = L + (N-1)§ M điểm của chuỗi h(n) được xác định –(N–1) ≤ n ≤ (L–1)§ Định nghĩa chuỗi M điểm h1(n) = h(n–N+1) n = 0,1,…,M–1§ H1(k) = DFTM{h1(n)}§ G(k) = DFTM{g(n)} (sau khi đã đệm thêm vào g(n) L-1 số 0)§ Y1(k) = G(k)H(k) → y1(n) = IDFT{Y1(k)} n = 0,1,…,M–1§ N-1 điểm đầu tiên của y1(n) là các điểm lặp → loại bỏ chúng§ Các điểm kết quả là giá trị của y1(n) khi N-1 ≤ n ≤ M–1

ª y(n) = y1(n+N-1) n = 0,1,…,L-1

§ X(zk)= y(k)/h(k) k = 0,1,…,L-1

1,,1,0)()()(1

0−=−= ∑

=

LknkhngkyN