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

Phương pháp biến đổi Fourier nhanh giải phương trình Parabolic tuyến tính (Luận văn thạc sĩ)

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 (1.55 MB, 43 trang )

ĐẠI HỌC THÁI NGUYÊN
TRƯỜNG ĐẠI HỌC KHOA HỌC
-------------------------------

NGUYỄN THÙY DUNG

PHƯƠNG PHÁP BIẾN ĐỔI FOURIER
NHANH GIẢI PHƯƠNG TRÌNH
PARABOLIC TUYẾN TÍNH

LUẬN VĂN THẠC SĨ TOÁN HỌC

THÁI NGUYÊN - 2019


ĐẠI HỌC THÁI NGUYÊN
TRƯỜNG ĐẠI HỌC KHOA HỌC
-------------------------------

NGUYỄN THÙY DUNG

PHƯƠNG PHÁP BIẾN ĐỔI FOURIER
NHANH GIẢI PHƯƠNG TRÌNH
PARABOLIC TUYẾN TÍNH
Chuyên ngành: Toán ứng dụng
Mã số
: 8 46 01 12

LUẬN VĂN THẠC SĨ TOÁN HỌC

NGƯỜI HƯỚNG DẪN KHOA HỌC


TS. Nguyễn Thị Ngọc Oanh

THÁI NGUYÊN - 2019


1

Mục lục
Trang

Mở đầu

3

Chương 1
1.1.

Giới thiệu về phương pháp Fourier nhanh

5

Biến đổi Fourier . . . . . . . . . . . . . . . . . . . . . . . 5
1.1.1. Tích phân Fourier . . . . . . . . . . . . . . . . . . . 5
1.1.2. Biến đổi Fourier ngược . . . . . . . . . . . . . . . . 7
1.1.3. Sự tồn tại của tích phân Fourier . . . . . . . . . . . 8
1.1.4. Tính chất của biến đổi Fourier . . . . . . . . . . . . 8
1.1.5. Tích chập . . . . . . . . . . . . . . . . . . . . . . . 12

1.2. Hàm tuần hoàn và hàm xung . . . . . . . . . . . . . . . . 14
1.2.1. Hàm tuần hoàn . . . . . . . . . . . . . . . . . . . . 14

1.2.2. Hàm xung . . . . . . . . . . . . . . . . . . . . . . . 16
1.2.3. Mẫu dạng sóng . . . . . . . . . . . . . . . . . . . . 17
1.3. Biến đổi Fourier rời rạc . . . . . . . . . . . . . . . . . . . . 18
1.4. Biến đổi Fourier nhanh . . . . . . . . . . . . . . . . . . . . 20
1.4.1. Công thức ma trận . . . . . . . . . . . . . . . . . . 21
1.4.2. FFT với các ví dụ trực giác . . . . . . . . . . . . . 21
1.4.3. Đồ thị dòng tín hiệu . . . . . . . . . . . . . . . . . 25
1.4.4. Thuật toán FFT . . . . . . . . . . . . . . . . . . . 26
1.4.5. Nhân tử hóa W p . . . . . . . . . . . . . . . . . . . 28


2

Chương 2

Ứng dụng phương pháp Fourier nhanh giải phương

trình parabolic tuyến tính

30

2.1. Công thức sai phân hữu hạn . . . . . . . . . . . . . . . . . 30
2.2. Bài toán giá trị biên ban đầu rời rạc . . . . . . . . . . . . 32
2.3. Ví dụ số minh họa . . . . . . . . . . . . . . . . . . . . . . 34

Kết luận

40

Tài liệu tham khảo


41


3

