You are on page 1of 42

1

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

Tín hiệu tương tự không tuần hoàn


Phổ liên tụ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

Rời rạc và tuần hoàn Rời rạc và tuần hoàn


2

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 = −
− jn
(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
jn
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 = −
− jn
(Đáp ứng tần số) (8.3)

1
  H ()e
jn
h(n) = d (Đáp ứng xung) (8.4)
2 2

8.1.1 Rời rạc tần số liên tục 


Một số vấn đề của DTFT, đó là vấn đề của sự tính toán số (bằng máy tính hoặc vi xử lý số). Đầu tiên,
tổng vô hạn (8.1) và (8.3) không thể xử lý được, trong thực tế cả chuỗi x(n) cũng được giới hạn về
chiều dài hoặc cắt cụt đi, để giảm sự vô hạn của nó. Mặc khác frequency  thì liên tục và theo nguyên
tắc ta phải tính (8.1) và (8.3) tại những giá trị vô hạn của  dù tổng thì giới hạn về mặt thời gian. Vì
vậy tần số  phải được rời rạc hóa. Thứ hai, như biến đổi X ( ) và H ( ) là những giá trị liên tục, vì

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ố

8.1.2 DFT và đảo của nó


Đầu tiên, biến đổi Fourier rời rạc (DFT) cũng như biến đổi Fourier rời rạc thời gian (DTFT) được lấy
mẫu tại những khoảng bằng nhau. Xét một tín hiệu nhân quả x(n) DTFT của nó có được từ (4.1) với
ngưỡng dưới của tổng là không.

X ( ) =  x(n)e − jn (8.5)
n =0

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 − jn (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

DFT áp dụng cho hệ thống.


N −1
H (k ) =  h(n)e − j ( 2 / N ) kn , k = 0, 1, 2,..., N − 1 (DFT) (8.10)
n =0

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)

WN− kn = e j ( 2 / N )kn (8.12c)

WN* = WN−1 (8.12d)

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

(e) x5 (n) = 4(n) − 4(n − n0 ), 0  n0  N


5

(f) x6 (n) = cos n 0 , 0  n0  ( N − 1) and  0 = (2 / N )k 0

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

(b) Từ sự định nghĩa của DFT


N −1
X 2 (k ) = 1e − j ( 2 / N ) kn
n =0

Tổng có giá trị là N với k= 0, và 0 khi k  0 . Vì vậy


X 2 (k ) = N (k )
(c) Từ sự định nghĩa của DFT
N −1
X 3 (k ) =   (n − n0 )e − j ( 2 / N ) kn = 1e − j ( 2 / N ) kn0 = e − j ( 2 / N ) kn0 , k = 0,1,..., N − 1
n =0

(d) Từ sự định nghĩa của DFT

 
N −1 N −1
X 4 (k ) =   n e − j ( 2 / N ) kn =  e − j ( 2 / N ) k
n

n =0 n =0

Sử dụng công thức chuỗi hình học hữu hạn, ta có

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.

Như trong (4.10a) và (4.10b), ta viết


WN = e − j ( 2 / N )

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

WN− kn0 / 2 − WNkn0 / 2


X 5 (k ) = WNk ( n0 −1) / 2
WN−k / 2 − WNk / 2
sin(kn0 / N )
= e − j ((2 / N ) k ( n0 −1) / 2 , k = 0, 1,..., N − 1
sin(k / N )
6

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)).

(f) Diễn tả cosin trong thành phần của mũ phức.


x(n) = cos n0 = 12 e jn0 + 12 e − jn0
Vì vậy
N −1

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

k  ( N − k 0 ) , và bằng N với k = ( N − k 0 ) . Vì vậy biến đổi là

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 − jk n , k = 0, 1,..., N − 1 (DFT) (8.13)
n =0

N −1
x ( n) = 1
N  X (
k =0
k )e jk n , n = 0, 1,..., N − 1 (IDFT) (8.14)

Vì vậy ta có thể tính X ( k ) thay vì như thông thường X(k).

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à

