Professional Documents
Culture Documents
HCM
XỬ LÝ SỐ TÍN HIỆU
Digital Signal Processing
1
Chương 5:
BIẾN ĐỔI FOURIER RỜI RẠC
BIẾN ĐỔI FOURIER NHANH
2
Chương 5:
BIẾN ĐỔI FOURIER RỜI RẠC
BIẾN ĐỔI FOURIER NHANH
N 1 j 2 kn
N :0 k N 1
X (k )
n
0
x (n )e 0 :k còn lại
N 1
N : 0 k N
kn
x(n)W
X (k )
j N
WN 2 1
e n0 :
► WN tuần hòan với độ dài k còn lại
N: 0
2 j 2N r
j N (r
W N(r mN ) e mN ) e WN 6
r
► X(k) biểu diễn dưới dạng modun &
argument:
X(k) X(k) e j( k )
X (k ) x ( n )W kn
N :0 k N
1
n0
x ( n ) 1
N
N 1
X ( k )WN kn
CNDT _ĐÀO THỊ THU THỦY
:0 n N 7
k 0
Ví dụ 5.1: Tìm DFT của x(n) 1,2,3,4
dãy:
3
2
X (k ) x(n) 4
kn
j
4 j;W 2 1;W 3 j
n0 W
W41 e 4 4
3
X (0) x(n)W 0
4 x(0) x(1) x(2) x(3)
n0 10
3
X (1) x(n)W4n x(0) x(1)W41 x(2)W42 x(3)W43 2
n0 j2
3
X (2) x(n)W42n x(0) x(1)W42 x(2)W44 x(3)W46 2
n0
3
X (3) x(n)W43n x(0) x(1)W43 x(2)W46 x(3)W49 2
n0 j2 8
THỦY
5.3 CÁC TÍNH CHẤT DFT
a) Tuyến tính
► Nếu: x (n)
D TF
X (k) x (n) D
TF
X
N
(k)
1 N 1 N D TF2 N 2
► Thì: a x (n) a x (n) a X (k)
N
aX (k)
1 1 N 2 2 N 1 1 N 2 2
N1 N2 x2 Chọn: N max{ N 1 ,
Nếu: x
L 1
L N2 }
b) Dịch vòng:
DF
► Nếu: x(n)N
T X
(k)N DF
► Thì: x(n n0 )N T W kn0 X N gọi là dịch vòng của
N (k) x(n)N đi n0 đơn vị
Với x(n n0 )N x(n n0 ) rect N
:
10
(n)
11
12
x(n)
Ví dụ 5.2: Cho:
1,2,3,4
a) Tìm dịch tuyến tính:
x(n+3), x(n-2)
b)Tìm dịch vòng: x(n+3)4, x(n-2)4
x(n)
4
3
2
1 n
0 1 2 3
x(n+3) x(n-2)
4 4
3 3
a) 2 2
1 n 1 n
-3 -2 -1 0 0 1 2 3 4 5 13
x(n) x(n-1)4
b) 4 4
3 3
2 2
1 1 n
n
0 1 2 3 0 1 2 3
N
x(n+1)4
4 x(n 2) 4 3,4,1,2
3
x(n 3)
2
1 n
4
0 1 2
3
4,1,2,3
14
c) Chập vòng:
► Nếu: x (n) D
FT
x (n) D
FT
X (k) X (k)
1 N 1 2 N 2
Thì: x (n) x (n) X (k)
N D TF N
►
X (k)
1 N 2 NN 1 N 2
N
1 Chập vòng 2 dãy
Với: x (n) x (n)
1 N 2 N x1 (m)N x2 (n x1(n) & x2(n)
~ m)N
Và x2 (n m)N x m0(n N rectN Dịch vòng dãy
: m)
2 (n) x2(-m) đi n
Chập vòng có tính giao đ/vị
hóan:
x1 (n)N x2 (n)N x2 (n)N x1
(n)N
N1 N2 2 Chọn: N max{ N 1 ,
Nếu: Lx1
Lx N2 } 15
x1 (n) x2 (n)
Ví dụ 5.3: Tìm chập vòng 2
dãy 2,3,4
1,2,3,4
16
x2(m) x2(-m)
4 4
3 3
2 2
1 m 1 m
0 -3 -2 -1 0
2~ (m) xx~~(m)rect
xx (m) (m)rect(n)
4
x 2(m 4 2
(n) 4 2 4
2 4 4 2
)
3 3 3
2 2
1 1
m m
0 1 2
-3 -2 -1 0 1 2 3 4
3
17
Xác định x2(n-m) là dịch vòng của x2(-m) đi n đơn
vị
n>0: dịch vòng sang phải, n<0: dịch vòng sang trái
4 x2(-m)4 4 x2(1-m)4
3 3
2 2
1 m 1 m
0 1 2 0 1 2
3 3
4 x2(2-m)4 4 x2(3-m)4
3 3
2 2
1 m 1 m
0 1 2 3 0 1 2 3 18
Nhân các mẫu 3
x1(m) & x2(n-m)
x3 (n)4 x1 (m )4 x2 (n m )4 : 0 n
và cộng lại:
3 3
n=0: m0
x3 (0)4 x1 (m )4 x2 (0 m )4 26
m0
3
n=1:
x 3 (1)4 x1 (m )4 x2 (1 m )4 23
m0
3
n=2:
x3 (2)4 x1 (m )4 x2 (2 m )4 16
m0
3
n=3:
x3 (3)4 x1 (m )4 x2 (3 m )4 25
26,23,16,25
m0
N 1
X (k ) x ( n )W kn
N :0 k N
1
n0
N 1
kn
x ( n ) 1 X N :0 n N
N k 0 ( k )W 1
20
5.4 BiẾN ĐỔI FOURIER NHANH FFT
1. KHÁI NiỆM BiẾN ĐỔI FOURIER NHANH FFT
Vào những năm thập kỷ 60, khi công nghệ vi xử lý
phát triển chưa mạnh thì thời gian xử lý phép tóan DFT
trên máy tương đối chậm, do số phép nhân phức
tương đối
lớn.
N 1
DFT của x(n) có độ dài N: X (k ) x(n)W Nkn : 0k N
n0 1
Để tính X(k), với mỗi giá trị k cần có N phép nhân và (N-
1) phép cộng, vậy với N giá trị k thì cần có N2 phép nhân
và N(N-1) phép cộng.
Để khắc phục về mặt tốc độ xử lý của phép tính DFT,
nhiều tác giả đã đưa ra các thuật tóan riêng dựa trên
DFT gọi là FFT (Fast Fourier Transform).21
https://towardsdatascience.com/fast-fourier-transform-937926e591cb
2. THUẬT TOÁN FFT CƠ SỐ 2
a. THUẬT TÓAN FFT CƠ SỐ 2 PHÂN THEO THỜI GIAN
(N/ (N/
X (k )
2)1
x(2r )WNkr/ 2 WN
2)1
x(2r 1)WN / 2
r0 k
. r0 kr
(N/ (N/
Đặt X 0 (k)
2)1
x(2r)WNkr/ X1 (k) 2)1
x(2r 1)WN /
: r0 2 r0 kr 2
nhân hệ số
► Sau đó đánh lại chỉ số theo thứ tự các mẫu x(n), tiếp
tục phân chia DFT của N/2 điểm thành 2 DFT của N/4
điểm theo chỉ số n chẵn và lẽ và cứ thế tiếp tục phân
chia cho đến khi nào còn DFT 2 điểm thì dừng lại.
► Ví dụ X0(k) được phân chia:
( N / 2)1 (N/
X 0 (k)
2)1 x(2r)W Nkr/ g(r)WNkr/
r0 2 r0 2
(N/ (N/
2)1
g(r)W Nkr/
2)1
g(r )WN /
r0,2,4... 2 r1,3,5... kr 2
(N/ (N/
4)1 g(2l )W kl
W k
4)1
g(2l 1)WN /
N/4
l0 l0 kl 4
N/2
X 00 (k) W k .X (k) 25
X 00 (k) W k .X (k)
N/2
X00(0) 01
x(0) X0(0)
DFT
Phân chia DFT- N/2 điểm
X00(1)-> 2 DFT- N/4 điểm của X0(k)
x(4) N/4 W0N/2 X0(1)
X10(0)
x(1) X1(0)
DFT
X10(1)
x(5) N/4 W0N/2 X1(1)
x(0) X00(0)
Lưu đồ DFT
W0N = 1
2 điểm: x(4) X00(1)
WNN/2 =-1
27
Lưu đồ DFT dãy x(n) sau 3 lần phân chia với N=8
x(0) X(0)
W0 W0
x(4) X(1)
-1 W2 W1
x(2) X(2)
W4 W2
x(6) X(3)
-1
W6 W3
x(1) X(4)
W0 W4
x(5) X(5)
-1 W2 W5
x(3) X(6)
W4 W6
x(7) X(7)
-1 W6 W7
x(0) X(0)
x(4) X(1)
-1
x(2) W0 X(2)
-1
x(6) W2 X(3)
Đảo -1 -1
bít
x(1) W0 X(4)
-1
x(5) W1 X(5)
-1 -1
x(3) W0 W2 X(6)
-1 -1
x(7) W2 W3 X(7)
-1 -1 -1
► Với N=2M -> M lần phân chia, M=log2N
► Số phép nhân = NM/2=(N/2)log2N
► số phép cộng = NM=(N)log2N 29
Ví dụ : Hãy vẽ lưu đồ và tính FFT cơ số 2 phân theo
x(n)
t/g
1 ,2 ,3 ,4
x(0) X(0)
x(2) X(1)
-1
x(1) W0 X(2)
-1
x(3) W1 X(3)
-1 -1
:
Bảng mô tả qui luật đảo bít:
31
b. THUẬT TÓAN FFT CƠ SỐ 2 PHÂN THEO TẦN SỐ
► Thuật tóan dựa trên sự phân chia dãy ra X(k) thành các
dãy nhỏ, do biến k biểu thị cho trục tần số nên gọi là
phân chia theo tần số.
N N 1
x(n)W
( N / 2 )1
X (k ) 1 kn
N x(n)W N kn
x(n)W Nkn
n0 n0 n N /
2
(N/ (N/
2)1 x(n)W Nkn
2)1 x(n N / 2)WNk ( n N /
2)
n0 n0
(N/ (N/
2)1 2)1
x(n N / 2)WN
n0 x(n)W W Nkn NkN / 2
n0 kn
(N/
( 1)k x(n N /
2)1
n0
x(n)
2) W N
kn
32
► Với k chẵn, thay
k=2r: ( N /
X(2r) 2)1 x(n) x(n N / N/
2) W rn
n0 2
C N DT_ ĐÀ O T HỊ TH U T HỦ Y
Phân chia DFT N=8 điểm -> 2 DFT N/2= 4
điểm g(0)
x(0) X(0)
g(1)
x(1) DFT X(2)
g(2) k chẵn
x(2) N/2 X(4)
g(3) điểm
x(3) X(6)
h(0) W0
x(4) X(1)
-1
h(1) W1
x(5) DFT
-1 X(3) k lẽ
h(2) W2 N/2
x(6) X(5)
-1 điểm
h(3) W3
x(7) X(7)
-1
34
► Sau đó đánh lại chỉ số theo thứ tự các mẫu X(k), tiếp
tục phân chia DFT của N/2 điểm thành 2 DFT của N/4
điểm theo chỉ số k chẵn và lẽ. Tiếp tục phân chia cho
đến khi nào còn DFT 2 điểm thì dừng lại.
► Dữ liệu ra X(k) được sắp xếp theo thứ tự đảo bít, còn
dữ liệu vào được sắp theo thứ tự tự nhiên.
35
Lưu đồ DFT dãy x(n) sau 3 lần phân chia với N=8
x(0) X(0)
x(1) X(4)
-1
x(2) W0 X(2)
-1
x(3) W2 X(6)
-1 -1 Đảo
W0
bít
x(4) X(1)
-1
x(5) W1 X(5)
-1 -1
x(6) W2 W0 X(3)
-1 -1
x(7) W3 W2 X(7)
-1 -1 -1
36
Ví dụ : Hãy vẽ lưu đồ và tính FFT cơ số 2 phân theo
t/s x ( n ) 1 ,2 ,3 ,4
x(0) X(0)
x(1) X(2)
-1
x(2) W0 X(1)
-1
x(3) W1 X(3)
-1 -1
n2 0 1 … N1-1
n1
0 x(0) x(N2) … x[N2(N1-1)]
1 x(1) x(N2+1) … x[N2(N2-1)+1]
… … … … …
N2-1 x(N2-1) x(2N2-1) … x[N1N2-1] 38
► Lấy ví dụ sắp xếp dãy x(n) với N=12, chọn N1=3 và
N2=4
n2 n1 0 1 2
0 x(0) x(4) x(8)
1 x(1) x(5) x(9)
2 x(2) x(6) x(10)
3 x(3) x(7) x(11)
► Các chỉ số n của x(n), k của X(k) xác
định:
0 n1 N1-1
► n = n1N2 + n2
0 n2 N2-1
0 k1 N1 -1
► k = k1 + k2N1
0 k N -1 39
► DFT N điểm dãy x(n) được phân
tích: N 2 1 N1 1
X (k) X (k1 k2 N1 ) x(n2 n1 (k1 k 2 N 1 )(n2 n1N 2 )
N
n2 0 n1
0 N 2 )W
N 2 1 N 1 1
x(n 2 n1 N 2 )W
n2k 1
N W Nn1k 1N 2W Nn2k 2N 1W Nn1k 2N 1N 2
n2 0 n1 0
W n 1 k 1 ; W n 2 k 2 N 1 W n 2 k 2 ; W n 1 k 2 N1 N 2
Do:WNn k N 1 1 2
N1 N N2 N
1
N 2 1 N1
2 1
n1k1
X (k ) x(n2 n1 N 2 )W N1 W Nn k W Nn22k2
1
n2 0 n1 0
40
N 1 1
F (n2 , k1 ) x(n2 n1 N 2 )WNn11k1
► Đặt n1 0
: n2k1
G(n2 , k1 ) F (n2 , N
k1 ).W N 1
X (k ) G(n2 ,
2
n2k 2
N2
n2 0
k1 )W
Các bước tiến hành thuật tóan:
► Sắp xếp dữ liệu vào theo thứ tự từng cột, mảng
x
► Tính DFT theo từng hàng mảng x, được F(n2,k1)
► Tính mảng hệ số WN
n2k1
X(k)
Ví dụ : Nêu các bước tính và vẽ lưu đồ thuật tóan FFT
dãy x(n) với N=N1N2=12, chọn N1=3 và N2=4
► Sắp xếp dữ liệu vào theo thứ tự từng cột như bảng:
n2 n1 0 1 2
0 x(0) x(4) x(8)
1 x(1) x(5) x(9)
2 x(2) x(6) x(10)
3 x(3) x(7) x(11)
42
► Tính DFT theo từng hàng mảng x, được F(n2,k1):
N 1 1
F (n2 , k1 ) x(n2 n1 N 2 )WNn11k1
n1 0
n 2 k1 0 1 2
0 F(0,0) F(0,1) F(0,2)
1 F(1,0) F(1,1) F(1,2)
2 F(2,0) F(2,1) F(2,2)
3 F(3,0) F(3,1) F(3,2)
43
► Tính mảng hệ số WN
n 2k 1
n2 k 1 0 1 2
WN WN0
WN
0 0 0
WN WN1
WN
1 0 2
WN WN WN
2 0 2 4
WN WN3
WN
3 0 6
44
► Nhân các phần tử mảng F(n2,k1) với các hệ số của
mảng WN tương ứng, được G(n2,k1) :
n2k1
n2 k 1 0 1 2
0 G(0,0) G(0,1) G(0,2)
1 G(1,0) G(1,1) G(1,2)
2 G(2,0) G(2,1) G(2,2)
3 G(3,0) G(3,1) G(3,2)
45
► Tính DFT theo từng cột mảng G(n2,k1), được X(k):
N 2 1
X (k) X (k1 N1 k2 ) G(n2 , n 2k 2
N2
n 0
2
k1 )W
k2 k1 0 1 2
0 X(0) X(1) X(2)
1 X(3) X(4) X(5)
2 X(6) X(7) X(8)
3 X(9) X(10) X(11)
x(0) X(0)
DFT
x(4) N1 DFT
N2
x(8) điểm X(6)
điểm X(3)
x(1) W0 X(9)
DFT
x(5) N1 W1 X(1)
x(9) điểm W2 DFT
N2 X(4)
x(2) W0 X(7)
DFT điểm
W2 X(10)
x(6) N1
W4
x(10)