Mở đầu
Giải tích Fourier đươc đặt theo tên nhà toán học đồng thời là nhà vật
lý học người Pháp Jean Baptiste Joseph Fourier. Khi nghiên cứu sự lan
truyền của nhiệt vào những năm 1800 đã đưa ra ý tưởng về một chuỗi
điều hòa có thể mô tả bất kỳ chuyển động có chu kỳ nào kể cả là giá trị
phức. Biến đổi Fourier là một phương pháp chuyển một tập hữu hạn các
phân bố đều từ miền ban đầu (ví dụ như thời gian, . . . ) thành miền tần
số. Khái niệm toán học của biến đổi Fourier được áp dụng cho cả tập
vô hạn các số phức và liên quan tới tính tích phân. Khái niệm biến đổi
Fourier liên tục có nhiều ứng dụng trong vật lý và kỹ thuật. Tuy nhiên
khi tính toán số thì ta cần biến đổi Fourier dạng rời rạc. Từ những ứng
dụng của biến đổi Fourier dạng rời rạc này trong khoa học tính toán
đã dẫn tới sự ra đời của phương pháp Fourier nhanh (FFT) vào năm
1965 bởi nghiên cứu của hai nhà toán học James Cooley và John Tukey.
Biến đổi Fourier nhanh là một công cụ hữu hiệu để tính các biến đổi
Fourier rời rạc và Fourier rời rạc ngược. Biến đổi FFT có rất nhiều ứng
dụng trong các lĩnh vực khác nhau đặc biệt trong lĩnh vực xử lý tín hiệu
số. Bên cạnh đó thì FFT cũng có ứng dụng không nhỏ trong việc tìm
nghiệm số của phương trình đạo hàm riêng.
Luận văn được chia làm 2 chương.
Nội dung của Chương 1 trình bày các kiến thức cơ bản liên quan tới
biến đổi FFT như: Biến đổi Fourier, hàm tuần hoàn, hàm xung, biến
đổi Fourier dạng rời rạc và trình bày biến đổi FFT thông qua ví dụ trực
giác.



4

Chương 2 trình bày một ứng dụng của biến đổi FFT trong việc tìm
nghiệm số của phương trình truyền nhiệt tuyến tính hai chiều. Cũng
trong chương này có trình bày một vài ví dụ số minh họa cho tính hữu
hiệu của thuật toán đề xuất.
Luận văn này được hoàn thành với sự hướng dẫn và chỉ bảo tận tình
của TS. Nguyễn Thị Ngọc Oanh tự đáy lòng mình, em xin được bày tỏ
lòng biết ơn sâu sắc đối với sự quan tâm, động viên và sự chỉ bảo hướng
dẫn của cô.
Em xin gửi lời cảm ơn tới các thầy cô trong trường Đại học Khoa học
- Đại học Thái Nguyên, nhất là các thầy cô trong Khoa Toán - Tin, đã
tận tình giảng dạy tạo điều kiện cho em trong suốt quá trình học tập tại
trường. Đồng thời tôi xin gửi lời cảm ơn tới tập thể lớp Cao học Toán
K11 trường Đại học Khoa học đã giúp đỡ tôi trong quá trình hoc tập
tại trường.
Em xin trân thành cảm ơn!
Thái Nguyên, tháng 4 năm 2019
Tác giả

Nguyễn Thùy Dung


5

Chương 1

Giới thiệu về phương pháp Fourier

nhanh
Trong chương này trình bày một số kiến thức cần thiết liên quan tới
phương pháp biến đổi Fourier như tích phân Fourier, biến đổi Fourier
ngược, biến đổi Fourier ngược rời rạc, mối liên hệ giữa biến đổi Fourier
liên tục và rời rạc,. . . . Nội dung của Chương 1 được viết dựa vào một
phần nội dung của tài liệu [1, 2].

1.1.

Biến đổi Fourier

1.1.1.

Tích phân Fourier

Tích phân Fourier được xác định bởi biểu thức


h(t)e−i2πf t dt.

H(f ) =

(1.1)

−∞

Nếu tích phân tồn tại cho mọi giá trị của tham số f thì công thức (1.1)
định nghĩa biến đổi Fourier H(f ) của h(t). Thông thường h(t) là hàm
của biến thời gian và H(f ) được gọi là hàm của tần số. Ta sẽ sử dụng
ký hiệu t là thời gian và f là tần số trong luận văn này. Hơn nữa, chữ

thường sẽ biểu thị cho hàm thời gian; biến đổi Fourier của hàm thời gian
này sẽ được biểu thị bằng chữ cái in hoa.


6

Nói chung, biến đổi Fourier là một đại lượng phức:
H(f ) = R(f ) + jI(f ) = |H(f )|eiθ(f )

(1.2)

trong đó R(f ) là phần thực, I(f ) là phần ảo của biến đổi Fourier; |H(f )|
là độ lớn hoặc phổ Fourier của h(t) và được cho bởi

R2 (f ) + I 2 (f );

θ(f ) là góc pha của biến đổi Fourier và được cho bởi tan−1 [I(f )/R(f )].
Ví dụ 1.1 Cho hàm

1,
h(t) =
0,

−T ≤ t ≤ T,
|t| > T.

Khi đó biến đổi Fourier của h(t) được cho bởi
T

e−if t = −


H(f ) =
−T

1 −if T
e
− eif T dt
if

2 sin f T
=
.
f
Ví dụ 1.2 Để minh họa sự biến thiên các phần tử trong biến đổi Fourier,
ta xét hàm của biến thời gian t

βe−αt ,
h(t) =
0,

t > 0,
t < 0.