h(0) = 0, h(1) = 1, h(2) = 2, h(3) = 3, h(n) = 0 với n khác


(b) Chứng mình rằng từ 4 giá trị của H ( k ) đáp ứng xung có thể phục hồi một cách hoàn toàn

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ì

h(n) = n. Đáp ứng tần số H ( k ) là


3 3
H ( 24 k ) =  h(n)e − j ( 2 / 4) kn =  h(n)e − j ( / 2) kn , k = 0, 1, 2, 3
n =0 n =0
7

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

Kết quả vẽ trong hình 8.3

H()
6

2 2 2 2
2

0  /2  3 / 2 k
0 1 2 3 k

Hình 8.3: Ví dụ 8.1.2 Đáp ứng tần số DFT

(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ờ

H ( 2 k )e j ( / 2) k 0 = 6 + (−2 − j 2) − 2 + (−2 − j 2) = 0


1 1
n = 0 : h(0) =
4
 4
8

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 = 40k 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)


9

 (k ) = arg X (k ) = arctg X I (k )
X R (k ) (8.15c)

Là phổ biên độ và phổ pha X(k), tương ứng

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 4k / 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

(a) Từ (8.1) DFT được cho bởi


L −1 L −1
X ( ) =  x ( n )e
n =0
− j n
= e
n =0
− j n

1 − e − jL
=
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 2kL / N
X (k ) =
1 − e − j 2k / 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à

Bằng cách sử dụng chuỗi hình học ta có


11

Phổ biên độ

Và phổ pha

0 , khác
Phổ được vẽ trong hình 8.4a

Hình 8.4a: Ví dụ 8.15 (tín hiệu và phổ)

