Xử lý số tín hiệu
Biến đổi
DFT và FFT
Chương 8:
Các phép biến đổi Fourier
Miền thời gian
Miền tần số
2.5
2
1.5
1
Periodic
0.5
0
0
1
2
3
4
time, t
5
6
7
8
Continuous
2.5
2
(period T)
Aperiodic
1.5
1
FS
Discrete
FT
Continuous
0.5
T
1
c k = ⋅ ∫ s(t) ⋅ e − j k ω t dt
T
0
− j2 π f t
+∞
S(f) = ∫ s(t) ⋅ e
dt
−∞
0
0
2
4
6
8
time, t
10
12
2.5
2
Periodic
1.5
1
0.5
0
1
2
3
4
time, tk
5
6
7
DFS
Discrete
(period T)
0
8
Discrete
2.5
Aperiodic
2
1.5
DTFT
Continuous
DFT
Discrete
1
0.5
0
0
2
4
time, tk
6
8
10
12
2πkn
N
−
1
−
j
1
~
N
ck = ∑ s[n] ⋅ e
N
n=0
+∞
S(f) = ∑ s[n] ⋅ e − j 2 π f n
n= −∞
2πkn
−j
1 N−1
~
N
ck = ∑ s[n] ⋅ e
N
n =0
Chuỗi Fourier (Fourier series-FS)
Tín hiệu x(t) tuần hồn, chu kỳ Tp , tần số F0 = 1/Tp
x (t ) =
+∞
j 2πkF0 t
c
e
∑ k
k = −∞
1
ck =
Tp
− j 2πkF0 t
x
(
t
)
e
dt
∫
Tp
X(f)
x(t)
τ
f
-Tp
0
Tp
t
-F0 F0
Biến đổi Fourier (Fourier transform-FT)
Tín hiệu x(t) khơng tuần hồn
x (t ) =
+∞
∫ X ( F )e
j 2πft
df
−∞
X( f ) =
+∞
− j 2πft
(
)
x
t
e
dt
∫
−∞
X(ω)
x(t)
ω
-τ/2 τ/2
t
-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 hồn
1
x ( n) =
2π
X (ω ) =
jωn
(
)
X
ω
e
dω
∫
2π
+∞
∑ x( n ) e
n = −∞
jωn
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
x ( n) = ∑ ck e j 2πkn / N
k =0
1
ck =
N
N −1
∑ x( n ) e
n =0
− j 2πkn / N
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 hồ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)
0
L-1
N-1 N
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)
0
L-1
N-1
N
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:
DFT
L −1
X (k ) = ∑ x( n ) e − j 2πkn / N
, k = 0,1,2,..., N − 1
n =0
IDFT
1
x( n ) =
N
N −1
j 2πkn / N
(
)
X
k
e
∑
k =0
, n = 0,1,2,..., N − 1
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:
2πkn
2πkn
X R ( k ) = ∑ xR ( n ) cos
+ xI ( n ) sin
N
N
n =0
N −1
2πkn
2πkn
X I ( k ) = −∑ xR ( n ) sin
− xI ( n ) cos
N
N
n =0
N −1
Tính trực tiếp cần:
•
2N2 phép tính hàm lượng giác
• 4N2 phép nhân thực
• 4N(N-1) phép cộng thực
Chi phí tính
tốn lớn
Giải thuật biến đổi Fourier nhanh
Fast Fourier Transform (FFT)
Đặt
WN = e
− j 2π / N
N −1
X ( k ) = ∑ x(n)WNnk
n =0
Tính đối xứng:
Tính tuần hồn:
k+N /2
M
W
k+N
M
W
= −W
=W
k
N
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 (0) = x(0)W + x(1)W = x(0) + x(1)
0
2
0
2
X (1) = x(0)W + x(1)W = x(0) − x(1)
(Lưu ý: W2 = 1)
0
2
x(0)
1
2
X(0)
1 Bướm
(Butterfly)
x(1)
-1
X(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):
X (k ) = G (k ) +W H (k )
k
N
N
X (k ) = G (k − ) −W
2
k−
N
2
N
,
N
k = 0,1,..., − 1
2
N
H (k − )
2
N
, k = ,..., N − 1
2
G(k), H(k) : DFT N/2 điểm của g(n), h(n)
Giải thuật FFT phân chia theo thời gian
g(0)
G(0)
g(1)
W
G(1)
W
FFT N/2
điểm
g(N/2 -1)
1
N
G(N/2 -1)
W
h(0)
H(0)
− WN0
h(1)
H(1)
− WN1
FFT N/2
điểm
h(N/2 -1)
0
N
H(N/2 -1)
− WNN / 2−1
N / 2 −1
N
X(0)
X(1)
k =0
N/2 -1
X(N/2-1)
X(N/2)
X(N/2 + 1) k = N/2
N-1
X(N – 1)
Chi phí tính tốn
So với tính trực tiếp: chi phí tính tốn thấp hơn
Number of Operations
2000
1500
DFT ∝ N2
1000
FFT ∝ N log2N
500
0
0
10
20
30
Number of samples, N
40
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ự
Dạng nhị phân
Đảo bit
n
0
000
000
0
1
001
100
4
2
010
010
2
3
011
110
6
4
100
001
1
5
101
101
5
6
110
011
3
7
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ố