Theo công thức (1.1) ta có


H(f ) =




βe
0

−αt −jf t

e

e−(α+jf )t dt


0

β
−β −(α+jf )t ∞
=
e
|0 =
α + jf
α + jf
βα

= 2

j
α + f2
α2 + f 2
β
−1
=
ej tan [f /α] .

α2 + f 2


7

Khi đó
βα
,
+ f2

I(f ) = 2
,
α + f2
β
,
|H(f )| =
α2 + f 2
f
θ(f ) = tan−1
.
α
Ta có minh họa như hình dưới đây
R(f ) =

α2

Hình 1.1: Phần thực, phần ảo, độ lớn và góc pha trong biến đổi Fourier

1.1.2.


Biến đổi Fourier ngược

Biến đổi Fourier ngược được định nghĩa như sau


H(f )ei2πf t df

h(t) =
−∞

(1.3)


8

Phép biến đổi Fourier ngược (1.3) cho phép xác định hàm thời gian từ
phép biến đổi Fourier của nó. Nếu các hàm h(t) và H(f ) được xác định
từ công thức (1.1) và (1.3) thì chúng được gọi là cặp biến đổi Fourier
và ta sử dụng ký hiệu dưới đây để xác định mối quan hệ này
h(t) ⇔ H(f ).
1.1.3.

(1.4)

Sự tồn tại của tích phân Fourier

Định lý 1.1 Nếu h(t) khả tích theo nghĩa


|h(t)|dt < ∞


(1.5)

−∞

thì biến đổi Fourier H(f ) tồn tại và thỏa mãn biến đổi Fourier ngược
(1.3).
Chú ý rằng Định lý 1.1 là điều kiện đủ không phải điều kiện cần cho sự
tồn tại của biến đổi Fourier. Có các hàm không thỏa mãn Định lý 1.1
nhưng có biến đổi thỏa mãn điều kiện (1.3), các hàm dạng này được cho
trong định lý dưới đây.
Định lý 1.2 Nếu hàm h(t) = β(t) sin(2πf t + α) (trong đó f và α là
hằng số bất kỳ), nếu β(t + k) < β(t) và nếu với |t| > λ > 0 hàm h(t)/t
khả tích tuyệt đối theo nghĩa (1.5) thì H(f ) tồn tại và thỏa mãn biến
đổi Fourier ngược (1.3).
1.1.4.

Tính chất của biến đổi Fourier

Tính chất 1. Tính tuyến tính Nếu x(t) và y(t) có các biến đổi
Fourier tương ứng là X(f ) và Y (f ) thì tổng x(t) + y(t) có biến đổi
Fourier là X(f ) + Y (f ).
Chứng minh. Thật vậy, ta có




[x(t) + y(t)]e
−∞


−i2πf t

dt =



x(t)e

−i2πf t

−∞

= X(f ) + Y (f ).

y(t)e−i2πf t dt

dt +
−∞


9

Khi đó có cặp biến đổi Fourier sau
x(t) + y(t) ⇔ X(f ) + Y (f ).
Tính chất 2. Tính đối xứng
Nếu h(t) ⇔ H(f ) thì H(t) ⇔ h(−f ).
Chứng minh. Thật vậy, từ công thức (1.3) ta có


H(f )e−i2πf t df.


h(−t) =
−∞

Đổi biến f bởi t từ công thức trên ta nhận được


H(t)e−i2πf t dt.

h(−f ) =
−∞

Tính chất 3. Nhân với thời gian
1 f
Nếu h(t) ⇔ H(f ) thì h(kt) ⇔ H( ), với k > 0.
k k
Chứng minh. Đặt t = kt, ta có




h(kt)e

−i2πf t

−∞

h(t )e−i2πf (t /k) d(t /k)

dt =

−∞

1 ∞
h(t )e−i2π(f /k)t dt
k −∞
1 f
= H( ).
k k
=

Như vậy với k > 0 ta có
1 f
h(kt) ⇔ H( ).
k k
Tính chất 4. Nhân với tần số
1
Nếu h(t) ⇔ H(f ) thì h(t/k) ⇔ H(kf ).
k
Chứng minh. Sử dụng công thức biến đổi Fourier ngược và đặt f = kf
ta có




H(kf )e
−∞

i2πf t

H(f )ei2π(f /k)t df /k


df =
−∞

1 ∞
=
H(f )ei2πf (t/k) df /k
k −∞
1 t
= h( ).
k k


10

Tính chất 5. Dịch chuyển theo thời gian Với t0 là hằng số,
1