(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

Hình.8.4b: tiếp ví dụ 8.15 continued (tín hiệu và phổ)

8.1.3 Dạng ma trận của DFT

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:

x = x(0), x(1),..., x( N − 1)


T
(8.16)
X = X (0), X (1),..., X ( N − 1)
T

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

ma trận N×N, W là thừa số WNkn :

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í dụ, với N = 5 ma trận là


W N0 W N0 W N0 W N0 W N0 
 0 
W N W N1 W N2 W N3 W N4 
W = W N0 W N2 W N4 W N6 W N8 
 0 
W N W N3 W N6 W N9 W N12
 0 16 
W N W N4 W N8 W N12 WN 
13

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

nghĩa DFT và IDFT, W −1 = W * / N . Vì vậy ma trận IDFT là


1 *
x= W X (8.18b)
N

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 

Từ thuộc tính đối xứng và tuần hoàn (phần 8.2) ta có


W40 = W44 = 1, W41 = W49 = − j , W42 = W46 = −1, and W43 = j .
Vì vậy

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

Bây giờ IDFT là


1 1 1 1 
1 W −1 W4− 2 W4−3 
1
x=  4
X
4 1 W4− 2 W4− 4 W4−6 
 −3 
1 W4 W4−6 W4−9 
14

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.

8.2 THUỘC TÍNH CỦA DFT

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.

8.2.4 Tuần hoàn


Tín hiệu x(n) (hoặc đáp ứng xung h(n)) có chiều dài hữu hạn N (có những mẫu n = 0 đến n = N - 1)
DFT X(k) (hoặc đáp ứng tần số H(k) tuần hoàn với chu kỳ N, nghĩa là, sự biến đổi trong
dải 0  k  N − 1 ) được lặp lại bên ngoài dải. Thuộc tính tuần hoàn có thể diễn tả về mặt toán học như

Xk + iN = X(k) , i = 1,  2,...,   (8.19)

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.

8.2.4 Tuyến tính


DFT là một toán hạng tuyến tính. Xét hai chuỗi số x1(n) và x2(n) có cùng chiều dài thì sự tuyến tính có
nghĩa
ax1 (n) + bx 2 (n)  aX1 (k) + bX 2 (k ) (8.20)
Với a và a và b là những hằng số.
Thuộc tính tuyến tính có thể diễn tả như: DFT là sự kết nối tuyến tính của nhiều tín hiệu cũng có DFT
tuyến tính
8.2.4 Đối xứng (với tín hiệu thực)
Xét trường hợp tín hiệu thực thì từ định nghĩa DFT là đối xứng

X(N − k) = X * (k) , 0  k  N − 1 (8.21)

Từ định nghĩa của DFT ta có


N −1 N −1
X ( N − k ) =  x(n)WN( N − k ) n =  x(n)WN− knWNNk
n =0 n =0

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
*

được gọi là liên hiệp phức đối xứng.


Quan trọng hơn, khi N chẵn, thường là mũ của 2, DFT X(k) sẽ là một hàm đối xứng của k
qua điểm giữa N/2 ( nhìn lại ví dụ 8.1.2), đặc biệt, phổ biên độ đối xứng chẵn và phổ pha đối xứng lẻ
qua điểm giữa.

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

Đối xứng Đối xứng

(a) N even (N = 8) (b) N odd (N = 7)

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

8.2.4 Dịch vòng


Dịch chuyển thời gian của chuỗi x(n), có cả trễ và tới trước, hoặc dịch chuyển tần số của phổ
X(k), với k tăng hoặc giảm, là một dịch vòng, không phải dịch tuyến tính, vì x(n) và sự mở rộng tuần
hoàn của nó và X(k) thì tuần hoàn tại chu kỳ N. Xét một chuỗi x(n) bao gồm những mẫu từ x(0) đến
x(N-1). Một dịch tới trước nghĩa là dịch sang phải 1 mẫu, chuỗi mới sẽ bắt đầu từ x(1) đến x(N) với
X(N) = x(0) vì sự tuần hoàn. Dịch tiếp tục cho chuỗi từ x(2) đến x(N+1 với x(N) = x(0), và x(N+1) =
x(1)…Sử dụng cánh minh họa dịch vòng để minh họa những mẫu được sắp xếp quanh một đường tròn
với gốc thời gian (n = 0) cố định. Hình. 8.7…minh họa điều này

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

xp(n) = x(n mod N) (Mở rộng tuần hoàn) (8.23)

Với mod N là toán hạng module, mà được định nghĩa như

n mod N = 0  n  iN  N, i = 0 ,1, 2 ,... (8.24)


17

x(3) dòch chuyeån luøi x(2) x(1)


(tôùi tröôùc)

x(0) x(1) 0 x(3) x(0) 0 x(2)


x(2) 0
dòch chuyeån tôùi
(trì hoaõn)
x(1) x(0) x(3)

x(n) x(n) x(n)


3 3
3
2 2 2
1 1 1
0 0 0

-1 0 1 2 3 4 n -1 0 1 2 3 4 n -1 0 1 2 3 4 n

Hình 8.7.: Chuỗi x(n) có 4 mẫu (N = 4) và dịch vòng

Với n dương, toán tử module là phần dư sau khi chia n cho N, ví dụ


0 mode 3 = 0 , 1 mod 3 = 1, 2 mod 3 = 2, 3 mod 3 = 0, 4 mod 3 = 1, 9 mod 3 = 0, 11 mod 3 = 2
Với n dương chọn dấu để 0  n − iN  N , ví dụ (for N = 3)
4 mod 3 = 4 – 3 = 1, 9 mod 3 = 9 – 3N = 0, 11 mod 3 = 11 – 3N = 2
Với n âm chọn dấu để 0 < n + iN < N, ví dụ (for N = 3)
4 mod 3 = 4 – 3 =1, 9 mod 3 = 9 – 3N = 0, 11 mod 3 = 11 – 3N = 2
Với n âm ta chọn dấu để 0  n + iN  N , ví dụ (for N = 3)
(-1) mod 3 = -1 + N = 2, (-2) mod 3 = -2 + N = 1, (-3) mod 3 = -3 + N = 0
(-4) mod 3 = -4 + 2N = 2, (-5) mod 3 = -5 + 2N = 1, (-9) mod 3 = -9 + 3N = 0
Hình 8.8 minh họa sự hoạt động n mod 3. Chú ý rằng kết quả thì tuần hoàn với chu kỳ 3

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

Hình 8.8 Sự hoạt động của n mod 3


18

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ả

x p (n − n 0 ) = x[(n − n 0 ) mod N] (Dịch vòng) (8.25)

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) Tìm tín hiệu x2(n) để DFT là


j 410 k
X 2 (k ) = e X 1 (k )
Giải
(a) Ta biết DFT của  (n) và sử dụng thuộc tính trễ, ta có
− j 210 k
X 1 (k ) = 1 + 2e = 1 + 2(−1)k = 1 − 2k
19

(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

Hình 8.9.: Dịch tuyến tính và dịch vòng tương ứng


20

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 )]

