Biến đổi fourier rời rạc DFT và biến đổi fourier nhanh FFT
Trang 1Chươ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ố Thật ra, DFT và FTT
đã được nói đến trong chương 3 (phần 3.9)
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ư
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
Trang 2
n
n j e n x
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
2
1 )
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à
n
n j e n h
n
2
1 )
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 đổiX ( )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)
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
)
(
H
0
1
H
Hình 8.2: Lấy mẫu đáp ứng tần số
Trang 3
0 ) ( )
(
n
n j e n x
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
1 0 ) ( )
(
N
n
n j e n x
Bây giờ tính X ( )tại N giá trị rời rạc bằng nhau của trong chu kỳ 2:
1 ,
2 , 1 , 0 ,
k
Hoặc
2
k
k
k
f
N
và DFT của tín hiệu có N mẫu từ n = 0 đến n = N -1 là
1
0
) / 2
N k
e n x k
X
N
n
kn N
j
(DFT) (8.8)
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ư
) 1 ( , , 2 , 1 , 0 ,
) ( )
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
DFT áp dụng cho hệ thống
1 , , 2 , 1 , 0 ,
) ( )
(
1
0
) / 2
N k
e n h k
H
N
n
kn N
j
(DFT) (8.10)
1 , , 2 , 1 , 0 , )
(
1 )
(
1
0
) / 2
N n
e k H N n
h
N
k
kn N
j
(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ải0k N1, ví dụ với Nk 2N1 hoặc 2N1k 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ừ
1
to n N
n ) 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
) / ( N j
N e
Vì vậy
kn N j kn
N e
kn N j kn
W (2/ )
(8.12c) 1
N W
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 cso 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
Trang 4(a) x1( n ) ( n )
(b) x2( n ) 1
(c) x3(n)(nn0), 0n0 N
(d) x4(n)2n, 0nN
(e) x5(n)4(n)4(nn0), 0n0 N
(f) x6(n)cosn0, 0n0 (N1)and 0 (2/N)k0
Giải
(a) Từ sự định nghĩa của DFT
1 , , 1 , 0 ,
1 1
) ( )
1
0
) / 2 (
k
N
n
kn N
(b) Từ sự định nghĩa của DFT
1 0
) / 2 (
2( ) 1
N
n
kn N j e k
Tổng có giá trị là N với k= 0, và 0 khi k 0 Vì vậy
) ( ) (
2 k N k
(c) Từ sự định nghĩa của DFT
1 , , 1 , 0 1
) ( )
(
1
0
, ) / 2 ( )
/ 2 ( )
/ 2 ( 0 3
0
N k
e e
e n n k
X
N
n
kn N j kn N j kn N
(d) Từ sự định nghĩa của DFT
0
) / 2 ( 1
0
) / 2 (
4( )
N
n
n k N j N
n
kn N j n
e e
k
Sử dụng công thức chuỗi hình học hữu hạn( ), ta có
1
1 )
) / 2 (
e
e k
N k N j
(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
W N ej(2/N)
W N kn ej(2/N)kn,W Nkn 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ó
N
kn N n
n
kn N
W
W W
k X
1 )
(
0
0 1
0 5
Tử số, lấy kn0/ 2
N
W làm thừa số chung, và mẫu số lấy W N k/2làm thừa số chung, biến đổi trên trở thành
1 , , 1 , 0 ,
) / sin(
) / sin(
) (
0 2
/ ) 1 ( ) / 2 ((
2 / 2 /
2 / 2
/ 2
/ ) 1 ( 5
0
0 0
0
N k
N k
N kn e
W W
W W
W k X
n k N j
k N k
N
kn N kn
N n
k N
Ta có thể kiểm tra trường hợp n0 0(kết quả là 0) và trường hợpn0 1(kết quả như trong1 (b))
(f) Diễn tả cosin trong thành phần của mũ phức
0
0 1 1
cos )
e e
n n
Trang 5Vì vậy
n k j N
n
n k j
N
e k
1
0
) ( 2
)
Với 0 ( 2 / N ) k0
0
) ( 2
1 1
0
) ( 2
) (
N
n
n k k j N
n
n k k j
N
e k
Tổng thứ nhất bằng không với k k0, và bằng N với k k0 Tổng thứ hai bằn không với
) ( N k0
k , và bằng N với k ( N k0) Vì vậy biến đổi là
0 0
2
1 , )
otherwise
, 0
Ta có thể hiểu ( 2 / N) k là tần số DFT và viết
1 , , 1 , 0 ,
/
k
Nếu, đôi biến đổi có thể đặt trong dạng
1 , , 1 , 0 ,
) ( )
(
1
0
N k
e n x X
W
n
n j k
k
1 , , 1 , 0 ,
) ( )
(
1
0
N n
e X n
N
k
k N
k
Vì vậy ta có thể tính X(k)thay vì như thông thường X(k)
Ví dụ 8.1.2 (cũng thấy trong ví dụ 3.9.2)
(a) Tín đá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, otherwise h(n) = 0
(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 0n3 thì h(n) = n Đáp ứng tần số H(k) là
3 , 2 , 1 , 0 ,
) ( )
( )
(
3
0
) 2 / ( 3
0
) 4 / 2 ( 4
k e
n h e
n h k
H
n
kn j
n
kn
Bây giờ
6 3 2 1 )
0 ( , 0
3
0
01 ) 2 / (
n
j ne H
2 2 3
2 )
( ,
3
0
1 ) 2 / (
H
n
n
2 3
2 2
) ( ,
3
0
2 ) 2 /
n
n j
e e
e e
H k
2 2 3
2 3
) ( ,
3
0
3 ) 2 / ( 2
H
n
n
Kết quả vẽ trong hình 8.3
H( )
6
2
2
Trang 6(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 , , 1 , 0 ,
) ( 4
1 ) (
3
0
) 2 / (
N k
e k H n
h
k
kn
j
Bây giờ
6 ( 2 2 ) 2 ( 2 2 ) 0 4
1 )
( 4
1 ) 0 (
:
6 ( 2 2 ) 2 ( 2 2 ) 1 4
1
) ( 4
1 ) 1
(
:
1
3 ) 2 / ( 2
) 2 / ( 1 ) 2 / ( 0
) 2 / (
1 ) 2 / ( 3
0 2
j j
j j
k j
k
e j e
e j e
e k H h
n
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 20kHz và DFT lấy tại N100 điểm, khoảng lấy
N
f
20 1000
20000
(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
s k f k
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
1 , , 1 , 0 ,
1000
2 2
N
k
Vì vậy tần số gốc tương tự được cho bởi
s rad k k
f s k
k 2000010002 40 /
Và tần số tuyến tính tương tự là
2 /
Hình 8.3: Ví dụ 8.1.2 Đáp ứng tần số DFT
0
Trang 72
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)
) ( ) ( ) ( )
( ) (k X R k jX I k X k e j k
Với
2
) ( ) ( )
( k X2 k X2 k
và
) ( ) ( )
( arg )
R I
arctg k
X
Là phổ biên độ và phổ pha X(k), tương ứng
Ví dụ 8.1.4
Chuỗi số được cho như
0 , 0 , 1 , 1 , 1 , 1 , 1
) ( n
x
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 N19 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à
0 , 0 , 1 , 1 , 1 , 1 , 1 , 0 , 0
) ( n
x
DFT là
2 9
0
) / 2 ( ) ( )
(
n kn
n
kn N j
W e
n x k
Bằng cách sử dụng công thức chuỗi hình học hữu hạn, ta có
9 , , 1 , 0 ,
) 0 / sin(
) 2 / sin(
1 ) (
5 / 4
7 2
k k
k e
W
W W
k X
k j k
k k
Từ điều này ta có thể tính phổ biên độ và phổ pha, tương ứng
) 10 / sin(
) 2 / sin(
) (
k
k k
X
0 ) 10 / sin(
) 2 / sin(
, 5 4
0 ) 10 / sin(
) 2 / sin(
, 5
4 ) (
k
k k
k
k k
k
Ví dụ 8.1.5
Một xung chữ nhật có chiều dài L
otherwise
L L
n x
, 0
1 ., , 1 , 0 , )
(a) Tìm DFT của nó
(b) Dẫn xuất ra số điểm DFT với N L
Trang 8Giải
(a) Từ(8.1) DFT được cho bởi
2 / ) 1 (
1
0 1
0
) 2 / sin(
) 2 / sin(
1 1
) ( )
(
L j j
L j
L
n
n j L
n
n j
e L e e
e e
n x X
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 , , 1 , 0 , ) / sin(
) / sin(
1
1 )
/ 2
N k
N k
N kL e
e k
N kL j
Nếu số điểm DFT gần bằng với chiều dài tín hiệu L thì
1 , , 2 , 1 , 0
0 , ) (
L k
k L k X
Đ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ó
Phổ biên độ
Và phổ pha
0 , Otherwise Phổ được vẽ trong hình 8.4a
Trang 9(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
Hình 8.4a:Ví dụ 8.15 (tín hiệu và phổ)
Hình.8.4b: tiếp ví dụ 8.15 continued (tín hiệu và phổ)
Trang 108.1.3Dạ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:
T
N X X
X
N x x
x
) 1 ( ), , 1 ( ), 0 (
) 1 ( ), , 1 ( ), 0 (
X x
Thật ra, x và X là những vector cột N1 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ố kn
N
W :
2 ) 1 ( 1
1 1
1 ,
0
1
1
1
1 1
N N N N
N N N N
n
kn
N
W W
W W W
Ví dụ, với N = 5 ma trận là
16 12 8 4
0
12 9 6 3
8 6 4 2
4 3 2 1
0 0 0 0
0
0
0
0
N N N N
N
N N N N
N N N N
N N N N
N N N N
N
N
N
N
W W W W
W
W W W W
W W W W
W W W W
W W W W
W
W
W
W
W
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 W
Từ điều này xW1 X Thật ra, ở đây không cần tính nghịch đảo W1 của W, vì tính chất định nghĩa DFT và IDFT, W1W */N Vì vậy ma trận IDFT là
X W N
1
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à
x X
9 4 6 4 3 4
6 4 4 4 2 4
3 4 2 4 1 4
1 1 1
1 1 1 1
W W W
W W W
W W W
Từ thuộc tính đối xứng và tuần hoàn (phần 8.2) ta có
, 1 ,
,
4
4
0
4 W W W j W W
4
Vì vậy
j
j
j j
j j
1 0 1 2
0 0 1 1
1 1
1 1 1
1
1 1
1 1 1
1
X
Đó là
(8.16)
Trang 11 T
j 1 0, j, -1 2,
Bây giờ IDFT là
X x
9 4 6 4 3
4
6 4 4 4 2
4
3 4 2 4 1
4
1
1
1
1 1 1
1
4
1
W W W
W W W
W W W
0 0 1 1
1 0 1 2
1 1
1 1 1 1
1 1
1 1 1 1
4 1
j
j
j j
j j
Đây là
] 0 , 0 , 1 , [ ) (n 1
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 hòan
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ải0k N1) đượ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ư
kiNX(k) , i1,2, ,
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
)
(k bX (k) aX (n)
bx (n)
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
1 0
Từ định nghĩa của DFT ta có
Nk N N
n
kn N N
n
n k N
W n x k
N
0 1
0
) (
) ( )
( )
(
1 0 ) (
N
n
kn N W n x
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