Professional Documents
Culture Documents
Xu Ly Tin Hieu So Dinh Duc Anh Vu Chuong5 2011 Bien Doi Fourier Roi Rac (DFT) (Cuuduongthancong - Com)
Xu Ly Tin Hieu So Dinh Duc Anh Vu Chuong5 2011 Bien Doi Fourier Roi Rac (DFT) (Cuuduongthancong - Com)
2011
Chương 5
Biến đổi Fourier rời rạc (DFT)
BK
TP.HCM
∞
X (ω ) = ∑ x (
n = −∞
n ) e − j ωn
• Vấn đề: X(ω) liên tục theo tần số ω → không thích hợp cho việc tính toán trên máy
tính
X(ω)
Lấy
mẫu
N=10 N=10
X (k ) ≡ X (ω = 2π
N k)
∑ ∑
− j 2Nπ kn
= x ( n)e
l = −∞ n =lN
N −1
∞ − j 2Nπ kn
= ∑ ∑ x(n − lN ) e Thay n bằng (n-lN)
n = 0 l = −∞
N −1 ∞
⇒ X ( k ) = ∑ x p ( n )e
− j 2Nπ kn
với x p ( n) = ∑ x(n − lN )
l = −∞
n =0
• T/h xp(n) – lặp chu kỳ của x(n) mỗi N mẫu – t/h tuần hoàn với chu kỳ cơ bản N
N −1
x p (n) = ∑ ck e j 2πkn / N n = 0,1,..., N − 1
k =0
N −1
1
ck =
N
∑ p
x
n =0
( n ) e − j 2πkn / N
k = 0,1,..., N − 1
DSP – Biến đổi DFT ©2011, Đinh Đức Anh Vũ
CuuDuongThanCong.com https://fb.com/tailieudientucntt
4
dce
2011
Lấy mẫu miền tần số
1
ck = X ( k ) k = 0,1, , N − 1
N
1 N −1
x p ( n ) = ∑ X ( k )e
j 2Nπ kn
n = 0,1, , N − 1
N k =0
• Có thể phục hồi t/h xp(n) từ các mẫu của phổ X(ω)
x(n)
x p ( n) 0 ≤ n ≤ N −1
n x ( n) =
0 L 0 others
N>L xp(n)
n
0 L N
N<L xp(n) alias
Khi N≥L, x(n) có thể được khôi phục
n
từ các mẫu phổ tần số tại ωk=2πk/N
0 N
DSP – Biến đổi DFT ©2011, Đinh Đức Anh Vũ
CuuDuongThanCong.com https://fb.com/tailieudientucntt
5
dce
2011
Lấy mẫu miền tần số
• Có thể phục hồi X(ω) từ các mẫu X(k) với k = 0, 1,…, N-1
– Giả sử N ≥ L → x(n) = xp(n) khi 0 ≤ n ≤ N-1
N −1
1
x ( n) =
N
∑ X (
k =0
k ) e j 2πkn / N
∞ N −1
1 N −1
− jωn
X (ω ) = ∑ x ( n )e
n = −∞
− jωn
= ∑
n =0 N
∑ X ( k )e
k =0
j 2πkn / N
e
N −1
1 N −1 − j (ω − 2πk / N ) n
= ∑ X (k ) ∑ e
k =0 n =0
N
1 N −1 − jωn 1 1 − e − jωN
P(ω ) = ∑ e =
N n =0 N 1 − e − jω N −1
sin(ωN / 2) − jω ( N −1) / 2 X (ω ) = ∑ X (k ) P (ω − 2Nπ k ) N≥L
= e
N sin(ω / 2) k =0
1 k =0
P( N k ) =
2π
0 k = 1,2, , N − 1
DSP – Biến đổi DFT ©2011, Đinh Đức Anh Vũ
CuuDuongThanCong.com https://fb.com/tailieudientucntt
6
dce
2011
Lấy mẫu miền tần số
N −1
1
∑ X ( k )e
j 2Nπ kn
x(n)
x ( n) =
có chiều dài L≤N N k =0
BĐ F
∞ N −1
X (ω ) = ∑ x ( n )e − j ωn
X (ω ) = ∑ X (k ) P (ω − ωk )
n = −∞ k =0
N −1
1
∑
Lấy mẫu
P (ω ) = e − j ωn
ωk = 2π
N k
N k =0
N −1
X ( k ) = ∑ x ( n )e
− j 2Nπ kn
Phục hồi Phục hồi
n =0
∞
x p ( n) = ∑ x(n − lN )
l = −∞ a=0.8
0
an
= ∑a
l = −∞
n −lN
=
1− aN
DFTN −1
IDFT
1 N −1
X ( k ) = ∑ x ( n )e x ( n) = ∑ X ( k )e
− j 2Nπ kn j 2Nπ kn
n =0 N k =0
k = 0,1, , N − 1 n = 0,1, , N − 1
DSP – Biến đổi DFT ©2011, Đinh Đức Anh Vũ
CuuDuongThanCong.com https://fb.com/tailieudientucntt
9
dce
2011
Biến đổi Fourier rời rạc (DFT)
• Ví dụ: xác định DFT N điểm của chuỗi x(n) có độ dài L hữu hạn (N≥L)
1 0 ≤ n ≤ L −1 ∞ L −1
x ( n) = X (ω ) = ∑ x ( n )e − j ωn
= ∑ e − j ωn
0 others n = −∞ n =0
n =0 N k =0
k = 0,1, , N − 1 n = 0,1, , N − 1
N −1
1 N −1
X ( k ) = ∑ x ( n)W kn
N x( n) = ∑ X (k )WN− kn
n =0 N n =0
k = 0,1, , N − 1 n = 0,1, , N − 1
Chuỗi xp(n) tuần hoàn chu kỳ N DFT N điểm của chuỗi x(n)
N −1 1 N −1
x ( n ) = ∑ X ( k )e
j 2Nπ kn
x p ( n ) = ∑ ck e
j 2Nπ kn
k =0
N n =0
−∞ ≤ n ≤ ∞ n = 0,1, , N − 1
X(k) = Nck
1 N −1 N −1
ck = ∑ x p ( n )e X ( k ) = ∑ x ( n )e
− j 2Nπ kn − j 2Nπ kn
0 otherwise
• Quan hệ giữa x(n) và x’(n): dịch vòng x’(n) = x(n-k, MOD N) ≡ x((n-k))N
x(n) 4 xp(n) 4 4 4 xp(n-2) 4 4 4
3 3 3 3 3 3 3
2 2 2 2 2 2 2
1 1 1 1 1 1 1
0 1 2 3 -4 -3 -2 -1 0 1 2 3 4 5 6 7 -2 -1 0 1 2 3 4 5 6 7 8 9
x(1) x’(1)
4 x’(n) 2 4
3
2 x(2) 3 x(n) 1 x(0) x’(2) 1 x’(n) 3 x’(0)
1
0 1 2 3 4 2
x(3) x’(3)
DSP – Biến đổi DFT ©2011, Đinh Đức Anh Vũ
CuuDuongThanCong.com https://fb.com/tailieudientucntt
17
dce
2011
DFT – Tính đối xứng vòng
• Phép dịch vòng của một chuỗi N điểm tương đương với phép
dịch tuyến tính của chuỗi mở rộng tuần hoàn của nó
• Chuỗi N điểm là chẵn theo vòng nếu nó đối xứng qua điểm 0
trên vòng tròn
– i.e. x(N – n) = x(n), 0 ≤ n ≤ N – 1
• Chuỗi N điểm là lẻ theo vòng nếu nó phản đối xứng qua điểm
0 trên vòng tròn
– i.e. x(N – n) = – x(n), 0 ≤ n ≤ N – 1
• Đảo theo thời gian của chuỗi N điểm: đảo các mẫu của chuỗi
quanh điểm 0 trên vòng tròn
– i.e. x((– n))N = x(N – n), 0 ≤ n ≤ N – 1
– Phép đảo được thực hiện bằng cách vẽ x(n) theo chiều kim đồng hồ
n =0 k =0
N −1
N −1
X ( k ) = − [x ( n) sin 2πkn − x ( n) cos 2πkn ]
I ∑ R N I N
x ( n) = 1
I ∑ [ X R ( k ) sin 2πNkn + X I ( k ) cos 2πNkn ]
n =0 N k =0
• Nếu x(n) thực: X(N-k) = X*(k) = X(–k)
X ( N − k ) = X (k ) và ∠X ( N − k ) = −∠X ( k )
• Nếu x(n) thực và chẵn: x(n) = x(N–n) → XI(k) = 0
N −1 N −1
1
X (k ) = ∑ x(n) cos 2πkn
N x ( n) = ∑ X (k ) cos 2πkn
N
n =0 N k =0
• Nếu x(n) thực và lẻ: x(n) = –x(N–n) → XR(k) = 0
N −1 N −1
1
X (k ) = − j ∑ x(n) sin 2πkn
N
x ( n) = j
N
∑ X (k ) sin
k =0
2πkn
N
n =0
• Nếu x(n) thuần ảo: x(n) = jxI(n)
N −1 N −1
X R ( k ) = ∑ xI (n) sin 2πkn
N X I (k ) = ∑ xI (n) cos 2πNkn
n =0 n =0
DSP – Biến đổi DFT ©2011, Đinh Đức Anh Vũ
CuuDuongThanCong.com https://fb.com/tailieudientucntt
19
dce
2011
DFT – Tính chất
• Tuần hoàn
x ( n) ← → X ( k )
DFTN
x ( n) = x ( n + N ) ∀n
⇒
X (k ) = X (k + N ) ∀k
• Tuyến tính
1
x ( n ) ← → X 1 ( k )
DFTN
2
x ( n ) ← → X 2 ( k )
DFTN
⇒ a1 x1 ( n) + a2 x2 ( n) ← → a1 X 1 ( k ) + a2 X 2 ( k )
DFTN
⇒ x1 ( n) ⊗ N x2 ( n) ←
DFTN
→ X 1 (k ) X 2 (k )
N Tổng chập vòng N điểm
N −1
N x2 (n) = ∑ x1 (k ) x2 ((n − k )) N
x1 (n) ⊗ n = 0,1, , N − 1
k =0
DSP – Biến đổi DFT ©2011, Đinh Đức Anh Vũ
CuuDuongThanCong.com https://fb.com/tailieudientucntt
20
dce
2011
DFT – Tổng chập vòng
x1 ( n) ←
DFTN
→ X 1 (k ) x ( m) = IDFT { X ( k )}
N −1
x2 ( n) ←→ X 2 ( k ) 1
∑ X ( k )e
DFTN
j 2Nπ km
=
N
x( m) ← → X ( k ) = X 1 ( k ) X 2 (k )
DFTN k =0
N −1
1
∑X
j 2Nπ km
= 1 ( k ) X 2 ( k )e
N a =1 N k =0
N −1
∑ N −1 − j 2Nπ kn − j 2Nπ kl j 2Nπ km
k N −1 N −1
a = 1
k =0
1 − a N
a ≠1 =
N
∑ ∑ 1
k =0 n =0
x ( n ) e ∑ 2
l =0
x (l ) e e
1− a
N −1 N −1 N −1
j 2Nπ ( m − n − l ) 1
Trong ñoù a=e ∑ x (n)∑ x (l )∑ e
j 2Nπ k ( m − n −l )
= 1 2
N
a = 1, khi : m − n − l = pN , p ∈ Z n =0 l =0 k =0
a ≠ 1 ⇒ a N = e j 2π ( m − n −l ) = 1 ⇒ 1 − a N = 0
N
N −1 m − n − l = pN ⇔ l = ((m − n)) N
⇒ ∑a = k
0 otherwise N −1
k =0
x(m) = ∑ x1 (n) x2 ((m − n)) N m = 0,1, , N − 1
n =0
N −1
x(n) = ∑ x1 (k ) x2 ((n − k )) N n = 0,1, , N − 1
k =0
DSP – Biến đổi DFT ©2011, Đinh Đức Anh Vũ
CuuDuongThanCong.com https://fb.com/tailieudientucntt
21
dce 2011
DFT – Tổng chập vòng
• Ví dụ: cho x1(n) ={1^ 2 3 4} và x2(n) ={1^ 0 2 1}. Tính x(n) = x1(n) N x2(n) theo 2
cách
– Dùng công thức định nghĩa
x2(0) = 1 2
– Dùng DFT và IDFT
x1(2) = 3 x1(n) x1(0) = 1 x2(2) = 2 x2(n) x2(0) = 1 x2(0) = 1 x2((2-n))4 x2(2) = 2 3 x1(n)x2((2-n))4 2
x2(3) = 1 2 x2(2) = 2 4
[ ]
3
X 2 (k ) = ∑ x2 (n)e
− j 24π kn − jπk − j 32π k 1 jπ n j 3π n
= 1 + 2e +e = 40 − 4 je 2 − 4e jπn + 4 je 2
n =0 4
k = 0,1,2,3 n = 0,1,2,3
X 2 (0) = 1 + 2 + 1 = 4 x(0) = 9
X (1) = 1 + (−2) + ( j ) = −1 + j x(1) = 13
2
X 2 (2) = 1 + 2 − 1 = 2 x(2) = 9
X 2 (3) = 1 + (−2) + (− j ) = −1 − j x(3) = 9
DSP – Biến đổi DFT ©2011, Đinh Đức Anh Vũ
CuuDuongThanCong.com https://fb.com/tailieudientucntt
23
dce
2011
DFT – Tính chất
• Đảo vòng theo thời gian
x(n) ← → X (k )
DFTN
⇒ x((−n)) N = x( N − n) ← → X ((−k )) N = X ( N − k )
DFTN
⇒ x((n − l )) N ← → X (k )e − j 2πkl / N
DFTN
x* (n) ← → X * ((− k )) N = X * ( N − k )
DFTN
⇒ *
x ((− n)) N = x* ( N − n) ← → X * (k )
DFTN
y (n) ← → Y (k )
DFTN
~ N −1
~ ~
với r xy (l ) = ∑ x(n) y * ((n − l )) N
⇒ r xy (l ) ←→ R xy (k ) = X (k )Y (k )
DFTN *
n =0
• Nhân 2 chuỗi
x1 ( n) ←
DFTN
→ X 1 (k )
2
x ( n ) ← → X 2 ( k )
DFTN
⇒ x1 ( n) x2 ( n) ← → N1 X 1 ( k ) ⊗
DFTN
N X 2 (k )
• Định lý Parseval
x(n) ← → X (k )
DFTN
y (n) ← → Y (k )
DFTN
N −1 N −1
⇒ ∑ x(n) y * (n) = ∑ X (k )Y * (k )
n =0 k =0
DSP – Biến đổi DFT ©2011, Đinh Đức Anh Vũ
CuuDuongThanCong.com https://fb.com/tailieudientucntt
25
dce
2011
DFT – Lọc tuyến tính
• Y(ω) = H(ω)X(ω)
– Hàm liên tục theo tần số ω
– Khó thực hiện trên các máy tính số
→ DFT: một cách tính hiệu qủa của tổng chập miền thời gian
• Lọc tuyến tính M −1
H ( k ) = ∑
n =0
h ( n ) e − j 2πkn / 8
= 1 + e − jπk / 2
+ 2e − j 3πk / 4
7
(k = 0,1,...,7)
X (k ) =
∑ x(n)e − j 2πkn / 8 = 1 + e − jπk / 2 Y (0) = 8
n =0 Y (1) = 2(1 − j )
H (0) = 4 X ( 0) = 2
X (1) = 1 − j Y ( 2) = 0
H (1) = (1 − 2 ) − (1 + 2 ) j
H ( 2) = 2 j X (2) = 0 Y (3) = 2( 2 + j )
Y ( 4) = 0
H (3) = (1 + 2 ) + (1 − 2 ) j X (3) = 1 + j
Y (5) = 2( 2 − j )
H ( 4) = 0 X (4) = 2
H (5) = (1 + 2 ) + ( 2 − 1) j X (5) = 1 − j Y (6) = 0
Y (7) = 2( − 2 + j )
H (6) = −2 j X (6) = 0
X (7 ) = 1 + j
7
H (7) = (1 − CuuDuongThanCong.com
2 ) + (1 + 2 ) j
DSP – Biến đổi DFT
∑ Y (k )e j 2πkn / 8 (n = 0,1,...,7)
y (n) =https://fb.com/tailieudientucntt
k = 0©2011, Đinh Đức Anh Vũ 27
dce
2011
DFT – Lọc tuyến tính
• Tín hiệu nhập dài: chia nhỏ x(n) thành từng
block có độ dài cố định
– Overlap-Save
– Overlap-Add
• Giả thiết
– Bộ lọc có h(n): chiều dài M
– T/h nhập x(n): được chia nhỏ thành từng block có
chiều dài L >> M
Input
Add M-1 zeros M-1 L L L
x1(n) M-1 L
x2(n) M-1 L
x3(n) M-1 L
Output M-1 L
M-1 L
Discard M-1 L
DSP – Biến đổi DFT ©2011, Đinh Đức Anh Vũ
CuuDuongThanCong.com https://fb.com/tailieudientucntt
29
dce
2011
Lọc tuyến tính – Overlap-Add
• Đệm thêm (M-1) số 0 vào mỗi block dữ liệu đầu vào
Input
Output L M-1
+
L M-1
+
L M-1
Phương pháp hiệu quả hơn dùng để xác định bộ lọc tuyến tính
được trình bày trong chương 6
DSP – Biến đổi DFT ©2011, Đinh Đức Anh Vũ
CuuDuongThanCong.com https://fb.com/tailieudientucntt
30
dce
2011
DFT – Phân tích tần số
• T/h ngắn
– Tính DFT từ x(n)
• T/h dài
– Cửa sổ hoá
x(n): t/h cần phân tích
Giới hạn chiều dài chuỗi một khoảng L mẫu Hàm cửa sổ có chiều dài L
⇔ Nhân chuỗi với cửa sổ chiều dài L chỉ phân biệt được
nếu các tần số cách nhau
xw(n) = x(n)w(n) ít nhất một đoạn
w(n): hàm cửa sổ
∆ω = 2π
L
1 0 ≤ n ≤ L −1 12 (1 − cos L2−π1 n) 0 ≤ n ≤ L − 1
w(n) = w(n) =
0 otherwise 0 otherwise
DSP – Biến đổi DFT ©2011, Đinh Đức Anh Vũ
CuuDuongThanCong.com https://fb.com/tailieudientucntt
31
dce
2011
DFT – Phân tích tần số
• Ví dụ 1 0 ≤ n ≤ L −1
x(n) = cos ω1n + cos ω 2 n w(n) =
0 otherwise
[W (ω − ω1 ) + W (ω − ω 2 ) + W (ω + ω1 ) + W (ω + ω 2 )]
^
X (ω ) = 1
2
Rò rỉ công suất
L=75 L=100