nếu h(t) ⇔ H(f ) thì h(t − t0 ) ⇔ H(f )e−i2πf t0 .
k
Chứng minh. Sử dụng công thức biến đổi Fourier và đặt s = t − t0 ta




−i2πf t

h(t − t0 )e

h(s)e−i2πf (s+t0 ) ds


dt =
−∞

−∞



h(s)e−i2πf s ds

= e−i2πf t0
−∞
−i2πf t0

=e

H(f ).

Tính chất 6. Dịch chuyển tần số
Với f0 là hằng số,
nếu h(t) ⇔ H(f ) thì ei2πtf0 h(t) ⇔ H(f − f0 ).
Chứng minh. Sử dụng công thức biến đổi Fourier ngược và đặt s =
f − f0 ta có




H(f − f0 )e

i2πf t


H(s)ei2πt(s+f0 ) ds

df =

−∞

−∞

=e



i2πtf0

H(s)ei2πf s ds
−∞

= ei2πf f0 h(t).
Tính chất 7. Công thức biến đổi Fourier ngược
Công thức biến đổi Fourier ngược (1.3) có thể được viết lại dưới dạng


H ∗ (f )e−i2πf t df

h(t) =



−∞


trong đó H ∗ (f ) là liên hợp của H(f ), tức là nếu H(f ) = R(f ) + iI(f )
thì H ∗ (f ) = R(f ) − iI(f ).


11

Chứng minh. Ta có



−i2πf t

H (f )e





df

=

−∞



R(f )e

−i2πf t


I(f )e−i2πf t df

df − i

−∞




−∞

[R(f ) cos(2πf t) − I(f ) sin(2πf t)]df

=
−∞


−i



[R(f ) sin(2πf t) + I(f ) cos(2πf t)]df
−∞


[R(f ) cos(2πf t) − I(f ) sin(2πf t)]df

=
−∞



−i



[R(f ) sin(2πf t) + I(f ) cos(2πf t)]df
−∞


[R(f ) cos(2πf t) − I(f ) sin(2πf t)]df

=
−∞


[R(f ) sin(2πf t) + I(f ) cos(2πf t)]df

+i
−∞


[R(f ) + iI(f )][cos(2πf t) sin(2πf t)]df

=
−∞


H(f )ei2πf t df.


=
−∞

Tính chất 8. Biến đổi Fourier của hàm chẵn
Nếu he (t) là hàm chẵn, tức là he (t) = he (−t) thì biến đổi Fourier cũng
là một hàm chẵn và ta có


he (t) ⇔ Re (f ) =

he (t) cos(2πf t)dt.
−∞

Chứng minh. Ta có


he (t)e−i2πf t dt

H(f ) =
−∞




he (t) cos(2πf t)dt − i

=
−∞



=

he (t) sin(2πf t)dt
−∞

he (t) cos(2πf t)dt = Re (f ).
−∞

Dễ thấy Re (f ) là hàm chẵn.
Tính chất 9. Biến đổi Fourier của hàm lẻ
Nếu ho (t) là hàm lẻ, tức là ho (t) = −ho (−t) thì biến đổi Fourier cũng


12

là một hàm lẻ và ta có


ho (t) ⇔ Io (f ) = −i

ho (t) sin(2πf t)dt.
−∞

Chứng minh. Ta có


ho (t)e−i2πf t dt

H(f ) =
−∞





ho (t) cos(2πf t)dt − i

=
−∞



= −i

ho (t) sin(2πf t)dt
−∞

ho (t) sin(2πf t)dt = −iIo (f ).
−∞

Dễ thấy Io (f ) là hàm lẻ.
Tính chất 10. Biến đổi Fourier của hàm phức
Nếu h(t) = hr (t) + ihi (t) thì ta có
ho (t) ⇔ H(f ) = R(f ) + iI(f )
với


[hr (t) cos(2πf t) + hi (t) sin(2πf t)]dt,

R(f ) =
−∞




[hr (t) sin(2πf t) − hi (t) cos(2πf t)]dt.

I(f ) = −
−∞

Chứng minh. Ta có


[hr (t) + ihi (t)]e−i2πf t dt

H(f ) =
−∞


=

[hr (t) cos(2πf t) + hi (t) sin(2πf t)]dt
−∞


−i

[hr (t) sin(2πf t) − hi (t) cos(2πf t)]dt
−∞

= R(f ) + iI(f ).
1.1.5.


Tích chập

Định nghĩa 1.1 Tích chập y(t) của hai hàm x(t) và h(t) được ký hiệu
bởi x(t) ∗ y(t) và được cho bởi công thức sau đây


x(τ )h(t − τ )dτ.

y(t) =
−∞

(1.6)


13

