Faculty of Computer Science and EngineeringHCMC University of Technology 268, av.. Ly Thuong Kiet, District 10, HoChiMinh city NHANH FFT.
Trang 1Faculty of Computer Science and Engineering
HCMC University of Technology
268, av Ly Thuong Kiet,
District 10, HoChiMinh city
NHANH (FFT)
Trang 3DSP – Lecture 6, © 2007, Dr Dinh-Duc Anh-Vu – CSE
§ Tính DFT: xác nh chuỗi N giá trị phức {X ) khi t trước chuỗi
)()
W n x k
X
N
n
kn N
1 0
) (
1 )
W k
X N
n x
N
k
kn N
FT IDFT
N j
0
2 2
1
0
2 2
) ( )
) ( )
(
) ( )
) ( )
(
N n
N
kn I
N
kn R
I
N n
N
kn I
N
kn R
R
n x n
x k
X
n x n
x k
X
Giải thuật tính DFT tối ưu mỗi phép tốntheo những cách khác nhau
k N
N k N
k N
N k N
W W
hoàn Tuần
W W
xứng Đối
=
−
=
+ + / 2
Trang 4Phương pháp chia-trị
x(N-1)
… x(2)
x(1) x(0)
N-1
… 2
1 0
x(L-1,M-1)
… x(L-1,1)
x(L-1,0) L-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
… 1
0
l m
Trang 5DSP – Lecture 6, © 2007, Dr Dinh-Duc Anh-Vu – CSE
(
) , ( )
, (
W m l x q
p X
Với:
x(n) : theo c t X(k) : theo hàng
lq N
Mpl N
mLq N
MLmp N
l mL q Mp
W( + )( + ) =
pl L
pl M N
Mpl N
mq M
mq L N
mqL N
Nmp N
W W
W
W W
W W
1
lp L L
l
M
m
mq M
lq
W q
,
(
10
)()
W n x k
X
N n
kn N
DFT M ñiểm F(l q) G(l q)
DFT L ñiểm X(p q)
123
Trang 6Giải thuật 1
n = l + mL
k = Mp + q
Trang 7DSP – Lecture 6, © 2007, Dr Dinh-Duc Anh-Vu – CSE
§ Mô hình tính toán DFT ñ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 = r 1 r 2 r 3 …r v = r v → 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ị
DF
T 3
ñiểm
x(1)
W 6 lq
X(0) X(1) X(2)
X(3)
x(1) x(3) … x(N-1)
x(0) x(2) … x(N-2) l=0
Trang 8) 1 2 ( 1
) 2 / (
()
2(
)()
(
1, ,
1,0)
()
(
N m
m k N N
m
mk N
old n
kn N even
n
kn N
N n
kn N
W m
x W
m x
W n x W
n x
N k
W n x k
X
2 /
1 , 0 )
( )
(
) ( )
( )
(
2 1
2 /
1 ) 2 / (
0
2 2
/
1 ) 2 / (
0 1
−
= +
k F W k
F
W m f
W W
m f k
X
k N
km N N
m
k N
km N N
m
2 / , , 1 , 0 )
( )
(
2 / , , 1 , 0 )
( )
(
2 2
1 1
2 /
2 /
N k
k F m
f
N k
k F m
N k
W + / 2 = −
F 1 (k), F 2 (k) tuần hoàn chu k N/2
−
= +
=
1 , ,
1 , 0 )
( )
( )
(
1 , ,
1 , 0 )
( )
( )
(
2 2
1 2
2 2
1
N k
N N
N k
N
k k
F W k
F k
X
k k
F W k
F k
X
Trang 9DSP – Lecture 6, © 2007, Dr Dinh-Duc Anh-Vu – CSE
1 , 0 )
( )
(
1 , ,
1 , 0 )
( )
(
2 2
2
2 1
1
N k
N
N
k k
F W k
G
k k
F k
−
= +
=
1 , ,
1 , 0 )
( )
( )
(
1 , ,
1 , 0 )
( )
( )
(
2 2
1 2
2 2
1
N N
N
k k
G k
G k
X
k k
G k
G k
x(1)x(3)
x(4)
x(N -2)
F 2 (0)
F 2 (1) F
2 (2)
F 2 (N/2-1)
x(N -2)
F 1 (0)
F 1 (1) F
1 (2)
F 1 (N/2-1)
D FT
N /2
ñ iể m
X(N/2-1)
G 1 (N/2-1)
X(N/2)
X(N/2+1)
X(N-1)
Trang 10§ Ti p t c phân f1(n) và f2(n) thành các chuỗi N/4 ñi m
1,0)
12
()
(
1, ,
1,0)
2()
(
1, ,
1,0)
12
()
(
1, ,
1,0)
2()
(
4 2
22
4 2
21
4 1
12
4 1
11
N N N N
n n
f n
v
n n
f n
v
n n
f n
v
n n
f n
−
= +
−
= +
=
1 , ,
1 , 0 )
( )
( )
(
1 , ,
1 , 0 )
( )
( )
(
1 , ,
1 , 0 )
( )
( )
(
1 , ,
1 , 0 )
( )
( )
(
4 22
2 / 21
4 2
4 22
2 / 21
2
4 12
2 / 11
4 1
4 12
2 / 11
1
N k
N N
N k
N
N k
N N
N k
N
k k
V W
k V k
F
k k
V W
k V k
F
k k
V W
k V k
F
k k
V W
k V k
F
DFT N/4 ñiểm
Trang 11DSP – Lecture 6, © 2007, Dr Dinh-Duc Anh-Vu – CSE
x(4)x(6)x(1)
x(3)
x(5)x(7)
Trang 12-1
X(0) X(1)
X(2)
X(3) X(4) X(5)
Trang 13Bộ 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ỗ
Trang 14FFT 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ân chia
Bộ nhớ
Phân chia
Bộ nhớ
111 111
111
011 101
110
101 011
101
001 001
100
110 110
011
010 100
010
100 010
001
000 000
000
Địa chỉ
Phân chia
Địa chỉ
Phân chia
Địa chỉ
§ 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
Trang 15X(2)
X(1) X(4)
Trang 16FFT cơ số 4
x(0)x(1)x(2)x(3)
x(4)x(5)x(6)x(7)
L = 4, M = N/4
N = 4v
x(4n)x(4n+1)x(4n+2)x(4n+3)
Trang 17) , (
) 4
( )
, (
) 1 (
, , 1 , 0
3 , 2 , 1 ,
0 )
, ( )
, (
3 , 2 , 1 , 0 )
, ( )
, (
4
4
4 /
0
4 /
3
0
4
q p X
q p X
l m x
m l x
q
l W
m l x q
l F
p W
q l F W q
p X
N
N N
m
mq N
l
lp lq
) , 2 (
) , 1 (
) , 0 (
1 1
1 1
1 1
1 1
1 1
1 1
) , 3 (
) , 2 (
) , 1 (
) , 0 (
3 2 0
q F
W
q F
W
q F
W
q F
W
j j
j j
q X
q X
q X
q X
q N
q N
q N N
lp L L
l
M m
mq M
lq
W q
( )
, (
Trang 18q N
W2
q N
W3
-j
-1
j -1
1 -1
j -1 -j
0 q 2q
3q
Trang 19) , 0 (
) , 0 (
) , 0 (
1 0
1 0
1 0
1 0
0 1
0 1
0 1
0 1
0 1
0
0 1
0 1
0 1
0
0 1
0 1
) , 3 (
) , 2 (
) , 1 (
) , 0 (
3 2 0
q F
W
q F
W
q F
W
q F
W
j
j
q X
q X
q X
q X
q N
q N
q N N
Biểu di n lại nhân ma trận
(3N/8)log 2 N : Nhân phức (giảm 25% vs FFT 2 ) Nlog 2 N : Cộng phức (bằng FFT 2 )
3vN/4 = (3N/8)log 2 N : Nhân phức (giảm 25% vs FFT 2 ) 12vN/4 = (3N/2)log 2 N : Cộng phức (tăng 50% vs FFT 2 )
Trang 20Hiện thực các giải thuật FFT
§ FFT c số 2
ª Tính toán hìn ướm: (N/2)log 2 N lần
ª Hệ số quay W N 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ép chuỗi nhập và xuất theo úng thứ tự
ª 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ụ)
1 0
) (
1 )
W k
X N
n x
N
k
kn N
Trang 21DSP – Lecture 6, © 2007, Dr Dinh-Duc Anh-Vu – CSE
Ứng dụng của các giải thuật FFT
x n
x
n x n
x n
x
2
) ( )
( )
(
2
) ( )
( )
(
* 2
* 1
(
) ( )
( 2
1 )
(
* 2
* 1
n x DFT n
x DFT k
X
n x DFT n
x DFT k
) (
) ( )
(
* 2
1 2
* 2
1 1
k N
X k
X k
X
k N
X k
X k
=
) (
)
*
k N
X n
x ← →DFTN −
Trang 22Ứng dụng của các giải thuật FFT
§ Tính DFT của chuỗi thực 2N iểm
) (
) ( )
(
* 2
1 2
* 2
1 1
k N
X k
X k
X
k N
X k
X k
=
1
0
2 2
1
0 1
1
0
) 1 2 ( 2 1
0
2 2
) ( )
(
) 1 2
( )
2 ( )
(
N
n
nk N
k N N
n
nk N
N
n
k n N N
n
nk N
W n x W
W n x
W n
g W
n g
k G
1 ,
, 1 , 0 )
( )
( )
(
1 ,
, 1 , 0 )
( )
( )
(
2 2
1
2 2
−
= +
=
N k
k X
W k
X N
k G
N k
k X
W k
X k
G
k N
k N
Κ Κ
Trang 23DSP – Lecture 6, © 2007, Dr Dinh-Duc Anh-Vu – CSE
Ứ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 = 2 v
• 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ố)
ª x m (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)
• X m (k): DFT N iểm của x m (n), cũng theo thứ tự o (Giải thuật FFT suy giảm theo tần số)
ª Y m (k) = H(k)X m (k)
• H(k) và X m (k) cùng có thứ tự o → Y m (k) theo thứ t o
• y m (n) = IDFT N {Y m (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ự)
+ FFT
Trang 24Ph ươ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 W N k và biểu diễn việc tính toán DFT như lọc tuyến tính
N n k
kn N k
k N
m
m n k N k
N
m
m N k N N
m
km N
kN N
n y k
X
n u W
n h vói
n h n
x W
m x n
y
t
W m x W
m x W
(
) ( )
(
) (
* ) ( )
( )
(
) ( )
( )
(
1
0
) (
1
0
) (
( − −
−
=
z W
z
N k
Một pole trên vòng tròn ñơn vị tại tần số ωk=2πk/N
0 )
1 ( )
( )
1 (
)
k k
k N
Trang 25DSP – Lecture 6, © 2007, Dr Dinh-Duc Anh-Vu – CSE
Gi i thuật Goertzel
§ K t h p từng cặp cá ộ cộng hưởng có pole liên hợp phức
§ Hiện thự ằng dạng chuẩn t c (dạng II)
ª Với /k u
§ v k (n) ược lặp lại cho n = 0, 1, …, N
ª Mỗi vòng cần 1 phép nhân thực
§ y k (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ỏ (≤ log 2 N)
N n
n v W n
v n
y
N n
n x n
v n
v n
v
k
k N k
k
k k
N
k k
) ( )
(
, , 1 , 0 )
( )
2 (
) 1 (
2 )
0 )
2 ( )
1
) / 2 2
1
1 )
N k
z
W z
H
k N k
Z –1
Z –1
+
k n
W
((
(
Trang 26Giải thuật BĐ Chirp-z
§ DFT N ñi m ~ X(z k ) với z k = e j2πkn/N , k=0,1, ,N-1 (các iểm cách u trên
vòng tròn n vị)
§ BĐ Z của x(n) tại các iểm z k
§ Nếu z k = re j2πkn/N (z k 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
hoặc i ra gốc tạa )
1 , ,
1 , 0 )
( )
z n x z
X
N
n
n k k
1 , ,
1 , 0 )
( )
e r
n x z
X
N n
N kn j n
k
0
0 0
je r
z =
1 ,
, 1 , 0 )
Trang 27DSP – Lecture 6, © 2007, Dr Dinh-Duc Anh-Vu – CSE
Giải thuật BĐ Chirp-z
, , 1 , 0 )
( ) ( )
(
) )(
( )
(
) (
1 ,
, 1 ,
0 )
(
)
( )
(
1
0
2 / 0
2 / 0
2 0
2 0
n k
h n g k
y
V e
r n x n
g
V n
h
e R V
L
k k
h
k
y z
X
N n
n n
j n
j k
Κ Κ
n j n
n j n
j
e e
e n
) ( 1
2 /
Trang 28Giả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 h 1 (n) = h(n–N+1) n = 0,1,…,M–1
§ H 1 (k) = DFT M {h 1 (n)}
§ G(k) = DFT M {g(n)} (sau khi ã m thêm vào g(n) L-1 số 0)
§ Y 1 (k) = G(k)H(k) → y 1 (n) = IDFT{Y 1 (k)} n = 0,1,…,M–1
§ N-1 iểm u tiên của y 1 (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 y 1 (n) khi N-1 ≤ n ≤ M–1
ª y(n) = y 1 (n+N-1) n = 0,1,…,L-1
§ X(z k )= y(k)/h(k) k = 0,1,…,L-1
1 ,
, 1 , 0 )
( ) ( )
n k
h n g k
y
N n
Κ