Xử lý số tín hiệu
Chương 8: Biến đổi DFT và FFT
Các phép biến đổi Fourier
Miền thời gian
Miền tần số
2.5
2
1.5
1
T
0.5
(cid:0)
0
(cid:0) (cid:0) (cid:0)
0
1
2
3
4
5
6
7
8
s(t)
tωkje
dt
kc
(cid:0)
time, t
1 T
0
Discrete FSFS Periodic (period T)
2.5
tfπj2
Continuous (cid:0)
2
(cid:0) (cid:0)
1.5
S(f)
s(t)
e
dt
(cid:0) (cid:0) (cid:0) Aperiodic Continuous
1
FTFT (cid:0) (cid:0)
0.5
0
0
2
4
6
8
10
12
time, t
2.5
1N
(cid:0) (cid:0)
2
j
1.5
nkπ2 N
s[n]
e
(cid:0) (cid:0) (cid:0)
1
kc~
1 N
Discrete
0.5
0n
DFSDFS (cid:0)
0
0
1
2
3
4
5
6
7
8
Periodic (period T)
time, tk
S(f)
s[n]
nfπ2je
(cid:0) (cid:0) (cid:0) Discrete (cid:0) (cid:0) (cid:0)
2.5
DTFT Continuous (cid:0) (cid:0) (cid:0)
2
n
1.5
Aperiodic
1
(cid:0) (cid:0)
0.5
1N
j
0
nkπ2 N
(cid:0) (cid:0)
0
2
10
12
4
6
8
s[n]
e
kc~
(cid:0) DFTDFT
time, tk
1 N
0n
Discrete (cid:0)
Chuỗi Fourier (Fourier series-FS)
Tín hiệu x(t) tuần hoàn, chu kỳ Tp , tần số F0 = 1/Tp
(cid:0)
j
t
2
kF 0
(cid:0) (cid:0)
tx )(
k ec
(cid:0) (cid:0)
(cid:0)
(cid:0) (cid:0) (cid:0)
j
t
2
kF 0
c
dt
etx )(
k
k 1 T
p
pT
(cid:0) (cid:0) (cid:0)
X(f) x(t)
τ
f
-F0
F0
t 0 Tp -Tp
Biến đổi Fourier (Fourier transform-FT)
Tín hiệu x(t) không tuần hoàn
j
ft
(cid:0)2
(cid:0) (cid:0)
eFX
df
tx )(
(cid:0) (cid:0) (cid:0) (cid:0)
(cid:0) (cid:0)
(cid:0) (cid:0)
j
ft
(cid:0)2
fX
etx
dt
(cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0)
(cid:0) (cid:0)
X(ω)
x(t)
ω
t -τ/2 τ/2
-2π/τ 2π/τ
Biến đổi Fourier của một số tín hiệu cơ bản
Biến đổi Fourier thời gian rời rạc Discrete – Time Fourier Transform (DTFT)
Tín hiệu x(n) rời rạc, không tuần hoàn
(cid:0) nj
(cid:0)
(cid:0)
X
d
e
nx )(
(cid:0)
1 (cid:0) 22
(cid:0) (cid:0) (cid:0) (cid:0)
(cid:0)
(cid:0) (cid:0)
(cid:0)
X
njenx
(cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0)
n
(cid:0) (cid:0) (cid:0)
Chuỗi Fourier rời rạc Discrete Fourier Sequence (DFS)
Tín hiệu x(n) rời rạc, tuần hoàn với chu kỳ N
N
1
(cid:0)
j
2
Nkn /
(cid:0)
nx )(
kec
(cid:0) (cid:0)
0
(cid:0)
1
(cid:0)
(cid:0)
j
2
Nkn /
c
enx
k
(cid:0) (cid:0) (cid:0) (cid:0) (cid:0)
k 1 N N
n
0
(cid:0)
Biến đổi Fourier rời rạc Discrete Fourier Transform (DFT)
Tín hiệu x(n) rời rạc, không tuần hoàn, chiều dài L hữu
hạn Biến đổi DTFT cho phổ liên tục X(ω)
|X(ω)| x(n)
0 L-1 n -π π ω
Biến đổi Fourier rời rạc Discrete Fourier Transform (DFT)
Lặp lại tín hiệu x(n) với chu kỳ N ≥ L Tín hiệu xp(n)
tuần hoàn chu kỳ N
xp(n)
N N-1 0 L-1 n n
Biến đổi Fourier rời rạc Discrete Fourier Transform (DFT)
xp(n) tuần hoàn chu kỳ N Tính DFS của xp(n) Xp(k)
xp(n)
L-1
N-1
N
0
n
n
|Xp(k)|
-N 0 N k
Biến đổi Fourier rời rạc Discrete Fourier Transform (DFT)
Xp(k) tuần hoàn chu kỳ N Đặt X(k) = Xp(k), k = 0,..,N-1
x(n)
0
L-1
n
DFT
|X(k)|
0 N-1 k
Biến đổi Fourier rời rạc Discrete Fourier Transform (DFT)
Công thức biến đổi DFT N-điểm cho chuỗi chiều dài L:
L
1
(cid:0)
j
2
Nkn /
enx
N
kX )(
k ,
,...,2,1,0
1
(cid:0) DFT (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0)
n
0
(cid:0)
N
1
(cid:0)
j
2
Nkn /
(cid:0)
nx
ekX
N
n ,
,...,2,1,0
1
IDFT (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0)
1 N
k
0
(cid:0)
Giải thuật biến đổi Fourier nhanh Fast Fourier Transform (FFT)
Tính trực tiếp DFT N – điểm của x(n): Tổng quát: X(k) và x(n) là số phức:
N
1
(cid:0) 2
(cid:0) 2
(cid:0) (cid:0) (cid:0)
cos
sin
kX R
nx R
nx I
n
0
(cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0)
N
1
kn N (cid:0) 2
kn N (cid:0) 2
(cid:0) (cid:0) (cid:0)
sin
cos
kX I
nx R
nx I
kn N
kn N
n
0
Tính trực tiếp cần:
•
2N2 phép tính hàm lượng giác
(cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0)
Chi phí tính toán lớn
• 4N2 phép nhân thực • 4N(N-1) phép cộng thực
Giải thuật biến đổi Fourier nhanh Fast Fourier Transform (FFT)
j
N
/2(cid:0)
(cid:0)
Đặt
(cid:0)
eW N
N
1
(cid:0)
kX
nk NWnx )(
(cid:0) (cid:0) (cid:0) (cid:0)
n
0
(cid:0)
2/
(cid:0)
Tính đối xứng:
k N
(cid:0) (cid:0)
(cid:0)
(cid:0)
W
Nk W M Nk W Tính tuần hoàn: M
W k N
Giải thuật biến đổi Fourier nhanh Fast Fourier Transform (FFT)
Xét chuỗi x(n) = {x(0), x(1)} FFT 2 điểm của x(n):
X
x
)0(
xWxWx )0(
)1(
)0(
)1(
0 2
0 2
(cid:0) (cid:0) (cid:0) (cid:0)
x
xWxWx )0(
)1(
)0(
)1(
0 2
1 2
= 1)
X )1( (Lưu ý: W2
(cid:0) (cid:0) (cid:0) (cid:0)
X(0) x(0)
1 Bướm (Butterfly)
X(1) x(1) -1
Giải thuật FFT phân chia theo thời gian (Decimation in time – DIT)
Xét chuỗi x(n) có chiều dài N = 2K
Đặt g(n) = x(2n) g(n) = {x(0), x(2), … } Đặt h(n) = x(2n + 1) h(n) = {x(1), x(3), …}
DFT N điểm của x(n):
kX )(
kHWkG )(
)(
k ,
,...,1,0
1
k N
N 2
(cid:0) (cid:0) (cid:0) (cid:0)
k
(cid:0)
W
N
kX )(
kG (
)
kH (
k ) ,
,...,
1
N 2 N
N 2
N 2
N 2
G(k), H(k) : DFT N/2 điểm của g(n), h(n)
(cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0)
Giải thuật FFT phân chia theo thời gian
g(0) G(0) X(0)
0 NW 1 NW
g(1) G(1) X(1)
FFT N/2 điểm k =0 N/2 -1
(cid:0)N
12/
NW
0
g(N/2 -1) G(N/2 -1) X(N/2-1)
1
h(0) H(0) X(N/2)
NW(cid:0) NW(cid:0)
h(1) H(1) X(N/2 + 1) k = N/2
N - 1 FFT N/2 điểm
12/
N NW
(cid:0) (cid:0) h(N/2 -1) H(N/2 -1) X(N – 1)
Chi phí tính toán
So với tính trực tiếp: chi phí tính toán thấp hơn
2 0 0 0
1 5 0 0
DFT DFT (cid:0)
N N22
1 0 0 0
(cid:0)
FFT FFT (cid:0)
N log22NN N log
s n o i t a r e p O
5 0 0
0
f o r e b m u N
0
1 0
4 0
3 0 2 0 Num b e r o f s a m ple s , N
(cid:0)
Ví dụ
FFT 8 điểm phân chia theo thời gian
Ví dụ
FFT 8 điểm phân chia theo thời gian
Ví dụ
FFT 8 điểm phân chia theo thời gian
Ví dụ
FFT 8 điểm phân chia theo thời gian
Ví dụ
Thứ tự chuỗi x(n) trong pp Decimation – in - time
Số thứ tự Số thứ tự Số thứ tự Số thứ tự Dạng nhị phân Dạng nhị phân Dạng nhị phân Đảo bit Đảo bit n
0 0 0 0 000 000 000 000 000 0
1 1 1 1 001 001 001 100 100 4
2 2 2 2 010 010 010 010 010 2
3 3 3 3 011 011 011 110 110 6
4 4 4 4 100 100 100 001 001 1
5 5 5 5 101 101 101 101 101 5
6 6 6 6 110 110 110 011 011 3
7 7 7 7 111 111 111 111 111 7
Ví dụ
FFT 8 điểm phân chia theo tần số (Decimation in freq)
Ví dụ
FFT 8 điểm phân chia theo tần số
Ví dụ
FFT 8 điểm phân chia theo tần số