Ta phải tìm X(k) và X * (k ) :


N −1
X ( k ) =  x ( n)e =  x(n)WNkn
− j 26 kn

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

Công suất phổ trung bình


Tất nhiên Px = Pk .

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

X (k ) = 4, 3 + j3, 2, 3 − j3

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 )

Nhân chập vòng trong theo thời gian x(n) * h(n) X (k ) H (k )


Nhân chập vòng theo tần số x ( n) h( n) 1
X (k ) * H (k )
N
xy(n)
X (k )Y * (k )
N −1
Tương quan vòng
 x ( n)
2
N −1

 X (k )
1 2
n =0 N
k =0
Định lý Parseval

Chú ý: i = 1,  2,...; WN = e − j ( 2 / N ) ; x p (n − n0 ) = x[(n − n0 ) mod N ]

X p (k − k 0 ) = X [(k − k 0 ) mod N ]

Từ (8.30) PSD tại mỗi tần số


1
S N (k ) =
2
X (k )
N
= 16, 18, 4, 18 = 4, 4.5, 1, 4.5
1
4
Và từ (8.31) phổ công suất trung bình
23

1 N −1
Pk =  S N (k )
N k =0

= (4 + 4.5 + 1 + 4.5) = 3.5


1
4
Vì vậy Px = Pk như mong muốn.

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

DFT[ x(n − 2)] = X (k )e − j ( 2 / 4) kn0 = X (k )e − jk = [4, j 2, 0, − j 2]


(b) Sử dụng thuộc tính đảo,
DFT[ x(−n)] = X (−k ) = X * (k ) = [4, j 2, 0, − j 2]
(c) Sử dụng tính kết hợp trong thời gian,
DFT[ x * (n)] = X * (−k ) = X * (−k ) = [4, j 2, 0, − j 2]
= [4, j 2, 0, − j 2]
Ví dụ 8.2.6
Tìm DFT của tín hiệu
x(n) = (1, 1, 0, 0, 0, 0, 0, 0)
Giải
Tín hiệu chỉ có hai mẫu nhưng được thêm không để có chiều dài N = 8 . DFT là
7 1
X (k ) =  x(n)W8nk =  e − j ( 2 / 8) nk
n =0 n =0

= 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

Từ đối xứng liên hiệp phức, X (k ) = X * (8 − k ) và

X (5) = X * (8 − 5) = X * (3) = 0.293 + j 0.707


X (6) = X * (8 − 6) = X * (2) = 1 + j
X (7) = X * (8 − 7) = X * (1) = 1.707 + j 0.707

Vì vậy DFT tổng quát là

X (k ) = 2,1.707 − j 0.707,0.293 − j 0.707,1 − j,0,1 + j,0.293 + j 0.707,1.707 + j 0.707 .

8.2.6 DFT và biến đổi z


Biến đổi z của chuỗi nhân quả N điểm x(n) là:
N −1
X ( z ) =  x ( n) z − n
n =0

Ngược lại DFT của chuỗi đó là:


N −1 N −1
X (k ) =  x(n)e − j ( 2 / N ) kn =  x(n)WNkn
n =0 n =0

Vì vậy X(k) là X(z) khi thay z bằng e j ( 2 / N ) k  WNk :

