Trong toán học, biến đổi Fourier rời rạc còn đượcgọi là phép biến đổi Fourier hữu hạn, là một biến đổi trong giải tích Fourier vớicác tín hiệu trong thời gian rời rạc.. Nó là công cụ lý
Trang 1ĐẠI HỌC ĐÀ NẴNG
NGUYỄN THỊ THU THỦY
BIẾN ĐỔI FOURIER RỜI RẠC, FOURIER NHANH VÀ ỨNG DỤNG
Chuyên ngành: Phương pháp Toán sơ cấp
Mã số: 60.46.40
TÓM TẮT LUẬN VĂN THẠC SĨ KHOA HỌC
Đà Nẵng - Năm 2015
Trang 2Công trình được hoàn thành tại
ĐẠI HỌC ĐÀ NẴNG
Người hướng dẫn khoa học: TS Phan Đức Tuấn
Phản biện 1: TS Lê Hải Trung
Phản biện 2: PGS TS Huỳnh Thế Phùng
Luận văn đã được bảo vệ trước Hội đồng chấm Luận văn tốt nghiệp thạc sĩ Khoa học họp tại Đại học Đà Nẵng vào ngày
11 tháng 01 năm 2015
Có thể tìm hiểu luận văn tại:
- Trung tâm Thông tin - Học liệu, Đại học Đà Nẵng
- Trung tâm Học liệu, Đại học Đà Nẵng
Trang 3MỞ ĐẦU
1 Tính cấp thiết của đề tài
Nhiều vấn đề trong khoa học và công nghệ đưa đến việc giải phương trình
vi phân hay phương trình đạo hàm riêng Những bài toán về tính độ lệch đứngcủa dầm, các dao động của dây, sóng âm, sóng tạo ra do thủy triều, sóng đànhồi, sóng điện trường và tìm phương trình đường đi cho các phương trình sóng.Vấn đề đặt ra ở đây là tìm lời giải cho các bài toán đó Có nhiều phương phápkhác nhau để giải quyết vấn đề, trong số đó không thể không nói đến vai trò đặcbiệt quan trọng của phép biến đổi Fourier
Một khái niệm không kém tầm quan trọng của phép biến đổi Fourier là biếnđổi Fourier rời rạc (DFT) Trong toán học, biến đổi Fourier rời rạc còn đượcgọi là phép biến đổi Fourier hữu hạn, là một biến đổi trong giải tích Fourier vớicác tín hiệu trong thời gian rời rạc Nó là công cụ lý tưởng để xử lý thông tin vàđược sử dụng rộng rãi trong xử lý tín hiệu và các ngành liên quan đến phân tíchtần số, tìm hình dạng đi lý tưởng cho phương trình truyền sóng, các bài toán sơcấp, ma trận và các phép toán như tích chập
Việc ứng dụng hiệu quả biến đổi Fourier rời rạc trong thực tế đặc biệt làviệc phân tích phổ như trong các ngành xử lý tín hiệu tiếng nói, địa chất, vật lý,
y tế, sóng âm, các bài toán về ma trận,phép nhân đa thức người ta đã quantâm đến việc rút ngắn thời gian và độ phức tạp tính toán Năm 1965, Cooley vàTukey đã tìm ra thuật toán tính các biến đổi Fourier rời rạc nhanh chóng và hiệuquả hơn được gọi là biến đổi Fourier nhanh (FFT) Biến đổi Fourier nhanh làthuật toán cho phép tính DFT nhanh chóng bằng cách giảm độ phức tạp và thờigian tính toán Kể từ khi ra đời, biến đổi FFT đã tạo ra một bước ngoặc lớn vàthực sự đóng một vai trò hết sức quan trọng trong việc xử lý tín hiệu, các bàitoán ma trận và bài toán sơ cấp
2 Mục tiêu nghiên cứu
Mục tiêu của đề tài là nhằm giúp người đọc hiểu đúng bản chất của biến đổi
Trang 4Fourier rời rạc, hiệu quả của biến đổi Fourier rời rạc và thuật toán FFT của nó.Qua đó có thể áp dụng để tìm lời giải cho một số bài toán sơ cấp, những bàitoán liên quan đến ma trận và phương trình truyền sóng Một số điểm cố gắngđưa vào trong luận văn là:
- Một số định nghĩa liên quan đến biến đổi DFT, chứng minh chặt chẽ cácđịnh lí liên quan
- Làm rõ tính hiệu quả của biến đổi nhanh FFT, đi sâu một số thuật toán cụthể
- Đưa nhiều ví dụ và bài tập áp dụng để làm nổi bật tính hiệu quả, tính nhanhchóng của biến đổi DFT và FFT
3 Đối tượng và phạm vi nghiên cứu
Đối tượng nghiên cứu của đề tài là phép biến đổi Fourier Phạm vi nghiêncứu của đề tài là biến đổi Fourier rời rạc, Fourier nhanh và ứng dụng
4 Phương pháp nghiên cứu
Thu thập các bài báo khoa học và tài liệu của các tác giả nghiên cứu liênquan đến biến đổi DFT, vấn đề quan trọng trong khi áp dụng biến đổi DFT vàFFT vào giải toán
Tham gia các buổi seminar của thầy hướng dẫn để trao đổi các kết quả đangnghiên cứu Trao đổi qua email, blog, forum với các chuyên gia về các ứng dụngcủa biến đổi DFT và FFT trong giải toán
5 Bố cục của đề tài
Luận văn gồm phần mở đầu, hai chương, kết luận và phụ lục
Chương 1 trình bày một số tích chất cơ bản của biến đổi Fourier rời rạc,Fourier nhanh
Chương 2 đưa ra một số ứng dụng cơ bản của biến đổi Fourier rời rạc vàbiến đổi Fourier nhanh
6 Tổng quan tài liệu nghiên cứu
Luận văn đã tham khảo một số tài liệu khoa học tiếng Việt và tiếng Anh vềbiến đổi Fourier đặc biệt là biến đổi Fourier rời rạc và Fourier nhanh Hiện tạitrong và ngoài nước đã có các công trình nghiên cứu về biến đổi Fourier rời rạc,biến đổi Fourier nhanh và các ứng dụng thực tế hữu ích của chúng
Tuy nhiên các công trình khoa học vẫn chưa tổng hợp được nhiều các ứng
Trang 5dụng của biến đổi Fourier rời rạc, biến đổi Fourier nhanh trong sơ cấp và trongthực tế hoặc có nhưng vẫn còn hạn chế.
Vì vậy việc nghiên cứu, tổng hợp các ứng dụng của phép biến đổi Fourierrời rạc, Fourier nhanh một cách rõ ràng, hệ thống là cần thiết Kết quả nghiêncứu của đề tài sẽ giúp người học toán dễ dàng hơn trong việc hình dung tínhhữu ích của phép biến đổi Fourier trong toán học cũng như trong thực tiễn
Trang 6CHƯƠNG 1 KIẾN THỨC CHUẨN BỊ
1.1.1 Định nghĩa
Định nghĩa 1.1.1 Cho dãy x(n), n = 0, 1, , N − 1 Khi đó biến đổi Fourier
rời rạc của dãy x(n), viết tắt là DFT được xác định bởi công thức:
X(k) =
N−1
∑n=0
x(n)WNkn, k= 0, 1, , N − 1 (1.1)Biến đổi Fourier rời rạc ngược viết tắt là IDFT được xác định bởi công thức:
x(n) = 1
N
N−1
∑k=0
Trang 7Biến đổi DFT dưới dạng ma trận
Khi đó biến đổi DFT của XN và biến đổi ngược IDFT được viết lại:
Mệnh đề 1.1.2 Cho vectơ x(n,1), tích WN.x được gọi là phép biến đổi Fourier
rời rạc của vectơ x và WN−1.x là phép biến đổi nghịch đảo của x Phần tử ở vị trí
k trong WN.x và WN−1.x được xác định bởi công thức:
[WN.x]k=
N−1
∑i=0
xiwik; [WN−1.x]k = 1
N
N−1
∑i=0
xiw−ik
Ví dụ 1.1.4.
1.1.3 Biến đổi DFT cho toán tử unita
Trước kia, biến đổi DFT và biến đổi ngược IDFT của dãy x(n) được viếtdưới dạng:
X(k) = √1
N
N−1
∑n=0
x(n)WNkn, k= 0, 1, , N − 1 (1.5)
Trang 8x(n) = √1
N
N−1
∑k=0
Nếu L < N ta có thể độn N - L số 0 ở cuối của bản ghi dữ liệu để nó có chiềudài N Độn bất kỳ số 0 nào vào phần đuôi của tín hiệu đều không ảnh hưởng gìđến biến đổi DFT
Nếu L > N ta có thể giảm chiều dài của bản ghi thành N theo kỹ thuật rútgọn modN
Để có được phép chập không tròn hoặc không tuần hoàn của hai dãy (mộtdãy có chiều dài L và dãy khác có chiều dài M) bằng cách sử dụng phương pháp
Trang 9biến đổi DFT hay IDFT, ta thấy hai dãy phải độn 0 vào phần đuôi của chúng vàsao cho chiều dài lúc này là L + M − 1 ≤ N Hiệu quả thể hiện rõ trong miền tầnsố.
Cho (x(n)) = (x0, x1, , xM−1), dãy M điểm được độn N − M số 0 vào x(n),khi đó dãy sau khi độn là: (xe(n)) = (x0, x1, , xM−1, 0, , 0) Ở đây Xe(n) =
xe(n)WNnk
=
M−1
∑n=0
x(n)x∗(n) = 1
N
N−1
∑n=0
Cho x(n), y(n) là hai dãy thực với chu kỳ N Chập vòng của chúng ký hiệu
là x(n) ∗ y(n) được cho bởi công thức:
Zcon(m) = 1
N
N −1
∑n=0
x(n)y(m − n), (m = 0, 1, , N − 1) (1.10)
Trang 10= x(n) ∗ y(n).
Trong miền Fourier rời rạc, điều này tương đương với:
Zcon(k) = 1
NX(k)Y (k)
Ở đây x(n) ↔ X (k), y(n) ↔ Y (k) và Zcon(m) ↔ Zcon(k).
Định nghĩa 1.1.2 (Tích chập giữa hai vectơ)
Cho hai vectơ: a =
a và b là một vectơ ký hiệu là [a ∗ b] mà các phần tử của nó được xác định bởicông thức: [a ∗ b]k = ∑ki=0aibk−i (k = 0, 1, , 2n − 1) Ở đây an= an+1= =
Định nghĩa 1.1.3 Cho hai vectơ: a =
Tích trong của hai vectơ a và b là một vectơ ký hiệu là a × b và được xác
Trang 11Định lý 1.1.4 Gọi a0, b0 là hai vectơ được xác định:
và W = W2n là ma trận Fourier cấp 2n thì W ([a ∗ b]) = (Wa0) × (W b0)
1.1.6 Biểu diễn hệ thống, phân tích phổ tín hiệu rời rạc
Định lý 1.1.5 (Định lí lấy mẫu (Tiêu chuẩn Nyquist))
Một tín hiệu sẽ được khôi phục khi tần số lấy mẫu phải lớn hơn hoặc bằng hai lần bề rộng phổ của tín hiệu Tức là fs≥ 2B(B = fmax).
Để tính toán DFT hiệu quả hơn, người ta thường chia nhỏ liên tiếp sự phứctạp của DFT N điểm thành DFT cấp nhỏ hơn và đưa ra loạt thuật toán tính DFTmột cách hiệu quả, nhanh chóng được gọi là phép biến đổi Fourier nhanh, viếttắt là FFT
Định nghĩa 1.2.1 Phép biến đổi Fourier nhanh là thuật toán tính DFT một
cách hiệu quả và nhanh chóng tức là giảm độ phức tạp và thời gian tính toán
Trang 121.2.2 Thuật toán Fourier nhanh FFT
Trong phạm vi này, ta tập trung nghiên cứu một số thuật toán cơ bản nhấtvới N = 2v
Thuật toán cơ bản phân ly theo thời gian
Nguyên tắc chung: Dựa trên việc phân tích DFT N điểm thành DFT nhỏ
hơn (số điểm tính DFT nhỏ hơn) Theo cách này, chúng ta khai thác cả tính đốixứng và tuần hoàn của hàm W
Wk+
N 2
N = −WNk
WNk+N = WNk.Thuật toán phân chia dựa trên việc phân chia dãy x(n) thành các dãy nhỏhơn được gọi là thuật toán phân chia theo thời gian (vì chỉ số n thường được gắnliền với thời gian) Nguyên tắc của thuật toán này được minh họa rõ rệt nhất khi
ta xem xét trường hợp N là lũy thừa của 2
Do N là số chẵn nên ta có thể tính X (k) bằng cách tính x(n) thành 2 dãy,mỗi dãy có N2 điểm, một dãy chứa các điểm lẻ của x(n) và một dãy chứa cácđiểm chẵn của x(n)
Theo định nghĩa DFT:
X(k) =
N−1
∑n=0
=
N
2 −1
∑m=0
x(2m)WN2mk+
N
2 −1
∑m=0
f2(m)WNkm
2
=F1(k) +WNkF2(k) (k = 0, 1, , N − 1)
Trang 13Trong đó F1(k) là biến đổi DFT N2 điểm của dãy f1(m) và F2(k) là biến đổiDFT N2 điểm của dãy f2(m) Như vậy X (k) có thể được tính từ các DFT N2 điểm
F1(k), F2(k) Ở đây:
F1(k), F2(k) tuần hoàn với chu kỳ N2
F1(k +N2) = F1(k); F2(k +N2) = F2(k); Wk+
N 2
N = −WNk.Khi đó ta có:
Sơ đồ thực hiện FFT 8 điểm phân chia theo thời gian:
Hình 1.1: Sơ đồ cánh bướm theo thời gian
Hình 1.2: Sơ đồ tổng quát
Trang 14Hình 1.3: Sơ đồ cụ thể
Ví dụ 1.2.1 Giải Ví dụ 1.1.1 bằng thuật toán FFT phân chia theo thời gian:
Thuật toán cơ bản phân ly theo tần số
Nguyên tắc chung: Dựa trên việc phân tích dãy ra X (k) thành các dãy nhỏ
hơn theo cùng một cách phân tích dãy x(n) Do chỉ số k của X (k) thường đượcgắn liền với thang tần số nên thuật toán được gọi là thuật toán phân chia theotần số
Xét DFT N điểm, N = 2v Phân ly X (k) thành chuỗi có hệ số chẵn và lẻ.Chuỗi có hệ số chẵn là:
X(2k) =
N−1
∑n=0
x(n)WNkn
2
.Đổi cách ghi chỉ số ở tổng thứ 2 ta được:
X(2k) =
N
2 −1
∑n=0
x(n +N
2)W
k(n+N2) N 2
Vì Wk(n+
N
2 ) N
[(x(n) + x(n +N
2)]W
kn N 2
.Tương tự ta có chuỗi có hệ số lẻ là:
X(2k + 1) =
N
2 −1
∑n=0
WNn
x(n) − x(n +N
Trang 15Sơ đồ thuật toán FFT phân ly theo tần số:
Hình 1.4: Sơ đồ cụ thể phân theo tần số
Hình 1.5: Sơ đồ cánh bướm theo tần số
Từ thuật toán FFT trên, ta có công thức tính IDFT như sau:
x(n) =1
N
"N−1
∑k=0
X∗(k)WNkn
#∗
= 1
N[DFT (X∗(k)]∗.Hay x(n) = N1 [FFT (X∗(k))]∗
Trang 16CHƯƠNG 2 ỨNG DỤNG
Bài toán 2.1 Cho dãy x(n) = {2, 3; 1; 4} Tìm biến đổi DFT X (k) của dãy tín hiệu x(n)?
Bài toán 2.2 Cho x(n) = αn.u(n) Dãy tuần hoàn ˜x(n) được xác định bởi:
˜x(n) =
∞
∑n=−∞
x(n + rN)
Xác định chuỗi Fourier rời rạc ˜X(k) của ˜x(n)?
Bài toán 2.3 Cho tín hiệu xc(t) liên tục tuần hoàn có chu kỳ 1ms có dạng:
xc(t) =
9
∑k=0
akei
2πkt 10−3, ak= 0 với k > 9,
xc(t) được lấy mẫu với khoảng cách mẫu là T = 1610−3s để tạo thành tín hiệurời rạc x(n) và x(n) = xcn106−3
a Tín hiệu x(n) có phải là tín hiệu tuần hoàn không, nếu có thì chu kỳ làbao nhiêu?
b Xét xem tốc độ lấy mẫu có thỏa mãn tiêu chuẩn Nyquist không, nghĩa là
T có đủ nhỏ để tránh xảy ra hiện tượng chồng phổ không?
Bài toán 2.4 Thực hiện phép nhân hai đa thức:
P(x) =
p−1
∑k=0
pkxk; Q(x) =
q−1
∑k=0
qkxk
Ví dụ 2.1.1.
Trang 17Bài toán 2.5 Dùng mối quan hệ giữa chuỗi Fourier thời gian liên tục và Fourier rời rạc để xét các dạng cơ bản của phương trình sóng.
Một chuỗi Fourier (FS) thể hiện một tín hiệu liên tục, tuần hoàn x(t) vớikhoảng thời gian T trong khoảng vô hạn các số nguyên thể hiện trong một hàmsin điều hòa Tần số của các hàm điều hòa cơ bản là w0 = 2πT còn những hàmđiều hòa khác có tần số là bội nguyên của w0 Các tín hiệu biểu diễn được bằngchuỗi Fourier phải thỏa các điều kiện Dirichlet:
Tín hiệu x(t) phải hội tụ tuyệt đối, tức là: R T
0 |x(t)|dt < ∞
Tín hiệu phải là số hữu hạn trong một khoảng thời gian
Tín hiệu có một số hữu hạn các điểm gián đoạn trong một khoảng hữu hạnthời gian
Những điều kiện này thường gặp nhiều trong các ứng dụng thực tiễn quantrọng
Trang 18= Xc(0) +
∞
∑k=1
Từ định nghĩa của Xc(k) , Xs(k) và theo trên ta có:
x(nTs)e−ikw0 nTsT
N
= 1N
N−1
∑n=0
x(n)e−i2πN nk, k = 0, 1, , N − 1
x(n) =
N −1
∑k=0
áp dụng với A = 1 và T = 1s
Trang 19Từ phương trình 2.4 ta có đường đi của sóng ứng với A = 1 và T = 1s nhưhình vẽ sau:
x(t)dt = 1
T
2 0
Adt = A
2.Khi đó: Xcs(k) = 1
T
2 0
−ikπ− 1) =
( −iA
kπ klẻ
0 kchẵn, k 6= 0Suy ra:
x(t) = Xcs(0) +
+∞
∑k=−∞
Xcs(k)eikw0 t
= Xcs(0) +
+∞
∑k=−∞
sin2π
x(t) = 1
2+
2π
sin(2πt) +1
3sin 3(2πt) +
1
5sin 5(2πt) +
.Lúc này đường truyền của sóng là:
Trang 20(akcos 2π fkT+ bksin 2π fkT)
Tìm dạng của phương trình sóng nếu: fk∈ Z, x = ∑k(akcos 2π fkt+bksin 2π fkt)
là vectơ nhận giá trị của X (T ) tại n điểm bằng nhau giữa T = 0, T = 1
Trang 21cosin rời rạc, vectơ sin rời rạc và t =
n−1 n
Trang 22Suy ra Wnei2π f t = nef.
Tương tự ta cũng có: Wne−i2π f t = nen− f
Vậy Wnei2π f t = nef và Wne−i2π f t = nen− f
Lại có: Wn(a cos 2π f ) = aWn(cos 2π f ) = aWn
Wn(b sin 2π f ) = bWn ei2π f t− e−i2π f t
2i
= nb2i ef − en− f = inb
2 (−ef + en− f).
Do đó: 2nWn(a cos 2π f ) = a(ef+ en− f) và 2nWn(b sin 2π f ) = ib(−ef + en− f)
Từ phương trình ban đầu cho ta:
y= 2
nWnx=
+∞
∑k=0
ak(ef k+ en− fk) + i
+∞
∑k=0
bk(−ef k+ en− fk) (2.7)Với y = 2nWnxcho ta fk, ak, bk và tìm được phương trình dạng sóng
Ví dụ 2.1.5.
Bài toán 2.7 Sử dụng thuật toán FFT phân ly theo thời gian tìm biến đổi DFT X (k) của dãy tín hiệu x(n) = {3; 2; 0; −1; 2; 1; 0; 2}.
Bài toán 2.8 Sử dụng thuật toán FFT phân ly theo tần số tìm biến đổi DFT của dãy tín hiệu x(n) = {4; 2; 0; −2; −4; 2; 0; −2}.
Bài toán 2.9 Biến đổi Fourier nhanh cho vectơ xn×1
Trang 23Định nghĩa 2.2.1 Cho vectơ xn×1 với n = 2v, phép biến đổi FFT của vectơ
xlà kết quả cuối cùng của quá trình tính toán sau:
X1×n← rev(x) (đảo chỉ số dưới các phần tử trong x)
−πi 2i
Cơ sở của thuật toán:
Ta có thể độn 0 vào sao cho hai đa thức A(x), B(x) cùng bậc và giả sử cùngbậc n − 1 Tính đa thức C(x) = A(x).B(x) Nghĩa là tìm các hệ số c0, c1, , c2n−2
Trang 24của đa thức C(x) Do A, B có bậc n − 1 nên C(x) có bậc lớn nhất là 2n − 2 Tacó:
ck=
k
∑i=0
aibk−i, i= 0, 1, , 2n − 2
trong đó nếu i ≥ n ta đặt ai = bi = 0 Như vậy để tính tất cả các hệ số của đathức C(x) ta cần O(n2) phép tính Để giảm độ phức tạp tính toán ta sử dụngthuật toán FFT
Ý tưởng của thuật toán:
Một đa thức có bậc nhỏ hơn n hoàn toàn xác định nếu ta biết giá trị của đathức tại n điểm phân biệt Tức là nếu biết A(x0), A(x1), , A(xn−1) thì sẽ tínhđược a0, a1, , an−1 và ngược lại
Nếu ta tính được giá trị của đa thức A, B tại các điểm x0, x1, , x2n−2 nên đathức C(x) và các hệ số của nó hoàn toàn có thể xác định được
Giả sử n chẵn và đa thức A(x) = a0+ a1x+ + an−1xn−1, xét hai đa thức:
số điểm còn lại thì ta có thể tiếp tục đệ quy
Để trong n2 điểm x20, x21, , x2n
2 −1có một nửa số điểm trái dấu với nửa số điểmcòn lại, xi không thể là số thực vì x2 ≥ 0, ∀x ∈ R Như vậy ta phải sử dụng sốphức
Thuật toán:
Procedure FFT (A, n) (Thuật toán FFT)
Input: a0, a1, , an−1 là các hệ số của A(x), n = 2v
Output: Giá trị của A(x) tại các căn phức bậc n của 1: A(w0,n), A(w1,n), ,
Trang 25A(wn−1,n), ở đây xem wk,n = e2iπkn , k = 0, 1, , n − 1.
If n = 1, return A(w0,1) = A(1) = a0
Else tạo hai đa thức:
Procedure PolyMult(A, B) (Thuật toán nhân đa thức).
Input: a0, a1, , an−1; b0, b1, , bn−1, giả sử n là lũy thừa của 2
Output: c0, c1, , c2n−2 là các hệ số của C(x) = A(x).B(x)
Call FFT (A, 2n), FFT (B, 2n) để tính giá trị đa thức A, B tại wk,2n, ∀k =