Chú ý công thức (1.6) có thể thay bằng công thức


h(τ )x(t − τ )dτ.

y(t) =

(1.7)

−∞

Ví dụ 1.3 Cho hàm


e−t , t ≥ 0
h(t) =
0, t < 0


sin t, 0 ≤ t ≤
và x(t) =
0, ngược lại

π
2

Khi đó nếu sử dụng công thức (1.6) ta nhận được


x(τ )h(t − τ )dτ

y(t) =
−∞






t
−(t−τ )
,
0 sin(τ )e


t≤

π
2

π
2

−(t−τ )
, t ≥ π2
0 sin(τ )e




0, t ≤ 0



0, t ≤ 0



= 21 (sin t − cos t + e−t ), t ≤




 e−t (1 + eπ/2 ), t ≥ π .
2

2

=

π
2

Ta có định lý dưới đây về tích chập.
Định lý 1.3 Nếu H(f ), X(f ) tương ứng là các biến đổi Fourier của
h(t), x(t) thì tích chập y(t) = h(t)∗x(t) có biến đổi Fourier là H(f )X(f ),
tức là ta có cặp biến đổi Fourier
h(t) ∗ x(t) ⇔ H(f )X(f ).

(1.8)

Chứng minh. Từ công thức (1.1), ta có


Y (f ) =



y(t)e
−∞


=

−i2πf t



x(τ )h(t − τ )dτ e−i2πf t dt

dt =
−∞

−∞

h(t − τ )e−i2πf t dt dτ.

x(τ )
−∞



−∞


14

Sử dụng công thức đổi biến σ = t − τ ta nhận được




h(t − τ )e

−i2πf t

h(σ)e−i2πf (σ+τ ) dσ


dt =

−∞

−∞

= e−i2πf τ H(f ).
Do đó


x(τ )e−i2πf τ H(f )dτ = H(f )X(f ).

Y (f ) =
−∞

1.2.
1.2.1.

Hàm tuần hoàn và hàm xung
Hàm tuần hoàn

Định nghĩa 1.2 Chuỗi Fourier của hàm tuần hoàn y(t) với chu kỳ T0
được cho bởi công thức


a0
y(t) =
+
[an cos(2πnt/T0 ) + bn sin(2πnt/T0 )].

2
n=1

(1.9)

Các hệ số an , bn được cho bởi công thức
2
an =
T0
bn =

2
T0

T0 /2

y(t) cos(2πnt/T0 )dt, n = 0, 1, 2, . . .

(1.10)

y(t) sin(2πnt/T0 )dt, n = 1, 2, 3, . . . .

(1.11)

−T0 /2
T0 /2
−T0 /2

Bằng việc sử dụng công thức
1

cos(2πnt/T0 )dt = (ei2πnt/T0 + e−i2πnt/T0 )
2
1
sin(2πnt/T0 )dt = (ei2πnt/T0 − e−i2πnt/T0 )
2i
biểu diễn (1.9) có thể được viết lại như sau
a0 1
y(t) =
+
2
2


i2πnt/T0

(an − ibn )e
n=1

1
+
2



(an + ibn )e−i2πnt/T0 . (1.12)
n=1

Để đơn giản kí hiệu, với những giá trị n âm, từ công thức (1.10) và



15

(1.11), ta có
a−n

2
=
T0
=

2
T0

T0 /2

y(t) cos(−2πnt/T0 )dt
−T0 /2
T0 /2

y(t) cos(2πnt/T0 )dt
−T0 /2

= an , n = 1, 2, 3, . . . .

b−n

2
=
T0
=−


2
T0

T0 /2

y(t) sin(−2πnt/T0 )dt
−T0 /2
T0 /2

y(t) sin(2πnt/T0 )dt
−T0 /2

= −bn , n = 1, 2, 3, . . . .
Do đó


n=−1

an e

−i2πnt/T0

an ei2πnt/T0

(1.13)

ibn ei2πnt/T0 .

(1.14)


=

n=1


−∞
n=−1

ibn e−i2πnt/T0 = −
−∞

n=1

Thay biểu diễn (1.13) và (1.14) vào công thức (1.12) ta nhận được chuỗi
Fourier dạng mũ như sau




a0 1
y(t) =
+
(an − ibn )ei2πnt/T0 =
αn ei2πnt/T0
2
2 n=−∞
n=−∞

(1.15)


trong đó

a0 /2, n = 0,
αn =
1/2(a − ib ), n = ±1, ±2, . . . .
n
n
1
=
T0

T0 /2

y(t)e−i2πnt/T0 dt, n = 0, ±1, ±2, . . . .

(1.16)