X(k) = X(z) z = WNk


, k = 0,1,..., N − 1 (8.32)

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

WNk = cos(2N k ) − j sin( 2N k ) (8.33)

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ị

Bảng 8.2: Giá trị của z k = W8k

Đ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 )

8.3 NHÂN CHẬP TRÒN VÀ THÊM KHÔNG

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)

8.3.1 Nhân chập tròn


Trường hợp DFT của hai chuỗi x(n) và h(n) được cho có cùng chiều dài N (nếu không, ta
phải thêm không để chúng bằng nhau). Cho x(n) và h(n) là chuỗi N điểm, và cho hp(n) là sự mở
rộng tuần hoàn của h(n), thì nhân chập tròn của x(n) với h(n), được chú thích c(n), định nghĩa như
N −1
c(n) = x(n)  h(n) =  x(m)h
m =0
p (n − m) (8.36)

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)

h2 (2) x(0) h(0) h(2) h(0)


x(2) m=0 1
x(2) m = 0 x(0)
3 2 3 2 1
2 2

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

h(2) = 3 (d) y(2) =h2(3


)3=+41 2 + 2 1 + (−1)4 = 6
(c) y(1) = 2  2 + 11 + 2  4 + (−1)3 = 10

Hình. 8.11: Ví dụ 8.3.1


28

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 .

Tiếp tục ta sẽ có y(3) = 14 . Kết quả nhân chập là

c(n) = x(n) 3 h(n) = [10, 10, 6, 14]


Ta chỉ cần vẽ một cái x(m) là cố định. Với vòng tròn h(m), đầu tiên ta vẽ h(-m) sau đó h(1-m), h(2-
m)…, mỗi thời giant a lấy tổng của tích x(m)h(n − m) .
Có lẽ cách nhân nhất là sử dụng phương pháp chuỗi (Vector) như sau

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à

y(n) = x(n)  h(n) = [2, 5, 10, 14, 8, 5, − 4]

Dẫn ra sự nhân chập vòng.


29

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)

Ta theo bảng sau để tính tổng

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 - - - -

Kết quả như trên..

8.3.3 Công thức ma trận của nhân chập vòng


Vì nhân chập vòng là sự biến đổi tuyến tính từ x(n) đến c(n), nó có thể hình thành công thức ma trận
như DFT (phần 8.1.3). Đầu tiên viết chuỗi x(n) và c(n) như những vector cột:

x = x(0), x(1),..., x( N − 1)


T

c = c(0), c(1),..., c( N − 1)


T

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

tìm nhân chập vòng xh

Giải
Ma trận nhân chập của h là
 5 −4 3 
C(h) =  3 5 − 4
− 4 3 5 

Vì vậy nhân chập vòng là


 5 − 4 3  2 
c = C( h)x =  3 5 − 4 − 1
− 4 3 5   6 

 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.

8.3.3 Zero padding

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]

hz (n) = [h(0), h(1),.., h( N x − 1), 0,..., 0]


Nx-1

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 + 11 = 6

Vì vậy nhân chập vòng là


c(n) = x(n) 4 h(n) = [7, 9, 8, 6]
Trong khi nhân chập tuyến tính có thể được tìm thấy như
y (n) = x(n)  h(n) = [1, 2, 4, 7, 5, 7, 4]

(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]

Nhân chập vòng bây giờ là


c (0) = 1  1 + 0  0 + 1  0 + 1  0 + 0  0 + 0  4 + 0  3 = 1
z
c (1) = 1  2 + 0  1 + 1  0 + 1  0 + 0  0 + 0  4 + 0  3 = 2
z
...

Cuối cùng ta có kết quả


c(n) = x z (n) hz (n) = [1, 2, 4, 7, 5,7,4]
mà giống như nhân chập tuyến tính
32

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

của x(n) và h(n). Với N  N x + N h − 1 không có sự trùng lắp.

8.4 FAST FOURIER TRANSFORM


