1. Trang chủ
  2. » Luận Văn - Báo Cáo

ĐÁNH GIÁ HIỆU NĂNG THUẬT TOÁN FFT (FAST FOURIER TRANSFORM) SỬ DỤNG MPI

32 8 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 32
Dung lượng 1,82 MB

Nội dung

Biến đổi Fourier, một trong những khái niệm quan trọng và mạnh mẽ nhất trong toán học và kỹ thuật, đã đóng vai trò không thể phủ nhận trong việc hiểu và phân tích các tín hiệu và hệ thống trong nhiều lĩnh vực khác nhau. Từ viễn thông đến khoa học dữ liệu, từ xử lý tín hiệu đến hình ảnh y khoa. Biến đổi Fourier đã trở thành công cụ cơ bản không thể thiếu để hiểu sâu hơn về các quá trình dao động và chuỗi thời gian. Khi nghiên cứu về Biến đổi Fourier, chúng em mở ra cánh cửa tới một thế giới rộng lớn của phép biến đổi từ miền không gian thời gian sang miền không gian tần số và ngược lại. Phương pháp này không chỉ giúp chúng em phân tích các tín hiệu phức tạp thành các thành phần đơn giản hơn mà còn cung cấp cái nhìn sâu sắc về cấu trúc và tính chất của các tín hiệu đó. Trong bài luận này, chúng em sẽ khám phá sâu hơn về biến đổi Fourier, tìm hiểu về nguồn gốc, cách thức hoạt động, và ứng dụng rộng rãi của nó trong nhiều lĩnh vực khác nhau. Chúng em sẽ đi từ những khái niệm cơ bản nhất đến những ứng dụng tiên tiến, nhấn mạnh vào tầm quan trọng và tính ứng dụng của Biến đổi Fourier trong thế giới hiện đại. Bài báo cáo này hy vọng sẽ giúp mọi người có cái nhìn tổng quan và chi tiết hơn về Biến đổi Fourier, từ các khái niệm căn bản đến ứng dụng thực tế, đồng thời khám phá sự to lớn và đa dạng của nó trong việc giải quyết nhiều vấn đề phức tạp trong khoa học và kỹ thuật.

TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI KHOA CÔNG NGHỆ THƠNG TIN ···🙞🙞🙞🙞🙞··· BÁO CÁO BTL THUỘC HỌC PHẦN: TÍNH TOÁN HIỆU NĂNG CAO ĐÁNH GIÁ HIỆU NĂNG THUẬT TOÁN FFT (FAST FOURIER TRANSFORM) SỬ DỤNG MPI Giáo viên hướng dẫn : Ts Hà Mạnh Đào Nhóm – Lớp : 12 - 20231IT6069001 Tên thành viên : Nguyễn Quang Vũ - 2021608053 Lê Đăng Nghĩa - 2021601694 Nguyễn Trung Hiếu - 2021604011 LỜI MỞ ĐẦU Hà Nội - 2023 Biến đổi Fourier, khái niệm quan trọng mạnh mẽ toán học kỹ thuật, đóng vai trị khơng thể phủ nhận việc hiểu phân tích tín hiệu hệ thống nhiều lĩnh vực khác Từ viễn thông đến khoa học liệu, từ xử lý tín hiệu đến hình ảnh y khoa Biến đổi Fourier trở thành công cụ thiếu để hiểu sâu trình dao động chuỗi thời gian Khi nghiên cứu Biến đổi Fourier, chúng em mở cánh cửa tới giới rộng lớn phép biến đổi từ miền không gian thời gian sang miền không gian tần số ngược lại Phương pháp khơng giúp chúng em phân tích tín hiệu phức tạp thành thành phần đơn giản mà cịn cung cấp nhìn sâu sắc cấu trúc tính chất tín hiệu Trong luận này, chúng em khám phá sâu biến đổi Fourier, tìm hiểu nguồn gốc, cách thức hoạt động, ứng dụng rộng rãi nhiều lĩnh vực khác Chúng em từ khái niệm đến ứng dụng tiên tiến, nhấn mạnh vào tầm quan trọng tính ứng dụng Biến đổi Fourier giới đại Bài báo cáo hy vọng giúp người có nhìn tổng quan chi tiết Biến đổi Fourier, từ khái niệm đến ứng dụng thực tế, đồng thời khám phá to lớn đa dạng việc giải nhiều vấn đề phức tạp khoa học kỹ thuật Trong nghiên cứu này, chúng em mơ sức mạnh tính tốn song song thơng qua việc giải toán nhân ma trận đưa so sánh hiệu suất Mặc dù nỗ lực để tránh sai sót, chúng em nhận thức tồn khuyết điểm nhỏ mong nhận thông cảm Chúng em muốn bày tỏ lòng biết ơn đặc biệt đến TS Hà Mạnh Đào, người đồng hành hỗ trợ chúng em suốt trình thực đề tài MỤC LỤC Chương I: TỔNG QUAN ĐỀ TÀI 1.1 Tên đề tài 1.2 Giới thiệu đề tài 1.3 Kiến thức cần có 1.4 Các kỹ có để thực đề tài nghiên cứu 1.5 Thuật toán FFT 1.5.1 Định nghĩa 1.5.2 Nguyên lý .6 1.5.3 Các vấn đề tính tốn .6 1.5.4 Biến đổi Fourier rời rạc 1.5.5 Biến đổi Fourier nhanh 1.5.6 FFT nghịch đảo 1.6 MPI tính tốn hiệu 11 1.6.1 Định nghĩa 11 1.6.2 Mơ hình lập trình 11 1.6.3 Cấu trúc chương trình MPI 13 1.6.4 Hạn chế .13 1.7 Tổng quan tính tốn hiệu cao 14 1.7.1 Hoàn cảnh đời 14 1.7.2 Định nghĩa 14 1.7.3 Các thách thức 15 Chương II: KẾT QUẢ NGHIÊN CỨU 16 2.1 Thuật tốn FFT ngơn ngữ tự nhiên (C++) 16 2.2 Thuật toán nhân ma trận 18 2.3 Thuật toán nhân ma trận sử dụng thuật toán FFT 20 2.4 Nhân ma trận có sử dụng FFT OpenMPI 23 2.5 So sánh kết thực tế 27 Chương III: KẾT LUẬN VÀ BÀI HỌC KINH NGHIỆM 28 3.1 Nội dung thực 28 3.2 Kết luận 28 3.2 Hướng phát triển 29 TÀI LIỆU THAM KHẢO .30 Chương I: TỔNG QUAN ĐỀ TÀI 1.1 Tên đề tài Tên đề tài: Đánh giá hiệu thuật toán FFT (Fast Fourier Transform) sử dụng MPI 1.2 Giới thiệu đề tài Từ kiến thức dạy thầy đề tài thầy giao cho Nhóm em tìm hiểu nghiên cứu thuật toán FFT việc sử dụng MPI để đánh giá hiệu thuật toán Bằng việc áp dụng kiến thức MPI học lớp tài liệu tìm mạng Để hoàn thiện sản phẩm thành viên nhóm cần có kiến thức, hiểu biết thuật toán FFT thư viện MPI Bài báo cáo thành tất ba thành viên nhóm em sau tìm hiểu nghiên cứu việc đánh giá hiệu thuật toán FFT sử dụng MPI 1.3 Kiến thức cần có ● Kiến thức thuật toán FFT ● Kiến thức MPI ● Lập trình chương trình ứng dụng Visual Studio ● Khả phân tích liệu đầu 1.4 Các kỹ có để thực đề tài nghiên cứu ● Kỹ tổng hợp kiến thức: tổng hợp kiến thức học từ lớp mạng để hoàn thiện tập lớn ● Khả đọc hiểu tài liệu tiếng Anh ● Kỹ hoạt động nhóm: phân chia cơng việc phù hợp, thảo luận nhóm để hồn thành công việc ● Kỹ viết báo cáo 1.5 Thuật toán FFT 1.5.1 Định nghĩa - Biến đổi Fourier nhanh (FFT) thuật tốn hiệu để tính toán Biến đổi Fourier rời rạc (DFT) Biến đổi ngược Có nhiều loại thuật tốn FFT khác sử dụng kiến thức từ nhiều mảng khác tốn học, từ số phức tới lý thuyết nhóm lý thuyết số - Biến đổi Fourier nhanh FFT thực chất thuật toán để thực phép biến đổi Fourier rời rạc DFT nhằm phân tích tín hiệu rời rạc theo thời gian miền tần số hiệu nhờ cải thiện đáng kể tốc độ tính tốn đơn giản 1.5.2 Ngun lý - Các thuật toán FFT tập trung vào việc giải độ phức tạp tính tốn DFT cách làm giảm cách đáng kể thời gian tính tốn số lần thực phép toán, đặc biệt phép toán chiếm nhiều thời gian thực phép nhân Các thuật toán sử dụng hiệu kích thước N DFT có giá trị lớn Ngồi thuật tốn nhanh ban đầu, xuất thêm số thuật tốn hay sử dụng - Tính DFT N điểm trực định nghĩa đòi hỏi O(N2) phép tính, FFT tính kết O(N log N) phép tính 1.5.3 Các vấn đề tính tốn - Một tốn mở quan trọng mặt lý thuyết chứng minh chặn cho độ phức tạp tính tốn số phép tính biến đổi Fourier nhanh Hiện chưa có chứng minh cho việc DFT có thực địi hỏi Ω(N log N) phép tính, trường hợp kích thước N lũy thừa hai, khơng có thuật tốn có độ phức tạp thấp Chú ý số phép tính thường quan tâm mặt lý thuyết, thực tế, tốc độ thực thi phụ thuộc nhiều yếu tố khác tối ưu hóa cho nhớ đệm ống lệnh CPU (CPU pipes) 1.5.4 Biến đổi Fourier rời rạcn đổi Fourier rời rạci Fourier rời rạci rạcc Cho đa thức có bậc  n - 1 : Khơng tính tổng quát, giả sử  n - số hệ số - lũy thừa  2  Nếu n  khơng phải lũy thừa  2 , cần cộng số hạng thiếu a i x i  đặt hệ số  a i  thành  0    có  n  Lý thuyết số phức cho biết phương trình   n nghiệm phức (gọi bậc   ), nghiệm có dạng   với   Ngồi ra, số phức có số tính chất thú vị: ví dụ: gốc n - gốc thứ n   sử dụng để mô tả tất gốc thứ    khác:     Biến đổi Fourier rời rạc (DFT) đa thức   vectơ hệ số điểm    , tức vectơ:   (hoặc tương đương   định nghĩa giá trị đa thức Tương tự, phép biến đổi Fourier rời rạc ngược định nghĩa: DFT nghịch đảo giá trị đa thức   hệ số đa thức     Do đó, DFT trực tiếp tính tốn giá trị đa thức điểm nghiệm thứ  n , DFT nghịch đảo khơi phục hệ số đa thức cách sử dụng giá trị 1.5.5 Biến đổi Fourier nhanh Biến đổi Fourier nhanh phương pháp cho phép tính tốn DFT     thời gian Ý tưởng FFT áp dụng chia để trị Chúng ta chia vectơ hệ số đa thức thành hai vectơ, tính tốn đệ quy DFT cho vectơ kết hợp kết để tính tốn DFT đa thức đầy đủ Vì vậy, giả sử có đa thức  A(x)  với bậc  n - 1 ,  n  lũy thừa  2 ,  n > 1 : Ta chia thành hai đa thức nhỏ hơn, đa thức chứa hệ số vị trí chẵn đa thức chứa hệ số vị trí lẻ: Dễ thấy Các đa thức   A0    A1 nửa hệ số đa thức   A   Nếu tính DFT ( A)  thời gian tuyến tính cách sử dụng DFT ( A0 )  DFT ( A1 )  , nhận phép lặp   cho độ phức tạp thời gian, kết   Giả sử tính vectơ theo master theorem   Chúng ta tìm biểu thức cho $   n Đối với giá trị  đầu tiên, sử dụng phương trình lưu ý trước   : n Tuy nhiên, giá trị thứ hai, cần tìm biểu thức khác chút: Ở sử dụng lại   hai định danh     Do đó, ý nhận cơng thức mong muốn để tính tốn tồn vectơ  ( y k ) : 1.5.6 FFT nghịch đảo Cho vectơ điểm - giá trị đa thức   A   bậc  n−1    - cho trước Chúng ta muốn khôi phục hệ số     đa thức Vấn đề biết gọi phép nội suy có thuật tốn chung để giải vấn đề Nhưng trường hợp đặc biệt (vì biết giá trị điểm gốc thống nhất), thu thuật tốn đơn giản nhiều (thực tế giống thuật toán FFT trực tiếp) Chúng ta viết DFT, theo định nghĩa nó, dạng ma trận: Ma trận gọi ma trận Vandermonde Do đó, tính vectơ     cách nhân vectơ     từ bên trái với nghịch đảo ma trận: Kiểm tra nhanh xác minh ma trận nghịch đảo có dạng sau: // Hàm thực IFFT (inverse FFT) void ifft(CArray& x) { // Đảo ngược dãy số áp dụng FFT x = x.apply(std::conj); fft(x); x = x.apply(std::conj); // Chia tất phần tử cho N x /= x.size(); } int main() { // Số lượng phần tử dãy số const size_t N = 4; // Dãy số ban đầu Complex test[N] = { 1.0, 1.0, 1.0, 1.0}; CArray data(test, N); // Thực FFT in kết hình fft(data); std::cout

Ngày đăng: 12/01/2024, 19:50

w