−T0 /2

Ví dụ 1.4 Xác định chuỗi Fourier của hàm tuần hoàn tam giác được
cho như hình dưới đây


16

Hình 1.2: Hàm tuần hoàn tam giác

Vì hàm y(t) là hàm chẵn, theo công thức (1.16) ta có
1 T0 /2

y(t) cos(i2πnt/T0 )dt
αn =
T0 −T0 /2


0
1

( T20 + T42 t) cos(i2πnt/T0 )dt +


−T
/2
T
0
0
0

=
n = 0, 1, 3, 5, . . .




0, n = 2, 4, , 6, . . . .


1

, n=0



T
 0
= π24T n12 , n = 1, 3, 5, . . .
0




0, n = 2, 4, , 6, . . . .

1
T0

T0 /2 2
( T0
0



4
t) cos(i2πnt/T0 )dt
T02

Do đó
y(t) =
1.2.2.

1

8
1
1
+ 2
cos(2πt/T0 )+ 2 cos(6πt/T0 )++ 2 cos(10πt/T0 )+. . . .
T0 π T0
3
5
Hàm xung

Định nghĩa 1.3 (Hàm xung) Hàm xung (hay còn gọi là hàm δ) được
định nghĩa như sau
δ(t − t0 ) = 0, ∀t = t0

(1.17)



δ(t − t0 )dt = 1.


−∞

(1.18)


17

Hàm xung có một số tính chất sau đây:
Tính chất 1.




δ(t)φ(t)dt = φ(0).

(1.19)

δ(t − t0 )φ(t)dt = φ(t0 ).

(1.20)

−∞

Tính chất 2.


−∞

Tính chất 3.


δ(at)φ(t)dt =
−∞

1
|a|



δ(t)φ(t/a)dt.


(1.21)

−∞

Tính chất 4. Tích của hàm δ với một hàm thông thường h(t) được cho
bởi công thức sau đây




δ(t)[h(t)φ(t)]dt.

[δ(t)h(t)]φ(t)dt =

(1.22)

−∞

−∞

Nếu h(t) liên tục tại t = t0 thì
δ(t0 )h(t) = h(t0 )δ(t0 ).
1.2.3.

(1.23)

Mẫu dạng sóng

Tiếp theo ta sẽ định nghĩa một mẫu dạng sóng như sau.

Định nghĩa 1.4 (Mẫu dạng sóng) Nếu hàm h(t) là liên tục tại t =
T , khi đó một mẫu của h(t) tại thời điểm T được cho bởi
ˆ = h(t)δ(t − T ) = h(T )δ(t − T )
h(t)

(1.24)

trong đó tích được hiểu theo (1.23). Hàm xung xảy ra tại thời điểm T sẽ
có biên độ bằng hàm h(t) tại thời điểm T . Nếu h(t) liên tục tại t = nT
với n = 0, ±1, ±2, . . . , khi đó


ˆ =
h(t)

h(nT )δ(t − nT )
n=−∞

được gọi là mẫu dạng sóng h(t) với mẫu trong khoảng T .

(1.25)


18

1.3.

Biến đổi Fourier rời rạc

Để rời rạc cặp biến đổi Fourier, trước tiên ta tạo mẫu dạng sóng h(t)

(ta cũng có thể sử dụng kí hiệu h(t)∆0 t trong đó ∆0 t là miền thời gian).
Giả sử khoảng mẫu là T , ta viết lại phương trình (1.25) dưới dạng


h(kT )∆(t − kT ).

h(t)∆0 t =

(1.26)

k=−∞

Tiếp theo ta nhân hàm mẫu với hàm hình chữ nhật có dạng

1, T < t < T0 − T
2
2
x(t) =
0, nếu ngược lại
trong đó T0 là khoảng thời gian của hàm chặt cụt. Ta có


h(kT )δ(t − kT ) x(t)

h(t)∆0 tx(t) =
k=−∞
N −1

h(kT )δ(t − kT )


=

(1.27)

k=0

trong đó ta giả thiết rằng có N khoảng bằng nhau mà hàm xung nằm
trong khoảng hàm chặt cụt, tức là N = T0 /T .
Cuối cùng, ta tạo mẫu của biến đổi Fourier của (1.27). Trong miền
thời gian, tích này bằng với tích chập của hàm mẫu dạng sóng hàm chặt
cụt với hàm ∆1 (t) cho bởi


δ(t − rT0 ).

∆1 (t) = T0
r=−∞

(1.28)


19

Tích chập này được cho như sau
N −1

˜ = [h(t)∆0 tx(t)] ∗ ∆1 (t) = q
h(t)




