Professional Documents
Culture Documents
Chương 8
BIẾN ĐỔI FOURIER RỜI RẠC VÀ BIẾN ĐỔI FOURIER NHANH
Trong chương 3 ta thấy chuỗi Fourier liên tục thời gian (CTFS) liên hệ thời gian liên tục với
tần số rời rạc, biến đổi Fourier liên tục thời gian (CTFT) liên hệ thời gian rời rạc với tần số rời rạc. Sự
biểu diễn hai hình thức Fourier trên là CTFS và CTFT, là không tuần hoàn trong miền tần số nhưng
hai phép biến đổi DTFS và DTFT thì toàn hoàn trong miền tần số đó là kết quả của sự lấy mẫu thời
gian.
Trong chương này, biến đổi Fourier rời rạc (DFT) và biến đổi Fourier nhanh được xét đến như
sự trình bày Fourier thứ ba mà áp dụng cho tín hiệu không tuần hoàn rời rạc thời gian có chu kỳ giới
hạn. DFT và FFT thì rất hữu ích trong sự phân tích và xử lý nhiều vấn đề của hệ thống và tín hiệu biến
biến thời gian LTI. Chúng cho phép xử lý bằng máy tính và vi xử lý tín hiệu số.
Tín hiệu tương tự tuần hoàn Phổ rời rạc không tuần hoàn
Rời rạc và không tuần hoàn Phổ liên tục tuần hoàn
spectrum
Hình 8.1: minh họa biến đổi thời gian-tần số cho sự phân tích Fourier khác nhau
8.1 BIẾN ĐỔI FOURIER RỜI RẠC (DFT)
Với tín hiệu không tần hoàn, x(n) nhìn chung nó tồn tại ở mọi thời điểm, biến đổi Fourier rời
rạc thời gian (DTFT) được định nghĩa (phần 3.5) như
X ( ) = x ( n )e
n = −
− jn
(DTFT) (8.1)
Tín hiệu thời gian được phục hồi bằng cách lấy tích phân liên tục
1
X ( )e
jn
x ( n) = d (IDTFT) (8.2)
2 2
Chú ý rằng tín hiệu thời gian x(n) thì rời rạc nhưng DFT của nó X ( ) thì liên tục theo tần số, và cũng
giống như vậy với DTFT. Sự biến đổi áp dụng cho hệ thống là
H ( ) = h ( n )e
n = −
− jn
(Đáp ứng tần số) (8.3)
1
H ()e
jn
h(n) = d (Đáp ứng xung) (8.4)
2 2
vậy ở đây vấn đề tính tích phân cần được xét đến. Điều này cũng dẫn đến sự cần thiết để rời răc hoặc
lấy mẫu tần .
Với tín hiệu không tuần hoàn x(n) và đáp ứng xung h(n), cách chúng ta lấy mẫu chúng? Càng
nhiều mẫu được lấy, những mẫu sẽ diễn tả tín hiệu tốt hơn nhưng lại tốn nhiều thời gian cho sự tính
toán. Trả lời cho câu hỏi quan trọng này nằm ở định lý lấy mẫu miền tần sô, đó là một dạng khác của
định lý lấy mẫu ở miền thời gian (phần 1.3.2). Định lý phát biểu như sau:
Phổ tần số liên tục của tín hiệu tồn tại trong một chu kỳ thời gian hữu hạn T0 giây có thẻ trình
bày một cách hoàn toàn bằng những mẫu tần số mà được lấy tại những khoảng tần số ít hơn 1/H0 Hz
(mẫu/giây). Phổ tần số có thể được phục hồi từ những mẫu tần số. (hình 8.2)
3
H ( )
0 H10 /2
Hình 8.2: Lấy mẫu đáp ứng tần số
Kế đến xét một tín hiệu hữu hạn thời gian có N mẫu (từ n=0 đến n=N-1) thì biến đổi trên trở thành
N −1
X ( ) = x(n)e − jn (8.6)
n =0
Bây giờ tính X ( ) tại N giá trị rời rạc bằng nhau của trong chu kỳ 2:
k = 2
N k, k = 0, 1, 2,...N − 1 (8.7a)
k k
Hoặc fk = = (8.7b)
2 N
và DFT của tín hiệu có N mẫu từ n = 0 đến n = N -1 là
N −1
X (k ) = x(n)e − j ( 2 / N ) kn , k = 0, 1, 2,..., ( N − 1) (DFT) (8.8)
n =0
k được gọi là hệ số phổ và X(k) gọi là tần số lấy mẫu. Chuỗi x(n) có giá trị thực hoặc phức
Biến đổi ngược, tín hiệu x(n) được phục hồi như
x ( n) = 1
N X ( k )e j ( 2 / N ) kn
, n = 0, 1, 2,..., ( N − 1) (IDFT) (8.9)
Ta thấy DFT và IDFT thì giống như chuỗi Fourier rời rạc thời gian của x(n) tại chu kỳ N (phần 3.4).
Từ sự định nghĩa của DFT, ta dễ dàng thấy rằng X(0) là thực nếu x(n) thực.
4
N −1
1
h( n) =
N
H ( k )e
k =0
j ( 2 / N ) kn
, n = 0, 1, 2,..., N − 1 (IDFT) (8.11)
Sự định nghĩa ở (8.8), (8.9), (8.10) và (8.11) là DFT N điểm. Nếu ta tính X(k) từ (8.8) ở ngoài
dải 0 k N − 1 , ví dụ với N k 2 N − 1 hoặc 2 N − 1 k 0 , ta sẽ thấy giá trị được lặp lại,
nghĩa là, X(k) tuần hoàn với chu kỳ N giống như vây, Nếu ta tính x(n) từ (8.9) ta sẽ thấy giá trị lập lại
nghĩa là x(n) tuần hoàn với chu kỳ N (tại thời điểm ban đầu ta xét x(n) là một chuỗi có chiều dài N từ
n = 0 to n = N − 1 ). Vì vậy, hình 8.1 chỉ tín hiệu rời rạc và tuần hoàn được biến đổi DFT thành phổ
rời rạc và tuần hoàn.
Thường số N được lấy như là số nguyên mũ của 2 (đó là, 32, 64, 128…). Khi số mẫu x(n) không có
chiều dài như trên ta cộng thêm mẫu không để có chiều dài bằng với N (ví dụ nếu x(n) có 120 mẫu ta
sẽ cộng thêm 8 mẫu không để có 128 mẫu). Đây là thêm không hoặc padding không.
Để thuận tiện ta chú thích
WN = e − j ( 2 / N ) (8.12a)
Vì vậy
WNkn = e − j ( 2 / N )kn (8.12b)
Với dấu sao chú thích là liên hiệp phức. Cũng như vậy, thay vì viết (2 /N) biểu thức như trên ta có thể
viết để rõ ràng hơn.
Ví dụ 8.1.1
Tìm DFT N điểm của tín hiệu
(a) x1 (n) = (n)
(b) x2 (n) = 1
(c) x3 (n) = (n − n0 ), 0 n0 N
(d) x 4 (n) = 2 n , 0 n N
Giải
(a) Từ sự định nghĩa của DFT
N −1
X 1 (k ) = (n)e − j ( 2 / N ) kn = 1e − j ( 2 / N ) k 0 = 1, k = 0, 1,..., N − 1
n =0
N −1 N −1
X 4 (k ) = n e − j ( 2 / N ) kn = e − j ( 2 / N ) k
n
n =0 n =0
X 4 (k ) =
1 − e − j ( 2 / N ) k N
, k = 0, 1,..., N − 1
1 − e − j ( 2 / N ) k
(e) Chú ý rằng x5 ( n) là xung chữ nhật số (thấy) có độ rộng không mẫu.
WNkn = e − j ( 2 / N ) kn , WN− kn = e j ( 2 / N ) kn
Vì vậy, từ định nghĩa của DFT và sử dụng công thức chuỗi hình học hữu hạn, ta có
n0 −1
1 − W Nkn0
X 5 (k ) = W
n =0
kn
N =
1 − W NK
Tử số, lấy WNkn0 / 2 làm thừa số chung, và mẫu số lấy WNk / 2 làm thừa số chung, biến đổi trên trở
thành
Ta có thể kiểm tra trường hợp n0 = 0 (kết quả là 0) và trường hợp n0 = 1 (kết quả như trong 1
(b)).
e
− j ( 2N k −0 ) n − j ( 2N k +0 ) n
X (k ) = 1
2 + 12 e
n =0
Với 0 = (2 / N )k 0
N −1 N −1
e + 12 e
− j 2N ( k = k 0 ) n − j 2N ( k + k 0 ) n
X (k ) = 1
2
n =0 n =0
Tổng thứ nhất bằng không với k k 0 , và bằng N với k = k 0 . Tổng thứ hai bằn không với
X (k ) = 12 N , k = k 0 and k = N − k 0
0 , otherwise
Ta có thể hiểu (2 / N)k là tần số DFT và viết
k = 2
N k rad / sample, k = 0, 1,..., N − 1
Nếu, đôi biến đổi có thể đặt trong dạng
W −1
X ( k ) = x(n)e − jk n , k = 0, 1,..., N − 1 (DFT) (8.13)
n =0
N −1
x ( n) = 1
N X (
k =0
k )e jk n , n = 0, 1,..., N − 1 (IDFT) (8.14)
Ví dụ 8.1.2
(a) Tính đáp ứng tần số DFT H ( k ) của một lọc FIR mà có đáp ứng xung là
Giải
(a) Đáp ứng xung có 4 giá trị, vì vậy N = 4 và k = 2 / 4 . Cũng chú ý rằng dải 0 n 3 thì
Bây giờ
3
k = 0, H (0) = ne − j ( / 2) 01 = 1 + 2 + 3 = 6
n =0
3
k = 1, H ( 2 ) = ne − j ( / 2)1n = e − j / 2 + 2e − j + 3e − j 3 / 2 = −2 + j 2
n =0
3
k = 2, H ( ) = 2e − j ( / 2) 2 n = e − j + 2e − j 2 + 3e − j 3 = −2
n =0
3
k = 3, H ( 32 ) = 3e − j ( / 2)3n = e − j 3 / 2 + 2e − j 3 + 3e − j 9 / 2 = −2 − j 2
n =0
H()
6
2 2 2 2
2
0 /2 3 / 2 k
0 1 2 3 k
(b) Trong hình 8.3 ta có thể tưởng tượng rằng đáp ứng tần số liên tục (đường chấm) được
lấy mẫu đồng nhất tại 4 điểm. Bây giờ ta muốn biết liệu đáp ứng xung có phục hồi một cách đầy
đủ từ những mẫu này hay không
Đầu tiên, DFT đảo được cho bởi
1 3
h( n) =
4 k =0
H ( 2 k )e j ( / 2) kn , k = 0, 1,..., N − 1
Bây giờ
1 3
n = 1 : h(1) = H ( 2 k )e j ( / 2) k1
4 k =0
1
= 6e j ( / 2) 0 + (−2 + j 2)e j ( / 2 )1 − 2e j ( / 2) 2 + (−2 − j 2)e j ( / 2 )3 = 1
4
Ta lấy giá trị đầu của h(2) và h(3). Bên cạnh đó, nếu ta tính h(4), h(5)…ta sẽ thấy chúng là h(0),
h(1)…vì vậy DFT là tuần hòan ở chu kỳ N.
Ví dụ 8.1.3
Một tín hiệu audio băng thông hạn giới hạn tại 8kHz được lấy mẫu tại 20kHz và sau đó DFT được tính
tại 1000 điểm.
(a) Tìm khoảng cách giữa những mẫu tần số
(b) Đáp ứng tương tự với hệ số k = 200?
Giải
(a) Với tốc độ lấy mẫu f s = 20 kHz và DFT lấy tại N = 100 điểm, khoảng lấy mẫu tần số là
f s 20000
f = = = 20 Hz
N 1000
(b) Tần số gốc tương tự rad/sec liên hệ với tần số số rd/sample bằng (1.39), nhưng ở đây ta
viết
k
k =
fs
DFT N điểm nghĩa rằng DTFT được lấy mẫu tại N điểm tần số. Vì vậy tần số DFT
2 2
k = k= k , k = 0, 1,.., N − 1
N 1000
Vì vậy tần số gốc tương tự được cho bởi
k = f s k = 20000 1000
2
k = 40k rad / s
Và tần số tuyến tính tương tự là
k
fk = = 20 kHz
2
Vì vậy hệ số phổ k = 200 tương ứng với tần số tương tự f = 20 200 = 4000 Hz
Tổng quát X(k) phức. Và ta có thể diễn tả những thành phần của phần thực và ảo hoặc phổ biên độ và
phổ pha cho CTFT (phần 3.2.2) và DTFT. (phần 3.5)
X (k ) = X R (k ) + jX I (k ) = X (k ) e j ( k ) (8.15a)
Với
X (k ) = X R2 (k ) + X I2 (k )
1
2
(8.15b)
và
9
(k ) = arg X (k ) = arctg X I (k )
X R (k ) (8.15c)
Ví dụ 8.1.4
Chuỗi số được cho như
x(n) = 0, 0, 1, 1, 1, 1, 1
Tìm phổ biên độ và phổ pha của DFT 10 điểm
Giải
Với DFT 10 điểm, N = 10 và chuỗi số bắt đầu từ n = 0 đến n = N − 1 = 9 . Vì vậy chuỗi được cho có
7 mẫu, ta cộng thêm 2 mẫu không tại phần cuối của nó để bậc tổng số là 10 mẫu. Vì vậy chuỗi được
thêm không vào là
x(n) = 0, 0, 1, 1, 1, 1, 1, 0, 0
DFT là
9 6
X (k ) = x(n)e − j ( 2 / N ) kn = W − kn
n =0 n=2
Bằng cách sử dụng công thức chuỗi hình học hữu hạn, ta có
W −2 k − W −7 k
X (k ) =
1 − W −k
sin(k / 2)
= e − j 4k / 5 , k = 0, 1,...,9
sin(k / 0)
Từ điều này ta có thể tính phổ biên độ và phổ pha, tương ứng
sin(k / 2)
X (k ) =
sin(k / 10)
4 sin(k / 2)
(k ) = − k , 0
5 sin(k / 10)
4 sin(k / 2)
− k, 0
5 sin(k / 10)
Ví dụ 8.1.5
Một xung chữ nhật có chiều dài L
x(n) = 1, 0, 1, …, L-1
0, khác
(a) Tìm DFT của nó
(b) Dẫn xuất ra số điểm DFT với N L
Giải
10
1 − e − jL
=
1 − e − j
sin(L / 2) − j ( L −1) / 2
= e
sin( / 2)
Phổ biên độ và pha của X ( ) có được từ kết quả trên với chiều dài L (ví dụ 3.5.1)
(b) DFT N điểm X (k ) của x(n) là DTFT X ( ) tính tại N khoảng tần số đồng nhất (8.7):
1 − e − j 2kL / N
X (k ) =
1 − e − j 2k / N
sin(kL / N )
= , k = 0, 1,..., N − 1
sin(k / N )
Nếu số điểm DFT gần bằng với chiều dài tín hiệu L thì
X ( k ) = L, k = 0
= 0, k = 1, 2,..., L − 1
Điều này giống với ví dụ 8.1.1b và 8.1.1e.
Dù DTFT X ( ) trình bày tuần tự x(n) trong miền tần số vì liên tục, nhưng L điểm DFT
không cung cấp đủ chi tiết đặc tính phổ của x(n) vì khoảng tần số giữa những điểm tần số không đủ
gần. Giải pháp cho vấn đề này là lấy N điểm DFT với N > L, điều này đồng nghĩa với việc tăng chiều
dài của chuỗi tín hiệu L đển N bằng cách cộng thêm N-L mẫu không. (đây là cách thêm không như
trên).
Ví dụ 8.1.6 [Trích từ A. Antoniou, 2006]
(a) Tìm phổ DFT của chuỗi tuần hoàn với chu kỳ N = 10
(b) Bây giờ chuỗi được thêm không vào cuối để chiều dài từ 10 thành 20. Tìm phổ DFT sau khi
thêm không.
Giải
(a) DFT của chuỗi tuần hoàn là
Phổ biên độ
Và phổ pha
0 , khác
Phổ được vẽ trong hình 8.4a
(b) Với sự thêm không để tăng từ 10 đến 20 mẫu. Tính toán giống như trong (a) ta có phổ được vẽ
trong hình 8.4b
12
Ta viết chuỗi tín hiệu vào x(n) và hệ số phổ ngõ ra X(k) trong dạng vector như sau:
Thật ra, x và X là những vector cột N 1 nhưng được viết ở dạng chuyển vị. Đầu tiên ta định nghĩa
1 1 ... 1
W N1 ...W NN −1
W = W Nkn 0 k , n N −1
1
=
(8.17)
1 W NN −1 ...W N( N −1)
2
Vì DFT là sự biến đổi tuyến tính mẫu vào x thành phổ ngõ ra X, nên nó có thể diễn tả dạng ma trận
như sau:
X=Wx (8.18a)
Từ điều này x = W −1 X . Thật ra, ở đây không cần tính nghịch đảo W −1 của W , vì tính chất định
Ví dụ 8.1.6
Cho một chuỗi x(n) = [1, 1, 0, 0] , tìm 4 điểm DFT, sau đó lấy IDFT để phục hồi lại x(n).
Giải
Sự biến đổi là
1 1 1 1
1 W 1 W42 W43
X= 4
x
1 W42 W44 W46
3
1 W4 W46 W49
1 1 1 1 1 2
1 − j − 1 j 1 1 − j
X= =
1 − 1 1 − 1 0 0
1 j − 1 − j 0 1 + j
Đó là
X = 2, 1 - j, 0, 1 + j
T
1 1 1 1 2 1
1 j − 1 − j 1 − j 1
1
= =
4 1 − 1 1 − 1 0 0
1 − j − 1 j 1 + j 0
Đây là
x(n) = [1, 1, 0, 0] như mong đợi.
DFT có nhiều thuộc tính giống với DTFT. Tuy nhiên, trong DFT dịch tần số và thời gian thì
không tuyến tính nhưng vòng, điều này làm DFT có nhiều thuộc tính phức tạp.
Ngược lại, khi X(k) có chiều dài hữu hạn, IDFT x(n) tuần hoàn với chu kỳ N.
N −1
= x(n)W N− kn
n =0
15
Như ta biết từ (8.12d) WN* = WN−1 , vì vậy nếu x(n) thực phần bên phải của công thức trên
là X (k ) Nếu x(n) thực thì X(0) cũng thực vì vậy X ( N ) = X * (0) cũng thực. Sự đối xứng này còn
*
N N N
X + k = X − k, 0 k (8.22a)
2 2 2
N N N
+ k = − − k , 0 k (8.22b)
2 2 2
Thật ra CTFT (3.16) và DTFT (3.44) cũng thể hiện thuộc tính đối xứng.
Vì vậy với tín hiệu có giá trị thực ta chỉ cần tính nửa bên phải đầu tiên của X(k). Nếu N lẻ đối
xứng có giá trị là một nửa số nguyên 0.5N. Hình 8.5 chỉ sự đối xứng của hai trường hợp trên. N chẵn
và lẻ. Hình 8.6 minh họa phổ biên độ và pha của tín hiệu thực.
0 1 2 3 4 5 6 7 8 k 0 1 2 3 4 5 6 7 k
N/2 N-1 N N/2 N-1 N
Hình. 8.5: Đối xứng của DFT với tín hiệu thực
16
Hình.8.6: Phổ biên độ và pha DFT 256 điểm của tín hiệu
x( n) = 0.8n − ( −0.9)n , n = 0, 1, ..., 256
Xét x(n) là một chuỗi với chiều dài hữu hạn N trong khoảng [0, N − 1] và không bên ngoài.
Một chuỗi tuần hoàn xp(n) được hình thành từ x(n) như sau
-1 0 1 2 3 4 n -1 0 1 2 3 4 n -1 0 1 2 3 4 n
n mod 3
2 2 2 2
1 1 1 1 1
-4 -3 -2 -1 0 1 2 3 4 5 6 7 n
Chuỗi tuần hoàn xp(n) định nghĩa trong (8.23) được gọi là sự mở rộng tuần hoàn của x(n). Chú
ý rằng xp(n) = x(n) với 0 n N − 1 và xp(n) mở rộng x(n) một cách tuần hoàn trong cả hướng âm
và hướng dương. Từ sự mở rộng tuần hoàn (8.23) sự mở rộng tuần hoàn của chuỗi x(n) được dịch thời
gian bởi n0 là
Một dịch vòng của mẫu n0 của chuỗi x(n) có N mẫu có thể diễn tả
Sự mở rộng tuần hoàn của thuộc tính dịch thời gian tương ứng như dịch vòng. Ta có thể suy luận N
mẫu của tín hiệu x(n) được chuyển thành những điểm xung quanh đường tròn (hình 8.6), thì sự mở
rộng tuần hoàn xp(n – n0) sẽ trình bày tín hiệu x(n) mà được dịch ngược chiều kim đồng hồ bởi n 0
mẫu. Hình 8.9 minh họa dịch tuyến tính và dịch vòng tương ứng với chuỗi gồm 5 điểm.
Ví dụ 8.2.1
Cho chuỗi x(n) = [1, 2, 3, 0, 0, 5, 6, 7] , tìm dịch vòng của tín hiệu
(a) x(n – 2)
(b) x(n + 2)
(c) x(-n)
Giải
(a) Với x(n – 2) ta dịch hai mẫu cuối đến vị trí đầu, vì vậy
xcs (n − 2) = [6, 7, 1, 2, 3, 0, 0, 5]
(b) Với x(n + 2) ta dịch hai mẫu đầu đến cuối, vì vậy
(c) xcs (n + 2) = [3, 0, 0, 5, 6, 7, 1, 2]
(d) Với x(-n) ta flip x(n) trở thành [5, 0, 0, 3, 2, 1, 7, 6] sau đó tạo sự mở rộng chu kỳ của nó để có
xcs (−n) = [1, 7, 6, 5, 0, 0, 3, 2]
Ví dụ 8.2.2
Cho tín hiệu
x1 (n) = (n) + 2 (n − 5)
(a) Tìm DFT 10 điểm X1(k)
(b) Nhân X1(k) với mũ phức − j (2 / N )km tương ứng với dịch tròn x1(n) đi m điểm. Ở đây m =
-2 nghĩa là x1(n) sẽ tới trước 2 đơn vị. Do đó,
x2 (n) = x1[(n + 2) mod10] = 2 (n − 3) + (n + 8)
5
x(n)
4
3
2
1
0 1 2 3 4 n
5 5
x(n - 1)
4 Xp(n - 1) 4
3 3
2 2
1 1
0 1 2 3 4 5 n 0 1 2 3 4 n
5 5
x(n -2) Xp(n - 2)
4 4
3 3
2 2
1
0 1 2 3 4 5 6 n 0 1 2 3 4 n
x(n - 1) 5 5
5 x(-n) mod 5
4 xp(-n) 4
3 3
2 2
1 1
-4 -3 -2 -1 0 1 2 3 4 n 0 1 2 3 4 5 n
Ví dụ 8.2.3
Cho tín hiệu
x(n) = 4 (n) + 3 (n − 1) + 2 (n − 2) + (n − 3)
Và để X(k) có 6 điểm DFT, tìm tín hiệu y(n) mà có 6 điểm DFT bằng với phần thực của X(k)
Giải
Phần thực của X(k) có thể diễn tả như
X R (k ) = 12 [ X (k ) + X * (k )]
n =0
*
N −1 N −1
X (k ) = x(n)WNkn = [ x * (n)WN− kn ]
*
n =0 n =0
N −1
= x * (n)WN
k ( N −n)
n =0
Điều này có nghĩa X*(k) là DFT của x*(n) mà dịch vòng đi (N – n) điểm. Vì vậy tín hiệu y(n) là
y (n) = 12 {x(n) + x * [( N − n) mod N ]}
= [4, 32 , 1, 1, 1, 32 ]
DFT dịch thời gian vòng với chuỗi N điểm x(n) mẫu n0 được cho bởi
x p (n − n 0 ) WNkn0 X(k)
(8.26)
Với X(k) là DFT của x(n). Ngược lại, với dịch tần số vòng ta có đôi biến đổi
WN−kn0 x(n) X p (k − k 0 )[(k − k 0 )modN]
(8.27)
8.2.5 Định lý Parseral
Như chuỗi Fourier liên tục thời gian (CTFS), biến đổi Fourier liên tục thời gian(CTFT), chuỗi Fourier
rời rạc thời gian (DTFS) và biến đổi Fourier rời rạc thời gian (DTFT), trong biến đổi Fourier rời rạc
(DTF) ở đó có sự liên hệ của năng lượng tín hiệu trong miền thời gian và miền tần số. Xét một chuỗi
x(n) có chiều dài N với DFT là X(k), định lý parseval được phát biểu như sau
N −1 N −1
1
x ( n) = X (k )
2 2
(8.28)
n =0 N k =0
2
Với x (n) là công suất chuẩn hóa (nghĩa là, công suất/đơn vị điện trở) tại mẫu n. Công suất trung
bình là
N −1
1
Px = x ( n)
2
(8.29)
N n =0
21
Phần bên trái của (8.28) là tổng công suất (năng lượng/đơn vị thời gian) của tín hiệu x(n) với chiều
2
dài N. Phần bên phải là tổng công suất trong miền tần số DFT (phổ công suất). Vì vậy (1 / N ) X ( k )
là công suất phổ tại tần số k (nghĩa là, tại tần số fk được cho trong 8.6b) và cũng được gọi là mật độ
phổ công suất (PDS) hoặc phổ công suất (phổ) mật độ (PSD), cũng được gọi là periodogram, và
chú thích là S N (k ) :
1 2
S N (k) = X(k) (PDS hoặc PSD) (8.30)
N
Ví dụ 8.2.4
Cho tín hiệu x(n) = 3, − 1, 0, 2
Tìm công suất trung bình trong miền thời gian Px và trong miền tần số DFT Pk.
Giải
Phổ công suất trung bình Px là
N −1
x ( n)
1 2
Px =
N n =0
=
1
(9 + 1 + 0 + 4) = 3.5
4
N −1
x ( n)
1 2
Px =
N n =0
= (9 + 1 + 0 + 4) = 3.5
1
4
Kế đến ta phải tìm DFT x(k). Thừa số ma trận
W40 W04 W04 W04 1 1 1 1
0
W W41 W42 W43 1 − j − 1 j
W = 40 =
W4 W42 W44 W46 1 − 1 1 − 1
0
W4 W4
3
W46 W49 1 j − 1 − j
Vì vậy DFT là X = Wx và có thể tìm thấy
4
3 + j3
X =
2
3 − j 3
Hoặc
22
Bảng 8.1. cho ta thuộc tính của DFT. Nhân chập sẽ được thảo luận sau.
Bảng: 8.1 Những thuộc tính chính DFT của một chuỗi thời gian có chiều dài N
Thuộc tính Tín hiệu DFT
Tuần hoàn x(n) X (k + iN ) = X (k )
Tuyến tính ax1 (n) + bx2 (n) aX1 (k ) + bX 2 (k )
Đối xứng x(n) real X ( N − k ) = X * (k )
Đảo x(−n) X(-k)
Dịch vòng trong thời gian x p (n − n0 ) W pkn0 X (k )
Dịch vòng trong tần số
WN− k0n x(n) X pN (k − k 0 )
Kết hợp trong thời gian
x * ( n) X *p [−k ]
Kết hợp trong tần số
x *p (−n) , real x(n) X * (k )
X (k )
1 2
n =0 N
k =0
Định lý Parseval
X p (k − k 0 ) = X [(k − k 0 ) mod N ]
1 N −1
Pk = S N (k )
N k =0
Ví dụ 8.2.5
Một tín hiệu có DFT 4 điểm X (k ) = [4, − j 2, 0, j 2] , tìm
(a) Tín hiệu x(n – 2)
(b) Tín hiệu x(-n)
(c) Tín hiệu x * ( n)
Giải
(a) Dịch thời gian là n0 = 2 , vì vậy, sử dụng thuộc tính của dịch vòng theo thời gian
= 1 + e − jk / 4 , k = 0, 1,..., 7
Vì thuộc tính đối xứng, ta cần tính X(k) với k lên đến N / 2 = 4 và lấy đối xứng liên hiệp phức để có
toàn bộ:
X (0) = 1 + 1 = 2
X (1) = 1 + e − j / 4 = 1.707 − j 0.707
X (2) = 1 + e − j / 2 = 1 − j
X (3) = 1 + e − j 3 / 4 = 0.293 − j 0.707
X (4) = 1 − 1 = 0
24
X(k) là X(z) được tính trên vòng tròn đơn vị tại những điểm W Nk
Nhớ rằng DTFT của x(n) cũng có biến đổi z trên vòng tròn đơn vị (phần 4.2.5) tại z = e j . Bằng
định thức Euler
Ta có thể tìm giá trị của W Nk với bất kỳ N và K. Điều này được chỉ trong hình 8.10 với N = 8.
W Nk được gọi là thừa số twidle. Bảng 8.2 cho giá trị của W8k
25
Im(z)
j z2
Z - plane
z3 z1
2
z4 N
z0
-1 1
Re(z)
Unit circle z5 z7
-j z 6
Hình 8.10: DFT 8 điểm và biến đổi z tương ứng trên vòng tròn đơn vị
Điểm W8k
z0 1
z1 2 (1 + j )
z2 j
z3 2 (−1 + j )
z4
-1
z5
2 (−1 − j )
z6
− j
z7
2 (1 − j )
Nhân chập tuyến tính của x(n) với chiều dài Nx với h(n) có chiều dài Nh được định nghĩa trong (2.6)
được lặp lại ở đây:
26
y ( n) = x ( n) h( n) = x ( k ) h( n − k )
k = −
(8.33)
Thật ra, chiều dài ngõ ra y(n) mà không vô hạn được cho bởi (2.7) nhắc lại ở đây:
N y = N x + Nh −1 (8.34)
Với thuộc tính nhân chập DTFT (3.50) chỉ sự liên hệ giữa miền nhân chập miền thời gian và nhân
thường trong miền tần số
x(h) h(n) ⎯ ⎯→ X ( ) H ( )
DTFT
(8.35)
Sử dụng định nghĩa của sự mở rộng tuần hoàn (8.23) và (8.25) ta có thể viết
N −1
c(n) = x(n) h(n) = x(m)h[(n − m) mod N]
m =0
(8.37)
thay vào đó ta viết x ( n) h( n) ta có thể đặc biệt chiều dài N và viết x(n) NN h(n) .
Nhân chập vòng c(n) là tuần hoàn, và có thuộc tính giao hoán với nhân chập tuyến tính, nghĩa
là,
x ( n) h( n) = h( n) x ( n) (8.38)
Trong DFT, thuộc tính nhân chập vòng trong miền thời gian là
x(h) h(n) ⎯⎯→ X (k ) H (k )
DFT
(8.39)
Ngược lại, ta có thuộc tính của nhân chập tròn trong tần số (cũng được gọi là thuộc tính modulation)
1
x(h)h(n) ⎯⎯→
DFT
X (k ) H (k ) (8.40)
N
8.3.2 Sự tính toán
Tính nhân chập tròn cũng giống như nhân chập tuyến tính. Những phương pháp khác được minh họa
trong ví dụ sau.
Ví dụ 8.3.1
Cho tín hiệu và đáp ứng xung hệ thống tương ứng
x(n) = 2, 1, 2, − 1
h(n) = 1, 2, 3, 4
Tìm nhân chập tròn x(n) 4 h(n)
4
27
Giải
Phương pháp giản đồ cơ bản.
Bước 1
Đầu tiên, ta thay biến n thành biến giả m và sắp xếp x(m) và h(m) vào hai vòng tròn cùng tâm với
x(n) và gốc thời gian m = 0 cố định (Hình 8.11a). Đường tròn h(m) có h(0) đối diện x(0)
Bước 2
Ta gấp h(m) thành h(0) để tạo ảnh gương h(-m) (Hình 8.11b). Sau đó lấy tổng của tích x(m)h(-m) để
có y(0) = 10.
h(1) = 2 h(3) = 4
x(m) fixed x(m) fixed
x(1) = 1 x(1) = 1
h(m) h(-m)
x(3) = −1 x(3) = −1
h2 (3) = 4 h(1) = 2
(a) x(m) và h(m) (b) y(0) = 2 1 + 1 4 + 2 3 + (−1)2 = 10
h(0) = 1 h(1) = 2
x(m) fixed x(m) fixed
x(1) = 1 x(0) = 1
h(1-m) h(2 - m)
h(3)
x(2) m = 0 x(0) h(1) h(0)
x(2) m = 0 x(0) h(2)
4 2 2 1 2 3
2 2
x(3) = −1 x(3) = −1
Bước 3
Tạo h(n – m) với n dương, ta dịch vòng h(-m) theo ngược chiều kim đồng hồ và với n âm dịch vòng
h(-m) theo cùng chiều kim đồng hồ. Sau đó, ta lấy tổng của tích x(m)h(n − m) như trên. Ở đây h(1-
m) được chỉ trong hình 8.11c và kết quả là y (1) = 10 . Dịch tiếp (hình. 8.11d) sẽ cho ta y (2) = 6 .
x(m) = 2 1 2 4
h(m) = 1 2 3 4
h(−m) = 1 4 3 2 c(0) = 2 1 + 1 4 + 2 3 + (−1)2 = 10
h(1 − m) = 2 1 4 3 c(1) = 2 2 + 1 1 + 2 4 + (−1)3 = 10
h(2 − m) = 3 2 1 4 c(2) = 2 3 + 1 2 + 2 1 + (−1)4 = 6
h(3 − m) = 4 3 2 1 c(3) = 2 4 + 1 3 + 2 2 + (−1)1 = 14
Kết quả là
c(0) = [10, 10, 6, 14]
Điều này giống như trước.
Biết nhân chập tuyến tính ta có thể rút giảm nhân chập vòng. Nếu y(n) là nhân chập tuyến tính của hai
chuỗi x(n) và h(n) có cùng chiều dài N, thì nhân chập vòng tương ứng của hai chuỗi này được cho bởi
c(n) = x(n) h(n) = y (n + Nm) rN (n) (8.41)
m = −
Với rN(n) là cửa sổ chữ nhật (phần 5.3):
rN (n) = 1, n = 0, 1,..., N − 1
0, otherwise
Nhớ rằng nếu Nx và Nh là chiều dài của x(n) và h(n) thì y(n) có chiều dài là Nx +Nh -1
Ví dụ 8.3.2
Trong ví dụ trước nhân chập tuyến tính của x(n) h(n) có thể được tìm thấy là
Giải
Nhân chập vòng là
c(n) = x(n) N h(n) = y (n + 4m) r4 (n)
m=−
Trong khoảng 0 n 3 ở đây có chuỗi y(n) tương ứng với m = 0 , và chuỗi y(n + 4) tương ứng với
m = 1, vì vậy
c(n) = [ y(n) + y(n + 4)]r4 (n)
N 0 1 2 3 4 5 6 7
y(n) 2 5 10 14 8 5 -4 0
y(n + 4) 8 5 -4 0 0 0 0 0
c(n) 10 10 6 14 - - - -
Bây giờ, nhân chập vòng được diễn tả trong dạng ma trận như
c = C( h )x (8.42)
Với ma trận vuông C(h) là những cột được quay của h(n). Ví dụ, với N = 4 ma trận là
h(0) h(3) h(2) h(1)
h(1) h(0) h(3) h(2)
C(h) = (8.43)
h(2) h(1) h(0) h(3)
h(3) h(2) h(1) h(0)
Ví dụ 8.3.2
Cho hai chuỗi
x = 2, − 1, 6
T
h = 5, 3, − 4
T
30
Giải
Ma trận nhân chập của h là
5 −4 3
C(h) = 3 5 − 4
− 4 3 5
32
= − 23
19
Hoặc
c(n) = 32, − 23, 19 ◼
Giống với nhân chập vòng ta có tương quan vòng nhưng không nói ở đây.
Trong sự thảo luận trước và những ví dụ trong chuỗi được giả sử có chiềudài bằng (Nx = Nh). Nếu hai
chuỗi có chiều dài khác nhau ta phải pad thêm vào chuỗi ngắn hơn để chúng có chiều dài giống nhau.
Thật rat a có thể cả hai chuỗi để có chiều dài bằng nhau. Trong thực tế để chuỗi x(n) và h(n) có chiều
dài Nx và Nh tương ứng, và ta zero-pad chúng để có cùng chiều dài. Nx + Nh -1 hoặc lớn hơn
x z (n) = [ x(0), x(1),.., x( N x − 1), 0,..., 0]
Kế đến xét nhân chập vòng xz(n)*hz(n). Nếu hzp(n) là sự mở rộng tuần hoàn của hz(n), thì nhân chập
vòng là
c ( n) = x z ( n) h z ( n)
N −1
= x
m =0
z ( m) h zp ( n − m) (8.44)
N x −1
= x
m =0
z ( m) h zp ( n − m)
31
Vì 0 m N h và 0 n N , giá trị nhỏ nhất của m và n là –(Nh - 1). Nhưng hz(m) có Nh – 1 zeros
padding tại cuối, thì hzp(-m) = 0 với 0 m N h . Điều này có nghĩa hzp(n – m) có thể được thay thế
bằng hz(n – m), mà cho nhân chập tuyến tính xz(n) với hz(n). Nếu ta cộng thêm nhiều không hơn mức
cần thiết (N > Nx + Nh -1) kết quả cũng giống như vậy
Ví dụ 8.3.3
Hai chuỗi là
x(n) = [1, 0, 1, 1]
h( n) = [1, 2, 3, 4]
(a) Tìm nhân chập vòng và so sánh với nhân chập tuyến tính
(b) Zero-pad chuỗi để nhân chập vòng đưa ra nhân chập tuyến tính
Giải
(a) Sử dụng bất kỳ phương pháp nào được nói trên, ta có
c(0) = 1 1 + 0 3 + 1 4 + 1 2 = 7
c(1) = 1 2 + 0 1 + 1 3 + 1 4 = 9
c(2) = 1 4 + 0 2 + 1 1 + 1 3 = 8
c(4) = 1 3 + 0 4 + 1 2 + 11 = 6
(a) VÌ mỗi chuỗi có 4 điểm, nhân chập tuyến tính có 4 + 4 − 1 = 7 điểm như trên. Vì vậy ta cộng
thêm 3 không vào cuối của mỗi chuỗi đã cho, kết quả
xz (n) = [1, 0, 1, 1, 0, 0, 0]
hz (n) = [1, 2, 3, 4, 0, 0, 0]
c(n)
hình.8.12: Nhân chập vòng hai chuỗi x(n) và h(n) (a) khi N N x + N h − 1 (nhân chập vòng
khác nhân chập tuyến tính, (b) khi N N x + N h − 1 ) ở đây không có sự trùng lắp.
33
Kết luận, điều kiện để nhân chập tròn bằng với nhân chập tuyến tính là
N Nx + Nh − 1 (8.45)
Hình 8.12 giải thích tại sao nhân chập vòng không bằng với nhân chập tuyến tính. Khi
N N x + N h − 1 . Đây là một sự trùng lắp giữa nhân chập vòng của những chu kỳ được điều chỉnh
N −1 N −1
1 1
x ( n) =
N
X (k )e j ( 2 / N ) kn =
k =0 N
X (k )W
k =0
− kn
N , n = 0, 1,..., N − 1 (IDFT) (8.47)
Với wN được viết với e − j ( 2 / N ) , và vì vậy e j ( 2 / N ) = W N* . Sự tính toán của DFT thì giống với sự
biến đổi của IDFT. Vì vậy bất kỳ thuật toán tính toán cho DFT có thể áp dụng cho IDFT với sự bổ
sung thêm một số điểm nhỏ. Đầu tiên xét sự tính toán của DFT trực tiếp từ (8.46).
Với tín hiệu giá trị thực x(n)
N −1
X (k ) = x(n)cos
n =0
2
N
kn − j sin 2N kn (8.48)
Mà cho phần giá trị thực, phần ảo, biên độ và pha như sau
N −1
X R (k ) = x(n) cos
n =0
2
N
kn (8.49a)
N −1 (8.49b)
X I (k ) =
n =0
x(n) sin 2N kn
(8.49c)
X (k ) = X R2 (k ) + X I2 (k )
X I (k )
( k ) = tan −1 (8.49d)
X R (k )
Với tín hiệu giá trị phức x(n), ta chia nó thành phần thực và phần ảo thì được sử dụng như sau
x(n) = x R (n) + jx I (n)
N −1
X ( k ) = xR ( n) + jxI ( n) cos 2N kn − j sin 2N kn (8.50b
n =0
N −1
X R (k ) = x
n =0
2
R ( n) cos N kn + x I (n) sin 2N kn (8.50c)
(8.50d)
34
N −1
X I (k ) = x
n =0
I (n) cos 2N kn − x R (n) sin 2N kn
Vì vậy, trong sự tính toán của DFT và IDFT là tính trực tiếp. Nhưng vấn đề với N lớn ở đây cần một
số lớn sự tính toán theo thời gian. Mỗi hệ số đặc biệt X(k) đòi hỏi N phép nhân và cộng phức, vì vậy N
hệ số đòi hỏi N 2 sự tính toán phức (nghĩa là, 4 N 2 phép nhân và phép cộng thực) với x(n) có giá trị
phức ta cần N 2 /2 sự tính toán phức (nghĩa là , 2 N 2 sự tính toán thực). Ví dụ, với DFT 1024 điểm, số
sự tính toán phức là 10242 . Vì vậy cần những máy tính có tốc độ tính toán 10ns cho mỗi sự nhân phức
dấu chấm động, thời gian sự tính toán của DFT là (loại bỏ được nhiều thời gian cho phép cộng)
10242 10 −8 = 10.5 ms
Thời gian này thì không dài nhưng trở nên chậm trong những ứng dụng thời gian thực
Thật ra ở đây có những thừa số khác mà giúp ta giảm thời gian tính toán. Ví dụ sự nhân có giá
trị 1 (không cần nhân) và j (thay đổi phần thực và ảo). Bảng 8.3 minh họa trường hợp của N =
8. Thay vì 8 8 = 64 giá trị khác nhau, ở đây có 4 giá trị khác nhau (không đề cập tới dấu): 1, j,
(1 + j ) 2 , (1 − j ) / 2
0 1 2 3 4 5 6 7
0 1 1 1 1 1 1 1 1
1− j 1+ j 1− j 1+ j
1 1 –j − –1 − j
2 2 2 2
2 1 –j –1 j 1 –j -1 j
1+ j 1− j 1+ j 1− j
k 3 1 − j –1 –j −
2 2 2 2
4 1 –1 –1 –1 1 –1 –1 –1
1− j 1+ j 1− j 1+ j
5 1 − –j –1 j −
2 2 2 2
35
6 1 j –1 –j 1 j –1 –j
1+ j 1− j 1+ j 1− j
7 1 j − –1 − –j
2 2 2 2
Một thừa số khác sử dụng bảng tra với những giá trị sin và cosin. Khi biết chiều dài N, giá trị
sin (2kn / N ) và cos(2kn / N ) tính toán được cất dữ trong bảng tra. Bằng cách này thời gian tính
toán cho DFT có thể giảm đi một nửa
Vào năm 1968’s cooley and Tukey đã phát triển thuật toán đối xứng để tính DFT và IDFT gọi
là biến đổi Fourier nhanh (FFT) mà chỉ cần N log 2N toán hạng thay vì N 2 toán hạng. Ví dụ, với
N = 210 = 1024 , biến đổi trực tiếp cần 10 6 toán hạng trong khi FFT chỉ cần 10 4 toán hạng
Ý tưởng chính của FFT là sự sắp xếp đối xứng cho sự tính toán
Thật ra, thành phần FFT bao gồm nhiều thuật toán khác nhau với những đặc điểm khác nhau
như độ phức tạp mã hóa, không gian bộ nhớ, thời gian tính. Trong phần này, ta giới thiệu hai thuộc
toán FFT: decimation-in-time và decimation-in-frequency. Và chiều dài N là mũ của 2 (radix-2 FFT),
ví dụ, N = 8, 16, … , 1024.. Kỹ thuật thêm không có thể sử dụng khi cần thiết. Ta sẽ thấy rằng DFT
được cấu trúc từ DFTs 2 điểm cơ bản
Trước khi thảo luận những thuật toán này, ta nhìn vào bảng 8.4 cho ta những thuộc tính khác
nhau của thừa số
Bảng 8.4:Những thuộc tính của W Nk
1. W N0 = 1
2. W NN / 4 = − j
3. W NN / 2 = −1
4. W N3 N / 4 = j
5. W NN = 1
6. W Nk + N = W Nk
7. W Nk + N / 2 = −W Nk
8. W N2 k = W Nk / 2
9. W N* = W N−1
Vì vậy (8.51a)
X (0) = x(0) + x(1)
X (1) = x(0) + x(1)W21 = x(0) − x(1) (8.51b)
Vì vậy DFT 2 điểm yêu cầu hai cộng và không có nhân. Giản đồ được vẽ trong hình 8.13
x ( 0) + X (0)
x (1) + X (1)
W2' = −1
Hình 8.13: Giản đồ của DFT 2 điểm (hình cánh bướm cơ bản)
Bây giờ xét trường hợp N = 4 mẫu phổ ngõ ra được cho bởi (8.52a)
X (1) = x(0) + x(2)W42 + x(1) + x(3)W41
X (3) = x(0) + x(2)W42 + x(1) + x(3)W42 W43 (8.52d)
Ta quan sat và thấy rằng mẫu tín hiệu vào có thể được chia thành nhóm những số chẵn x(0) và x(2), và
nhóm những số lẻ x(1) và x(3). Cũng chú ý
W40 = 1, W41 = − j , W42 = −1, W43 = j
Hình 8.14 là giản đồ tín hiệu của DFT 4 điểm gồm hai DFT 2 điểm và một phần kết nối. Chú ý rằng ở
đây chỉ có 4 loại nhân (hoặc trọng số hoặc sự chuyển): 1, -1, j và –j
2-point DFT
x ( 0 ) + x ( 2)
x(0) X(0)
x ( 0) − x ( 2) w40 = 1
x(2) X(1)
W42 = −1 w14 = − j
x(1) X(2)
w42 = −1
x(1) + x(3)
x(3) X(3)
W42 = −1 w43 = j
x(1) − x(3)
2-point DFT
Tính toán trực tiếp của N điểm X(k) cần N 2 phép nhân và cộng phức, như nói ở trước. Bằng
cách chia chuỗi đầu vào x(n) thành hai nửa, một gồm những số chẵn x(n) và một gồm số lẻ x(n), mỗi
nửa có chiều dài N/2 và hai N/2 điểm DFT chỉ cần 2 ( N / 2) 2 = N 2 / 2 phép nhân và cộng phức, vì vậy
tiết kiệm được một nửa sự tính toán. Khi tiếp tục chia như vậy, sự tiết kiệm tính toán sẽ tăng lên. Đây
là ý tưởng chính của thuật toán FFT.
Tách một chuỗi x(n) với chiều dài N, được giả sử là mũ của 2 (radix -2 FFT), thành hai chuỗi
con có chiều dài N/2, gọi a(n) là tổng hợp những chỉ số lẻ
Chú ý N/2 điểm DFT của a(n) là A(n), và N/2 điểm DFT của b(n) là B(n), thì
A(0)
x(0) X(0)
A(1) W80
x(2) 4 – point X(1)
DFT
A(2) W81
x(4) X(2)
A(3) W82
x(5) X(3)
W83
x(1) X(4)
4 – point B(0) W84
x(3) DFT X(5)
B(1) W85
x(5) X(6)
B(2) W86
x(7) X(7)
B(3) W87
Hình. 8.15: Phân giải thời gian DFT 8 điểm sau lần đầu tiên
X (k + N / 2) = A(k ) + W Nk + N / 2 B (k ), 0, 1,..., N / 2 − 1
(8.56b)
= A(k ) − W Nk B(k )
Hai kết quả dẫn đến hình cánh bướm ở hình 8.16a gồm hai phép nhân và hai phép cộng. Vì W Ni là
thừa số chung và W NN / 2 = −1, thừa số W Nk được di chuyển về trước và ta có cánh bướm rút gọn (Hình.
8.16b). Chú ý rằng bên cạnh W Nk tổng thể của cánh bướm rút giảm là cánh bướm cơ bản như đề cập ở
trước (Hình .8.13). Trong cách này ta sẽ tiết kiệm được một phép nhân. Hình. 8.15 trở thành hình. 8.17
là những dạng cánh bướm rút gọn
A(k ) X (k ) A(k ) X (k )
W Nk
B (k ) B (k )
X (k + N2 ) X (k + N2 )
− W Nk + N / 2 W Nk −1
DFT 4 điểm là sự tổng hợp của DFT 2 điểm x(0) và x(4), và DFT 2 điểm x(2) và x(6), tron
khi đó phần dưới DFT 4 điểm thành DFT 2 điểm của x(1) và x(5), và DFT 2 điểm của x(3) và x(7).
8 điểm DFT tổng quát phân giải trong thời gian được chỉ trong hình 8.17.
x(0) X(0)
x(4) X(1)
–1
W80
x(2) X(2)
W80 –1
x(6) X(3)
W80 –1 W82 –1
x(1) X(4)
–1
W80
x(5) X(5)
W80 –1
W81 –1
x(3) X(6)
W80 –1 W82 –1
x(7) X(7)
W80 –1
W82
–1 W83 –1
Hình.8.18: DFT 8 điểm hoàn chỉnh phân giải trong thời gian với ngõ vào được hoán đổi và
ngõ ra theo trật tự tự nhiên.
40
Bên cạnh rút giảm sự tính toán, thuật toán FFT cũng rút giảm bộ nhớ. Với mỗi cánh bướm, ta
có ngõ ra, vì vậy ngõ ra được cất dữ cùng những vị trí nhớ như ngõ vào. Nghĩa là N thanh ghi phức
hoặc 2N thanh ghi thực. Cách tính toán và cất dữ này được gọi là sự tính toán in-place
Trong hình. 8.18 dữ liệu vào có bậc không tự nhiên x(0), x(2)…,x(7). Bằng cách này tất cả
cánh bướm được dịch từ trái sang phải, và ngõ ra có bậc tự nhiên X(0), X(1),…, X(7). Tuy nhiên, có
thể sắp xếp lại giản đồ FFT để ngõ vào có bậc tự nhiên và ngõ ra tùy ý, hoặc cả hai có bậc tự nhiên
8.4.2 Phân giải FFT theo tần số
Trong phần nhỏ trên, DFT N điểm (N là mũ của 2) được phân giải thành DFT hai điểm, một
cho số mẫu vào chẵn và một cho phần lẻ. Sự phân chia này tiếp tục cho đến khi DFT N điểm là sự
tổng hợp của N/2 DFT 2 điểm. Một thuật toán FFT khác phân giải phổ ngõ ra X(k) thành những chuỗi
con như trên, được gọi là sự phần giải FFT trong miền tần số
Giả sử N là mũ của 2 (cơ số – FFT), ngõ ra X(k) được chia thành hai chuỗi, một cho những hệ
số chẵn, một cho những hệ số lẻ. Những chuỗi con là
N −1 N −1
X ( 2k ) = x(n)W
n =0
2 kn
N = x(n)W
n =0
kn
N /2 (8.57)
Bây giờ chuỗi con này được chia thành 2 phần như sau:
N / 2 −1 N −1
X ( 2k ) = x(n)W
n =0
2 kn
N /2 + x(n)W
n= N / 2
kn
N /2
x(0) X(0)
DFT
x(1) X(2)
4 ñieåm
x(2) X(4)
x(3) X(6)
x(4) X(1)
-1 W80
DFT
x(5) X(3)
4 ñieåm
-1 W81
x(6) X(5)
-1
W82
x(7) X(7)
-1 W83
Hình. 8.19: Phân giải FFT 8 điểm trong miền tần số với lần đầu tiên.
41
Giữ thành phần đầu và dịch chỉ số của thành phần thứ hai, ta có
N / 2 −1 N / 2 −1
X ( 2k ) =
n =0
x(n)W Nkn/ 2 + x(n +
n =0
N
2
)W Nk (/n2+ N / 2)
Chuỗi ngõ ra của N/2 DFT này là tổng của N/2 chỉ số đầu tiên và N/2 chỉ số sau.
Giống như vậy, chuỗi phổ số lẻ có thể được cho như
n / 2 −1 N n kn
X (2k + 1) = x(n) − x n + W N W N / 2 , k = 0, 1, ..., N / 2 − 1
2
(8.58)
n =0
Hình. 8.19 vẽ kết quả của phải giải lần đầu của 8 điểm FFT trong miền tần số. Phân giải tiếp tục thành
DFT 2 điểm. Dạng cánh bướm rút gọn (Hình. 8.20) khác cho trường hợp, với thừa số twidle nằm sau
Vào
Ngõ ra
-1 W Nk
cánh bướm cơ bản thay vì trước
Hình. 8.20: Dạng cánh bướm rút gọn của sự phân giải FFT theo tần số FFT
x(0) X(0)
x(1) X(1)
–1 W80
x(2) X(2)
–1 W80
x(3) X(3)
–1 W82 –1 W80
x(4) X(4)
–1
W80
x(5) X(5)
–1 W81 –1
W80
x(6) X(6)
–1 W82 –1 W80
x(7) X(7)
W83 –1 W82
–1 –1 W80
FFT 8 điểm đầy đủ chỉ trong hình. 8.20. Sự tính toán, bao gồm sự tính toán in-place, giống
như thuật toán phân giải theo tần số. So sánh những hình tương ứng của hai thuật toán phân giải ta
thấy rằng kết quả hai hình là sự đảo ngược tương ứng tín hiệu vào và ra. Đặc điểm này cho phép sự
dẫn xuất đơn giản sự tính toán IFFT và FFT
8.4.3 Những thuật toán FFT khác
Khi số mẫu vào là mũ của 2 (chẳng hạn 16, 64…) có thể sử dụng cơ số – 4 FFT thì hiệu quả
hơn cơ số -2 FFT. Trong bất kỳ trường hợp nào ta có thể sử dụng việc thêm không để có số mẫu ta
muốn, nhưng thêm không dẫn đến sự lãng phí thời gian tính toán. Bên cạnh đó, ở đây có một vài sự
tính FFT khác nhưng ít khi sử dụng vì đã có sử hỗ trợ của những phần mềm tính FFT như Matlab.