Tải bản đầy đủ (.pdf) (10 trang)

Biến đổi fourier rời rạc part 1 doc

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (362.87 KB, 10 trang )


75
Chơng
6

Biến đổi Fourier rời rạc
6.1 Chỉ dẫn
Trong chơng 2,chúng ta đã chứng minh rằng đáp ứng tần số của hệ
thống của hệ thống tuyến tính bất biến (LSI ) 2-D đợc cho bởi:








1 2
2211
)(
2121
),(),(
k k
kkj
ekkhH


(6.1)
Nếu h(k
1
,k


2
) chỉ có chỉ tồn tại với k
1

0, k
2


0 và tổng quát đợc xác
định trong miền hữu hạn có kích thớc N

N thì








1
0
1
0
)(
2121
1 2
2211
),(),(
N

k
N
k
kkj
ekkhH


(6.2)
Công thức này chứng tỏ rằng H( , )


1 2
là tuần hoàn, chu kỳ tuần hoàn là
2. Nếu chúng ta lấy mẫu dới dạng
1
,
2
, và miền xác định là (0
1

2) và (0
2
2), N

N mẫu, chúng ta có thể viết:



1 1
2


N
n và


2 2
2

N
n (6.3)
vì thế










1
0
2
1
0
2121
1
2211
2

),(),(
N
k
knkn
N
j
N
k
ekkhnnH

(6.4)
Biểu thức (6.4) đợc gọi là biến đổi Fourier rời rạc 2-D hay còn gọi là
DFT. Công thức này đợc áp dụng vào nhiều ứng dụng nh lọc, nén ảnh,
phóng đại ảnh. Trong chơng này chúng ta sẽ nghiên cứu 2-D DFT và các
kỹ thuật tính toán. Đầu tiên, chúng ta sẽ xem xét 1-D DFT, sau đó mở rộng
ra cho 2-D.
6.2 Biến đổi Fourier 1-D
Biến đổi Fourier 1-D cho tín hiệu thời gian rời rạc f(kT) tính theo công
thức :

76






1
0
2

)()(
N
k
nk
N
j
ekTfnF


(6.5)
Công thức này có thể viết lại dới dạng







1
0
Ư)()(
N
n
nk
N
WkfnF
(6.6)
ở đây f(k) = f(kT) và W
N
= e

- j2 /N
.
W
N
đợc gọi là hạt nhân của phép biến
đổi. Tổng quát, F(n) có dạng

)(
)()(
nj
enAnF

(6.7)
Ký hiệu A(n),

(n) gọi là phổ khuyếch đại và phổ pha của F(n).
6.2.1 Biến đổi ngợc DFT
Hàm f(k) là biến đổi ngợc DFT của F(n) cho bởi theo biểu thức





1
0
2
)(
1
)(
N

n
nk
N
j
enF
N
kf


(6.8)
Chứng minh: Từ định nghĩa của DFT
























1
0
1
0
)(
1
0
1
0
1
0
)(
1
)(
1
)(
1
N
m
N
n
mkn
N
kn
N
N

n
N
m
nm
N
N
n
nk
N
Wmf
N
WWmf
N
WnF
N
(6.9)
Đặt





1
0
)(
N
n
mkn
N
WS


Nếu (k = m) thì S = N.
Nếu (k

m), chúng ta có thể viết:
S = 1 + W
N

(k -m )
+ W
N

2(k -m )
+ + W
N

(N-1)(k -m )

hoặc

77

)(
2
))(2(
m)-(k
N
m)-N(k
N
1

1
W-1
W-1
mk
N
j
mkj
e
e
S









Khi e
j2

(k-m)
= 1 và e
j2

/N. (k-m)
1 với (k m), vì vậy S = 0 với (k m ).

Vì vậy, biểu thức (6. 9) có thể rút gọn thành

f(k).N
1
)(
1
1
0
N
WnF
N
N
n
nk
N





Kết quả này giống nh biểu thức (6.8).
Khi f(k) có thể rút ra từ F(n) và ngợc lại, chúng gọi là cặp biến đổi. Cặp
biến đổi này có dạng
)()( nFkf


Chú ý từ biểu thức (6.8) ta có thể dễ dàng chứng minh:

)(
)(
1
)(

1
1
0
.
2
1
0
)(
2
kf
enF
N
enF
N
N
n
nk
N
j
N
n
Nkn
N
j














(6.10)
Mặc dù f(k) đợc xác định trên miền k

[0,N], nó vẫn là tín hiệu tuần
hoàn với chu kỳ NT. (T đợc bao hàm và rút ra từ biểu thức 6.5).
6.2.2 Một vài tính chất của DFT
Tuyến tính. Nếu ta có hai dãy tuần hoàn cùng f
1
(n) và f
2
(n), và cả hai
dãy này tuần hoàn với chu kỳ N, đợc dùng để tính
f
3
(k) =
af
1
(k) + bf
2
(k) (6.11)
là kết quả của biến đổi DFT f
3
(n) cho bởi

F3(n) = aF1(n) + bF2(n) (6.12)
ở đây a, b là hằng số và
)( Nkf


78
F
1
(n) = DFT của f
1
(k)
F2(n) = DFT của f2(k)

Tính đối xứng. Tính đối xứng của DFT rất hay đợc dùng.

nk
N
j
N
k
nk
N
j
N
k
N
N
j
N
k

nNk
N
eekf
eekf
WkfnNF


















2
1
0
2
1
0
2

1
0
)(
)(
)(
)()(



Nếu f(k) là thực thì

















)()()(
1
0

.
2
nFekfnNF
N
k
nk
N
j

(6.13)
Dấu * có nghĩa là liên hợp phức.

Tích chập tuần hoàn. Coi f
1
(k) và f
2
(k) là hai dãy tuần hoàn có chu kỳ
N, với biến đổi Fourier rời rạc là F
1
(n) và F
2
(n). Xem xét tích F(n
1
).F(n
2
)
khi )()(
1
0
1111

1
11





N
k
kn
N
WkfnF
)()(
1
0
2222
2
22





N
k
kn
N
WkfnF
và tại các vị trí n
1

= n
2
= n

W =
.=
2
n-
N
2
1
11
1
2
22
1
11
1
0
2211
1
0
1
0
12
1
0
111111
)()(
)()()().(

k
N
k
kn
N
N
n
N
k
kn
N
N
k
kn
N
Wkfkf
WkfWkfnFnF















79
Đặt f
3
(k) = IDFT của F
1
(n).F
2
(n)
hay

nk
N
n
WnFnF
N
kf




1
0
213
)().(
1
)(

vì vậy





































1
0
)(
1
0
22
1
0
11
1
0
1
0
1
0
)(
2211
21
21
1 2
21
1
)()(
)()(
1
N

n
kkkn
N
N
k
N
k
nk
N
N
n
N
k
N
k
kkn
N
3
W
N
kfkf
WWkfkf
N
(k)f


Chú ý là










0
1
1
1
0
)(
21
N
n
kkkn
W
N


ở đây l là số nguyên. Vì vậy mà

)()()(
12
1
01
113
lNkkfkfkf
N
k





(6.14)
ở đây k = 0 đến 2N - 1.
Biểu thức trên biểu diễn tích chập của hai tín hiệu tuần hoàn. Chú ý rằng
biêủ thức này chỉ áp dụng cho hai dãy có chung một chu kỳ, và chiều dài
của dãy tính theo biểu thức trên là 2N - 1. Kết quả này chứng minh rằng
trong DFT, tín hiệu có số mẫu lớn hơn N sẽ đợc biến đổi thành dãy tuần
hoàn có chu kỳ N. Khi dùng DFT cho một tín hiệu không có chu kỳ, mà kết
quả thu đợc từ tích hai dãy, ta sẽ phạm một sai lầm gọi là lỗi wraparound.
Đó là lý do ta phải làm cho cả hai dãy có chu kỳ bằng nhau. Để sửa lỗi này,
một số số 0 cần phải thêm vào cả hai dãy để chiều dài hai dãy bằng nhau. Ví
dụ, nếu một dãy có chiều dài A, một dãy có chiều dài B, kết quả ta phải
thêm các số 0 cho cả hai dãy có chiều dài ít nhất là A + B - 1.

Bài tập 6.1
Cho hai dãy sau





0
1
)(
1
kf


cho
k = k
1
+ k
2
+ lN

các trờng hợp còn lại.
0

k
1

4
các trờng hợp còn lại.

80






0
1
)(
2
kf



1. Tính bằng tay tích chập của hai dãy trên. Vẽ một lu đồ biểu diễn thuật
toán.
2. Làm lại phần 1, nhng lần này sử dụng tích chập tuần hoàn.
3. Lập một chơng trình C rút ra f
3
(k) từ biểu thức f
3
(k) =
IDFTDFT[f
1
(k)]. DFT[f
1
(k)]. So sánh kết quả của phần 1 và phần
hai.
4. Bây giờ thêm các số không vào f
1
(k) và f
2
(k) để chu kỳ của chúng = 5 +
6 - 1. Làm lại phần 3 và so sánh kết quả.
6.3 Thuật toán biến đổi nhanh Fourier
Tính trực tiếp giá trị của DFT bao gồm N phép nhân phức và N - 1 phép
cộng phức cho mỗi giá trị của F(n). Khi N giá trị đợc tính toán thì N
2
phép
nhân và N(N - 1) phép cộng đợc tính toán. Cũng nh vậy, cho N có giá trị
rất lớn, tính trực tiếp giá trị của DFT sẽ đòi hỏi một số phép tính lớn đến
mức không thể chấp nhận đợc. Để ví dụ, cho N = 1024 = 2
10
ta sẽ phải tính

2
20
= 1,048,576 phép nhân số phức và một số gần bằng nh vậy các phép
cộng.
Hoàn thiện có nghĩa là phải giảm số phép tính trong biến đổi Fourier
xuống. Dới đây chúng ta sẽ giới thiệu hai thuật toán hay dùng là thuật toán
phân chia thời gian và thuật toán phân chia tần số. DFT dùng các thuật toán
trên gọi là Fast Fourier transform (FFT).
6.3.1 Thuật toán phân chia thời gian
Xem xét tính toán của DFT cho bởi (5.6) với N= 2
r
(r là một số nguyên
bất kỳ). Cơ sở của thuật toán phân chia thời gian thì rõ ràng. Tuy nhiên, việc
thiết kế phần mềm cũng đòi hỏi một số phân tích chi tiết. Để làm rõ các
bớc của thuật toán này chúng ta sẽ bắt đầu phân tích với N = 16 và sau đó
mở rộng ra áp dụng cho N bất kỳ.
Cơ sở của thuật toán phân chia thời gian dựa trên cơ sở chiến lợc chia và
chiếm. Các bớc sau sẽ làm sáng tỏ thuật toán. Vì trong trờng hợp này N
=16; nên,
0

k
1

5
các trờng hợp còn lại.

81







15
0
16
)()(
k
nk
WkfnF

Chia d·y f(k) thµnh hai d·y, mét d·y ®îc rót ra tõ phÇn tö ch½n vµ mét
d·y tõ nh÷ng phÇn tö lÎ. §ã lµ,








15
0
16
15
0
16
)()()(
k

nk
k
nk
WkfWkfnF

k ch½n k lÎ
Chóng cã thÓ viÕt thµnh







7
0
)12(
16
7
0
)2(
16
)12()2()(
k
kn
k
kn
WkfWkfnF
(6.15)
Chó ý lµ


nk
nkjknj
kn
W
eeW





8
.
8
2
)2(.
16
2
)2(
16


v× thÕ






7

0
816
7
0
8
)12()2()(
k
nkn
k
nk
WkfWWkfnF

®Æt
f(2k)(k)f
10

1)f(2k(k)f
11

Ta ®îc







7
0
81116

7
0
810
)()()(
k
nkn
k
nk
WkfWWkfnF
(6.
16)
§Æt




7
0
81010
)()(
k
nk
WkfnF
(6.17)

82






7
0
81111
)()(
k
nk
WkfnF
(6.18)
Viết lại biểu thức (6.16) chúng ta đợc
(n)FW (n)F F(n)
11
-n
1610
(6.19)
Cũng nh vậy, phát triển cho một biểu thức
(n)FW -(n)F 8)F(n
11
-n
1610
(6.20)
Biểu thức (6.19) và (6.20) định dạng những đơn vị tính toán gọi là bớm.
Hình 6.1 là biểu đồ của phần tử bớm. Ký hiệu W
16
-n
thờng gọi là trọng
lợng hay hệ số xoay. Hai biểu thức này biểu diễn bớc cuối cùng trong lu
đồ tính toán của hình 6.2.
Bây giờ xem xét biểu thức







7
0
81010
)()(
k
nk
WkfnF

Xử lý nh trên chúng ta có







7
0
4108
3
0
41010
)12()2()(
k
nkn

k
nk
WkfWWkfnF

Dễ thấy

-2n
16
-n
8
WW

đặt

1)(2kf(k)f
(2k)f(k)f
1021
1020









F
10
(n) F(n)















F
11
(n) F(n+8)
F
10
(n) F(n)















F
11
(n) F(n+8)
W
16
-
n


n


83




Hình 6.1 (a) Bớm; (b) Biểu diễn rút gọn.
Hình 6.2 Bớc cuối cùng của thuật toán biến đổi FFT phân chia miền thời
gian. X(k) ký hiệu vector chứa giá trị đợc tính qua phép biến đổi
FFT.
Vì vậy,







3
0
421
3
0
2
1642010
)()()(
k
nk
k
nnk
WkfWWkfnF
(n)FW (n)F (n)F
21
-2n
162010
(6.21)
(n)FW - (n)F 4)(nF
21
-2n
162010
(6.22)
0

1

2


3

4

5

6

7

0

1

2

3

4

5

6

7


0


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15



F
10
(n)

F(n)
F
11
(n)

X(k)
X(k)


84
ở đây




3
0
42020
)()(
k
nk
WkfnF (6.23)






3
0
42121
)()(
k
nk
WkfnF (6.24)
Tơng tự

(n)FW (n)F (n)F
23
-2n
162211

(6.25)
(n)FW - (n)F 4)(nF
23
-2n
162211
(6.26)
ở đây




3
0
42222

)()(
k
nk
WkfnF
(6.27)





3
0
42323
)()(
k
nk
WkfnF
(6.28)
và (2k)f (k)f
11
22

1)(2kf (k)f
1123

Biểu thức (6.21), (6.22), (6.25) và (6.26) có thể biểu diễn bằng sơ đồ hình
6.3. Biểu thức (6.23), (6.24), (6.27) và (6.28) có thể tiếp tục chia nhỏ ra nh
các bớc đã làm ở trên nh sau:
(n)FW (n)F (n)F
31

-4n
163020
(6.29)
(n)FW - (n)F 2)(nF
31
-4n
163020
(6.30)
(n)FW (n)F (n)F
33
-4n
163221
(6.31)
(n)FW - (n)F 2)(nF
33
-4n
163221
(6.32)
(n)FW (n)F (n)F
35
-4n
163422
(6.33)
(n)FW - (n)F 2)(nF
35
-4n
163422
(6.34)

×