h(kT )δ(t − kT ) ∗ T0
r=−∞

k=0
N −1

= ··· +

δ(t − rT0 )

h(kT )δ(t + T0 − kT )

k=0
N −1

h(kT )δ(t − kT )

+ T0
k=0
N −1

h(kT )δ(t − T0 − kT ) + . . .

+
k=0



N −1


h(kT )δ(t − kT − rT0 ) .

= T0
r=−∞

k=0

(1.29)
Để rời rạc biến đổi Fourier (1.29), ta chú ý rằng biến đổi Fourier của
một hàm tuần hoàn h(t) là một chuỗi các hàm xung cách đều


n
˜ n =
αn δ(f − )
H(
T0 n=−∞
T0

(1.30)

trong đó
αn =

T0 −T /2

1
T0


−i2πnt/T0
˜
dt, n = 0, ±1, ±2, . . . .
h(t)e

(1.31)

−T /2

Thay công thức (1.29) vào công thức (1.31) ta nhận được
1
αn =
T0



T0 −T /2

h(kT )δ(t − kT − rT0 )e−i2πnt/T0 dt

T0
−T /2

r=−∞ k=0

T0 −T /2 N −1

=
−T /2


h(kT )δ(t − kT )e−i2πnt/T0 dt

k=0

N −1

=

T0 −T /2

h(kT )
k=0
N −1

N −1

e−i2πnt/T0 δ(t − kT )dt

−T /2

h(kT )e−i2πknT /T0 .

=
k=0

(1.32)


20


Vì T0 = N T nên phương trình (1.32) được viết lại dưới dạng
N −1

h(kT )e−i2πkn/N , n = 0, ±1, ±2, . . . .

αn =

(1.33)

k=0

Khi đó biến đổi Fourier của (1.29) có dạng


˜ n )=
H(
NT
r=−∞

N −1

h(kT )e−i2πkn/N .

(1.34)

k=0

Cho n = r với r là số nguyên bất kỳ, phương trình (1.34) trở thành
˜ r )=
H(

NT

N −1

h(kT )e−i2πkr/N .

(1.35)

k=0

Tiếp theo đặt n = r + N, chú ý rằng
e−i2πk(r+N )/N = e−i2πkr/N e−i2πk = e−i2πkr/N .
Do đó
˜ r +N) =
H(
NT

N −1

h(kT )e−i2πk(r+N )/N
k=0
N −1

=
k=0

˜ r ).
h(kT )e−i2πkr/N = H(
NT


Do đó ta có
˜ n )=
H(
NT

N −1

h(kT )e−i2πnk/N , n = 0, 1, . . . , N − 1.

(1.36)

k=0

Công thức (1.36) được gọi là biến đổi Fourier rời rạc.

1.4.

Biến đổi Fourier nhanh

Trong phần này, luận văn trình bày một ví dụ để minh họa thuật
toán Fourier nhanh (FFT) bằng trực giác. Các ma trận nhân tử được
thay thế bởi đồ thị dòng tín hiệu. Từ đồ thị này, ta sẽ xây dựng tính
logic của thuật toán FFT.


21

1.4.1.

Công thức ma trận


Xét biến đổi Fourier rời rạc (1.36), để cho tiện ta thay kT bởi k và
n
NT

bởi n
N −1

x0 (k)e−i2πnk/N , n = 0, 1, . . . , N − 1.

X(n) =

(1.37)

k=0

Ta chú ý rằng phương trình (1.37) biểu thị N phương trình. Ví dụ với
n = 3, đặt
W nk = e−i2πnk/N
khi đó phương trình (1.37) được viết lại như sau
X(0) = x0 (0)W 0 + x0 (1)W 0 + x0 (2)W 0 + x0 (3)W 0
X(1) = x0 (0)W 0 + x0 (1)W 1 + x0 (2)W 2 + x0 (3)W 3
X(2) = x0 (0)W 0 + x0 (1)W 2 + x0 (2)W 4 + x0 (3)W 6
X(3) = x0 (0)W 0 + x0 (1)W 3 + x0 (2)W 6 + x0 (3)W 9 .
Hay


 
X(0)
W0


 
X(1) W 0

 

=
X(2) W 0

 
X(3)
W0

W

0

W

0

W1 W2
W2 W4
W3 W6




W
x (0)

 0 


W 3
 x0 (1)


x0 (2)
W 6


9
W
x0 (3)
0

(1.38)

hoặc
X(n) = W nk x0 (k).
1.4.2.

(1.39)

FFT với các ví dụ trực giác

Để minh họa thuật toán Fourier nhanh (FFT), ta chọn số điểm mẫu
của x0 (k) theo quan hệ N = 2γ , trong đó γ là một số nguyên. Như trong
minh họa trên thì N = 4 = 22 . Ta sẽ minh họa cách áp dụng phương
pháp FFT để tính toán (1.38) như sau:



22

Trước tiên ta viết lại (1.38)

 
X(0)
1

 
X(1) 1

 

=
X(2) 1

 
X(3)
1

dưới dạng sau


1
1
1
x (0)
 0 



W 1 W 2 W 3
 x0 (1)

.
x0 (2)
W 2 W 0 W 2


3
2
1
W W W
x0 (3)

(1.40)

Ma trận (1.40) được suy ra từ (1.38) bằng việc sử dụng W nk = W nk

mod N

Thật vậy, ta sẽ chứng minh với N = 4, n = 2, k = 3 thì W 6 = W 2 , những
đẳng thức khác được chứng minh hoàn toàn tương tự.
W6 = e

−i2π6
4

= e−i3π = e−iπ = e


−i2π2
4

= W2 = W6

mod 4

.

(1.41)

Bước tiếp theo ta biến đổi ma trận vuông trong công thức (1.40) dưới
dạng sau

 
X(0)
1 W0

 
X(2) 1 W 2

 

=
X(1) 0 0

 
X(3)
0 0


0

0



0

1 0 W


0 0 
 0 1 0

2

1 W 1
 1 0 W
1 W3

0 1

0



0
x (0)
 0 



W 0
 x0 (1)

.
x0 (2)
0 


2
W
x0 (3)

(1.42)

Ta chú ý rằng, tích hai ma trận vuông trong công thức (1.42) cho ta ma
trận vuông trong công thức (1.42) ngoại trừ việc đổi dòng 1 và dòng 2
(các dòng được đánh số 0, 1, 2, 3). Đặt


X(0)


X(2)


¯
X(n)
=


X(1)


X(3)




 
x (0)
1
 1  
x (1) 0
 1  

=
x1 (2) 1

 
x1 (3)
0

0 W
1

0

0


0 W2
1

0



0
x (0)
 0 


W 0
 x0 (1)

.
x0 (2)
0 


2
W
x0 (3)

(1.43)

(1.44)

.



23

Ta thấy rằng, phần tử x1 (0) được tính bởi một phép nhân phức và một
phép cộng phức
x1 (0) = x0 (0) + W 0 x0 (2).

(1.45)

Phần tử x1 (1) cũng được tính bởi một phép nhân phức và một phép cộng,
tuy nhiên tới phần tử x1 (2) chỉ cần tới phép cộng bởi vì W 0 = −W 2
nên
x1 (2) = x0 (0) + W 2 x0 (2) = x0 (0) − W 0 x0 (2)

(1.46)

trong đó W 0 x0 (2) đã được tính từ công thức tính x1 (0). Tương tự như
vậy để tính x1 (3) ta chỉ cần tới một phép cộng phức và không cần tới
phép nhân. Như vậy véc tơ trung gian x1 (k) được tính bởi 4 phép nhân
và 2 phép cộng.
Ta tiếp tục tính toán công thức

 
 
X(0)
x (0)
1

  2  
X(1) x (1) 1


  2  

=
=
X(2) x2 (2) 0

 
 
X(3)
x2 (3)
0

(1.40). Đặt
W

0

0

W2 0
0

1

0

1




0
x (0)
 1 


0 
 x1 (1)

.
x1 (2)
W 1


3
W
x1 (3)

(1.47)

Ta thấy rằng, phần tử x2 (0) được tính bởi một phép nhân phức và một
phép cộng
x2 (0) = x1 (0) + W 0 x1 (1).

(1.48)

Phần tử x2 (1) cũng được tính bởi một phép cộng (để có điều này ta cần
chú ý W 0 = −W 2 ). Tương tự x2 (2) được xác định bởi một phép nhân
và một phép cộng và x2 (3) được xác định chỉ bởi một phép cộng.
¯

Như vậy để tính X(n)
theo công thức (1.42) yêu cầu ta tính một tổng
của 4 phép nhân và 8 phép cộng. Trong khi đó nếu tính toán X(n) từ
công thức (1.38) cần 16 phép nhân và 12 phép cộng. Ta chú ý rằng quá
trình nhân tử hóa đã giảm số phép nhân.
Với N = 2γ , thuật toán FFT là quá trình nhân tử hóa N × N ma trận
thành γ ma trận sao cho các ma trận được nhân tử hóa có tính chất
đặc biệt đó là cực tiểu hóa số phép nhân và phép cộng. Ta chú ý rằng,


×