Biến đổi Fourier nhanh

Biến đổi Fourier nhanh (FFT) là một thuật toán rất hiệu quả để tính toán Biến đổi Fourier rời rạc (DFT) và Biến đổi ngược. Có nhiều loại thuật toán FFT khác nhau sử dụng các kiến thức từ nhiều mảng khác nhau của toán học, từ số phức tới lý thuyết nhómlý thuyết số. Bài này chỉ giới thiệu tổng quan các kĩ thuật và một số tính chất tổng quát. Các thuật toán cụ thể được mô tả chi tiết hơn trong các bài khác được liên kết ở dưới.

Phép biến đổi DFT phân tích một dãy các số thành các thành phần ở các tần số khác nhau. Nó được sử dụng trong nhiều lĩnh vực khác nhau (xem các tính chất và ứng dụng ở biến đổi Fourier rời rạc) nhưng tính toán trực tiếp từ định nghĩa thường quá chậm trong thực tế. FFT là một cách để đạt được cùng kết quả đó nhưng nhanh hơn nhiều: tính DFT của N điểm trực tiếp theo định nghĩa đòi hỏi O(N2) phép tính, trong khi FFT tính ra cùng kết quả đó trong O(N log N) phép tính.

Định nghĩa và tốc độ

[sửa | sửa mã nguồn]

Giả sử x0, x1,..., xn là các số phức. DFT được định nghĩa bởi công thức sau:

Tính trực tiếp từ định nghĩa trên đòi hỏi O(N2) phép tính: có N số Xk cần tính, để tính mỗi số cần tính một tổng N số hạng. Một FFT là một phương pháp để tính cùng kết quả đó trong O(N log N) phép tính. Ko/l(mauio

Các thuật toán

[sửa | sửa mã nguồn]

Thuật toán Cooley–Tukey

[sửa | sửa mã nguồn]

Thuật toán FFT phổ biến nhất là thuật toán FFT Cooley-Tukey[1]. Đây là một thuật toán chia để trị dùng đệ quy để chia bài toán tính DFT có kích thước hợp số N=N1N2, thành nhiều bài toán tính DFT nhỏ hơn có kích thước N1N2, cùng với O(N) phép nhân với căn của đơn vị, thường được gọi là thừa số xoay (theo Gentleman và Sande, 1966)[2].

Giải thuật biến đổi Fourier nhanh Cooley-Tukey cho mảng dài 8 phân tử

Phương pháp này (cùng với ý tưởng chung về một FFT) được phổ biến rộng rãi bởi bài báo của J. W. CooleyJ. W. Tukey năm 1965 nhưng sau đó người ta nhận ra rằng hai tác giả đó đã phát hiện lại một cách độc lập thuật toán mà Carl Friedrich Gauss đã tìm ra khoảng năm 1805 (và sau đó được phát hiện lại nhiều lần trong những trường hợp đặc biệt).

Dạng phổ biến nhất của thuật toán Cooley-Tukey là chia biến đổi thành hai nửa kích thước N / 2 ở mỗi bước (vì vậy chỉ dùng được cho kích thước là lũy thừa của 2) nhưng bất kì cách phân tích ra thừa số nào cũng đều có thể dùng được (điều này cả Gauss và Cooley/Tukey đều nhận ra). Đây là dạng cơ số 2 và dạng nhiều cơ số. Mặc dù ý tưởng cơ bản là đệ quy, khi lập trình, người ta thường sắp xếp lại thuật toán để tránh đệ quy. Ngoài ra, do thuật toán Cooley-Tukey chia một DFT thành các DFT nhỏ hơn, có thể phối hợp nó với các thuật toán khác cho DFT, chẳng hạn như những thuật toán mô tả dưới đây.

Các thuật toán FFT khác

[sửa | sửa mã nguồn]

Có nhiều thuật toán FFT khác ngoài Cooley-Tukey. Với N=N1N2 và N1, N2 nguyên tố cùng nhau, có thể dùng thuật toán FFT thừa số nguyên tố (thuật toán Good-Thomas), dựa trên [[định lý số dư Trung Quốc|định lý số dư Trung Hoa]], để phân tích DFT tương tự như Cooley-Tukey nhưng không cần thừa số xoay.

Thuật toán FFT cho số thực và dữ liệu đối xứng

[sửa | sửa mã nguồn]

Trong nhiều ứng dụng, dữ liệu vào cho DFT là số thực. Khi đó kết quả thỏa mãn điều kiện đối xứng sau

và nhiều thuật toán FFT hiệu quả được thiết kế cho trường hợp này. Một phương pháp là lấy một thuật toán thông thường (chẳng hạn Cooley-Tukey) rồi bỏ đi phần tính toán không cần thiết, do đó tiết kiệm khoảng một nửa thời gian và bộ nhớ cần thiết.

Các vấn đề tính toán

[sửa | sửa mã nguồn]
Vấn đề mở trong khoa học máy tính:
Chặn dưới của độ phức tạp tính toán của biến đổi Fourier nhanh là gì? Liệu nó có thể nhanh hơn Θ(N log N) hay không?
(các vấn đề mở khác trong khoa học máy tính)

Một bài toán mở quan trọng về mặt lý thuyết là chứng minh chặn dưới cho độ phức tạp tính toán và số phép tính của biến đổi Fourier nhanh. Hiện vẫn chưa có chứng minh nào cho việc DFT có thực sự đòi hỏi Ω(N log N) phép tính, ngay cả trong trường hợp kích thước N là lũy thừa của hai, mặc dù không có thuật toán nào có độ phức tạp thấp hơn. Chú ý rằng tuy số phép tính thường là quan tâm chính về mặt lý thuyết, trên thực tế, tốc độ thực thi phụ thuộc nhiều yếu tố khác như các tối ưu hóa cho bộ nhớ đệmống lệnh CPU (CPU Pipes).

Theo công trình của Winograd năm 1978[3], chặn dưới chặt cho số phép nhân của FFT đã được biết là Θ(N).

  1. ^ Cooley, James W.; Tukey, John W. (1965). "An algorithm for the machine calculation of complex Fourier series". Math. Comput. Quyển 19 số 90. tr. 297–301. doi:10.1090/S0025-5718-1965-0178586-1.
  2. ^ W. M. Gentleman, G. Sande (1966). "Fast Fourier Transforms: for fun and profit". Proceedings of the November 7-10, 1966, fall joint computer conference (AFIPS '66 (Fall)). ACM, New York, NY, USA. tr. 563–578. doi:10.1145/1464291.1464352.
  3. ^ Winograd, S. (1978). "On computing the discrete Fourier transform". Math. Computation. Quyển 32 số 141. tr. 175–199. doi:10.1090/S0025-5718-1978-0468306-4. JSTOR 2006266
Chúng tôi bán
Bài viết liên quan
Ứng dụng Doublicat cho phép bạn hoán đổi khuôn mặt mình với diễn viên, nhân vật nổi tiếng trong ảnh GIF
Ứng dụng Doublicat cho phép bạn hoán đổi khuôn mặt mình với diễn viên, nhân vật nổi tiếng trong ảnh GIF
Ứng dụng này có tên là Doublicat, sử dụng công nghệ tương tự như Deepfakes mang tên RefaceAI để hoán đổi khuôn mặt của bạn trong GIF
Nghệ thuật của việc mất cân bằng trong phát triển
Nghệ thuật của việc mất cân bằng trong phát triển
Mất cân bằng trong phát triển là điều rất dễ xảy ra, vậy mất cân bằng như thế nào để vẫn lành mạnh? Mình muốn bàn về điều đó thông qua bài viết này.
Quân đội Israel - Nguồn Gốc và Sức Mạnh
Quân đội Israel - Nguồn Gốc và Sức Mạnh
Đây là lời tuyên chiến đầu tiên của Israel kể từ năm 1973, tỏ rõ ý định muốn chơi tới cùng với Hamas và chắc chắn sẽ giành được chiến thắng chung cuộc.
Taylor Swift: từ
Taylor Swift: từ "Công chúa nhạc đồng quê" đến nữ tỷ phú thống trị nền công nghiệp âm nhạc
"Những Kỷ Nguyên của Taylor Swift" trở thành concert film có doanh thu lớn nhất tại Việt Nam sau chưa đầy hai tuần công chiếu