Trở lại đôi biến đổi (8.8) và (8.9)
N −1 N −1
X (k ) =  x(n)e − j ( 2 / N ) kn =  x(n)WNkn , k = 0, 1, ..., N − 1 (DFT) (8.46)
n =0 n =0

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

Bảng.8.3: The values of e − j ( 2 / 8) kn

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 (2kn / N ) và cos(2kn / 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

8.4.1 Phân giải thời gian FFT


Đầu tiên xét DFT 2 điểm mà có hai mẫu đầu vào x(0) và x(1). Mẫu ngõ ra X(0) và X(1) được cho bởi
1
X (k ) =  x(n)W
n =0
kn
2 , k = 0, 1
36

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 (0) = x(0) + x(2) + x(1) + x(3)W40 (8.52b)

 
X (1) = x(0) + x(2)W42 + x(1) + x(3)W41

X (2) = x(0) + x(2) + x(1) + x(3)W42 (8.52c)

  
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

Hình 8.14.: Giản đồ tín hiệu của DFT 4 điểm


37

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ẻ

a (n) = x(2n), n = 0, 1,..., N / 2 − 1 (8.53a)

và chú thích b(n) tổng hợp những chỉ số chẵn


(8.53b)
b(n) = x(2n + 1), n = 0, 1,..., N / 2 − 1

DFT N điểm sau đó là


N −1 N / 2 −1 N / 2 −1
X (k ) = 
k =0
x(n)W Nkn = 
n =0
a(n)W Nkn +  b(n)W
n =0
k ( 2 n +1)
N

Với WN2kn = WNkn/ 2 , X(k) trở thành


N / 2 −1 N / 2 −1 (8.54)
X (k ) = 
n =0
a(n)W Nkn/ 2 + W Nk 
n =0
b(n)W Nkn/ 2

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ì

X (k ) = A(k ) + W Nk B(k ), k = 0, 1,..., N − 1 (8.55)


Chú ý rằng thừa số widle W Nk chỉ liên quan với DFT của chuôi gồm những số lẻ B(k). A(k) và B(k)
cho A(0), A(1),…, A(N/2 – 1) và B(0), B(1),…, B(N/2 – 1). Với toàn bộ N điểm DFT ta phải tính
A(k) và B(k) for k = 0, 1, … , N/2 – 1, …, N – 1, nhưng với A(k) và B(k ) tuần hoàn ở chu kỳ N/2:

A(k ) = A(k + N / 2) , B(k ) = B / k + N / 2

Vì vậy for k = N/2, …, N – 1, giá trị thì giống nhau N = 0, 1,..., N / 2 − 1


Hình.8.15 chỉ giản đồ tín hiệu của DFT 8 điểm sau lần chia đầu tiên
38

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

Từ đôi DFT A(k), B(k) đến đôi DFT X ( k ), X ( k + N / 2) ta chú ý rằng


(8.56a)
X (k ) = A(k ) + W Nk B(k ), 0, 1,..., N / 2 − 1

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

(a) Cánh bướm (b) Cánh bướm rút gọn


Hình. 8.16: Dạng cánh bướm (thành phần cấu trúc của FFT) trong phân giải thời gian
39

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) A(0) X(0)


A(1)
x(2) 4 – point
DFT X(1)
x(4) A(2)
X(2)
x(5)
A(3)
x(1) X(3)
4 – point
x(3) DFT X(4)
B(0) −1
W80
x(5)
−1 X(5)
B(1) W 1
8
x(7)
X(6)
B(2) −1
W82
X(7)
B(3) W 3 −1
8

Hình. 8.17: DFT 8 điểm sử dụng cánh bướm rút gọn

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)

Với WNk (/n2+ N / 2) = WNkn/ 2 Phổ chẵn trở thành


N / 2 −1
X ( 2k ) =  x(n) + x(n + )W
n =0
N
2
kn
N /2 , k = 0, 1,..., N / 2 − 1 (8.57)

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

Hình.21: Phân giải đầy đủ FFT 8 điểm theo tần số


42

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.

You might also like