Biến đổi fourier rời rạc, fourier nhanh và ứng dụng

60 12 0
Biến đổi fourier rời rạc, fourier nhanh và ứng dụng

Đ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

BỘ GIÁO DỤC VÀ ĐÀO TẠO ĐẠI HỌC ĐÀ NẴNG NGUYỄN THỊ THU THỦY PHƯƠNG PHÁP TÍNH GIỚI HẠN DÃY SỐ, HÀM SỐ VÀ CÁC DẠNG TOÁN LIÊN QUAN LUẬN VĂN THẠC SĨ KHOA HỌC Đà N ng – Năm 2015 BỘ GIÁO DỤC VÀ ĐÀO TẠO ĐẠ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 LUẬN VĂN THẠC SĨ KHOA HỌC Người hướng dẫn khoa học: TS PHAN ĐỨC TUẤN Đà Nẵng – Năm 2015 LỜI CAM ĐOAN Tôi xin cam đoan cơng trình nghiên cứu riêng hướng dẫn TS Phan Đức Tuấn Các kết luận văn trung thực chưa công bố công trình khác Đà Nẵng, tháng 11 năm 2014 Tác giả Nguyễn Thị Thu Thủy MỤC LỤC MỞ ĐẦU 1 Tính cấp thiết đề tài Mục tiêu nghiên cứu 1 Đối tượng phạm vi nghiên cứu Phương pháp nghiên cứu 2 Bố cục đề tài Tổng quan tài liệu CHƯƠNG KIẾN THỨC CHUẨN BỊ 1.1 BIẾN ĐỔI FOURIER RỜI RẠC 1.1.1 Định nghĩa 1.1.2 Biểu diễn DFT dạng ma trận 1.1.3 Biểu diễn DFT cho toán tử unita 1.1.4 Tính chất biến đổi DFT 1.1.5 Một số định lí liên quan 10 1.1.6 Biểu diễn hệ thống, phân tích phổ tín hiệu rời rạc 16 1.2 BIẾN ĐỔI FOURIER NHANH 18 1.2.1 Khái niệm 18 1.2.2 Thuật toán Fourier nhanh FFT 18 CHƯƠNG ỨNG DỤNG 26 2.1 ỨNG DỤNG CỦA BIẾN ĐỔI FOURIER RỜI RẠC 25 2.2 ỨNG DỤNG CỦA BIẾN ĐỔI FOURIER NHANH 42 KẾT LUẬN 49 TÀI LIỆU THAM KHẢO PHỤ LỤC QUYẾT ĐỊNH GIAO ĐỀ TÀI LUẬN VĂN (BẢN SAO) DANH MỤC CÁC KÝ HIỆU CÁC KÝ HIỆU: ↔: Biến đổi Fourier rời rạc N : Tập hợp số tự nhiên Z : Tập hợp số nguyên Z∗ : Tập hợp Z \ {0} x∗ : Vectơ suy từ x cách đổi dấu số mũ phần tử e x →: Dẫn đến ⇒: Suy ≈: Xấp xỉ [x] : Hàm phần nguyên x x∗ : liên hợp x CÁC CHỮ VIẾT TẮT: DFT: Biến đổi Fourier rời rạc IDFT: Biến đổi Fourier rời rạc ngược DTFT: Biến đổi Fourier thời gian rời rạc FFT: Biến đổi Fourier nhanh DANH MỤC CÁC HÌNH VẼ 1.1 Sơ đồ cánh bướm theo thời gian 1.2 1.3 Sơ đồ tổng quát 20 Sơ đồ cụ thể phân theo thời gian 21 1.4 1.5 Sơ đồ cụ thể phân theo tần số 23 Sơ đồ cánh bướm theo tần số 23 2.1 A =1, T =1 2.2 2.3 Sóng vng (A =1, T =1) 34 A =1, T =1 34 2.4 Sóng cưa (A =1, T =1) 36 (A =1, T =1, ω = 18 ) 36 2.5 2.6 Xung đối xứng (A =1, T =1, ω = 18 ) 20 33 38 MỞ ĐẦU Tính cấp thiết đề tài Nhiều vấn đề khoa học 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 tốn tính độ lệch đứng dầm, dao động dây, sóng âm, sóng tạo thủy triều, sóng đàn hồi, sóng điện trường tìm phương trình đường cho phương trình sóng Vấn đề đặt tìm lời giải cho tốn Có nhiều phương pháp khác để giải vấn đề, số khơng thể khơng nói đến vai trị đặc biệt quan trọng phép biến đổi Fourier Một khái niệm không tầm quan trọng phép biến đổi Fourier biến đổi Fourier rời rạc (DFT) Trong tốn học, biến đổi Fourier rời rạc cịn gọi phép biến đổi Fourier hữu hạn, biến đổi giải tích Fourier với tín hiệu thời gian rời rạc Nó cơng cụ lý tưởng để xử lý thông tin sử dụng rộng rãi xử lý tín hiệu ngành liên quan đến phân tích tần số, tìm hình dạng lý tưởng cho phương trình truyền sóng, tốn sơ cấp, ma trận phép tốn tích chập Việc ứng dụng hiệu biến đổi Fourier rời rạc thực tế đặc biệt việc phân tích phổ ngành xử lý tín hiệu tiếng nói, địa chất, vật lý, y tế, sóng âm, toán ma trận, phép nhân đa thức người ta quan tâm đến việc rút ngắn thời gian độ phức tạp tính tốn Năm 1965, Cooley Tukey tìm thuật tốn tính biến đổi Fourier rời rạc nhanh chóng hiệu gọi biến đổi Fourier nhanh (FFT) Biến đổi Fourier nhanh thuật tốn cho phép tính DFT nhanh chóng cách giảm độ phức tạp thời gian tính tốn Kể từ đời, biến đổi FFT tạo bước ngoặc lớn thực đóng vai trị quan trọng việc xử lý tín hiệu, tốn ma trận toán sơ cấp Mục tiêu nghiên cứu Mục tiêu đề tài nhằm giúp người đọc hiểu chất biến đổi Fourier rời rạc, hiệu biến đổi Fourier rời rạc thuật tốn FFT Qua áp dụng để tìm lời giải cho số tốn sơ cấp, toán liên quan đến ma trận phương trình truyền sóng Một số điểm cố gắng đưa vào 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ẽ định lí liên quan - Làm rõ tính hiệu biến đổi nhanh FFT, sâu số thuật tốn cụ thể - Đưa nhiều ví dụ tập áp dụng để làm bật tính hiệu quả, tính nhanh chóng biến đổi DFT FFT Đối tượng phạm vi nghiên cứu Đối tượng nghiên cứu đề tài phép biến đổi Fourier Phạm vi nghiên cứu đề tài biến đổi Fourier rời rạc, Fourier nhanh ứng dụng Phương pháp nghiên cứu Thu thập báo khoa học tài liệu tác giả nghiên cứu liên quan đến biến đổi DFT, vấn đề quan trọng áp dụng biến đổi DFT FFT vào giải toán Tham gia buổi seminar thầy hướng dẫn để trao đổi kết nghiên cứu Trao đổi qua email, blog, forum với chuyên gia ứng dụng biến đổi DFT FFT giải toán Bố cục đề tài Luận văn gồm phần mở đầu, hai chương, kết luận phụ lục Chương trình bày số tích chất biến đổi Fourier rời rạc, Fourier nhanh Chương đưa số ứng dụng biến đổi Fourier rời rạc biến đổi Fourier nhanh Tổng quan tài liệu nghiên cứu Luận văn tham khảo số tài liệu khoa học tiếng Việt tiếng Anh biến đổi Fourier đặc biệt biến đổi Fourier rời rạc Fourier nhanh Hiện ngồi nước có cơng trình nghiên cứu biến đổi Fourier rời rạc, biến đổi Fourier nhanh ứng dụng thực tế hữu ích chúng Tuy nhiên cơng trình khoa học chưa tổng hợp nhiều ứng dụng biến đổi Fourier rời rạc, biến đổi Fourier nhanh sơ cấp thực tế có cịn hạn chế Vì việc nghiên cứu, tổng hợp ứng dụng phép biến đổi Fourier rời rạc, Fourier nhanh cách rõ ràng, hệ thống cần thiết Kết nghiên cứu đề tài giúp người học tốn dễ dàng việc hình dung tính hữu ích phép biến đổi Fourier tốn học thực tiễn CHƯƠNG KIẾN THỨC CHUẨN BỊ 1.1 BIẾN ĐỔI FOURIER RỜI RẠC 1.1.1 Định nghĩa Định nghĩa 1.1.1 Cho dãy x(n), n = 0, 1, , N − Khi biến đổi Fourier rời rạc dãy x(n), viết tắt DFT xác định công thức: N−1 X(k) = ∑ x(n)WNkn, k = 0, 1, , N − n=0 (1.1) Biến đổi Fourier rời rạc ngược viết tắt IDFT xác định công thức: N−1 x(n) = ∑ X(k)WN−kn , N k=0 Ở WNkn = e −i2π.kn N n = 0, 1, , N − (1.2) eia = cos a + i sin a Chú ý: Đối với dãy có chiều dài hữu hạn N, biến đổi DFT IDFT cho công thức: kn ∑N−1 n=0 x(n)WN , 0, X(k) = N x(n) = −kn ∑N−1 n=0 x(n)WN , 0, ≤ k ≤ N −1 k khác ≤ k ≤ N −1 k khác Ví dụ 1.1.1 Cho dãy x(n) = (4, 2, 0, −2) Tìm X(k) Lời giải Ta có: X(k) = ∑ x(n)WNkn = ∑ x(n)W4kn, (k = 0, , 3) n=0 n=0 (1.3) (1.4) 40 a Wn ei2π f t +Wn e−2iπ f t a na = ne f + nen− f = e f + en− f 2 = Tương tự: ei2π f t − e−i2π f t Wn (b sin 2π f ) = bWn 2i nb inb e f − en− f = (−e f + en− f ) = 2i Do đó: 2n Wn (a cos 2π f ) = a(e f +en− f ) 2n Wn (b sin 2π f ) = ib(−e f +en− f ) Từ phương trình ban đầu cho ta: +∞ +∞ y = Wn x = ∑ ak (e f k + en− fk ) + i ∑ bk (−e f k + en− fk ) n k=0 k=0 (2.7) Với y = 2n Wn x cho ta fk , ak , bk tìm phương trình dạng sóng Ví dụ 2.1.5 Cho sóng có phương trình tổng qt: +∞ x(T ) = ∑ (ak cos 2π fkt + bk sin 2π fkt) k=0 Với fk ∈ Z, ≤ fk ≤ 3, x vectơ nhận giá trị x(T ) khoảng điểm T =  0, T =     3i       − 2i        Với y = 14 W8 x =   Xác định phương trình truyền sóng x(t)            + 2i    −3i Lời giải Với n = ≤ fk ≤ ta có: x(T ) = (a0 cos 2π f0t + b0 sin 2π f0t) + (a1 cos 2π f1t + b1 sin 2π f1t) + + (a2 cos 2π f2t + b2 sin 2π f2t) 41 Theo công thức 2.7 ta có: 2 y = W8 x = ∑ ak (e fk + e8− fk ) + i ∑ bk (−e fk + e8− fk ) k=0 k=0 (2.8) Theo đề bài:         0 0          3i   3i                       − 2i     − 2i                  4         y = W8 x =  + = +        0                  4               + 2i     + 2i            −3i −3i 0            0 0            1   0 0                           −1  1   0 0             0 1    0              =   + 3i  +4 +0  +   + 2i  0 0 0                            1 0 0                 1 0 0                 0 −1        −1           = [0(e1 + e7 ) + 3i(−e1 + e7 )] + [1(e2 + e6 ) + 2i(−e2 + e6 )] + [4(e3 + e5 ) + 0(−e3 + e5 )] Theo công thức 2.8 suy f0 = 1, f1 = 2, f2 = a0 = 0, b0 = 3, a1 = 1, b1 = 2, a2 = 4, b2 = Vậy phương trình truyền sóng có dạng: x(t) = (0 cos 2π t + sin 2π t) + (1 cos 4π t + sin 4π t) + (4 cos 6π t + sin 6π t) = sin 2π t + cos 4π t + sin 4π t + cos 6π t 42 2.2 ỨNG DỤNG CỦA BIẾN ĐỔI FOURIER NHANH 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) dãy tín hiệu x(n) = {3; 2; 0; −1; 2; 1; 0; 2} Lời giải Ta có sơ đồ thuật toán: √ √ √ √ √ Vậy X(k) = {9; (1 + 2) + 2i; − 2i; (1 − 2) + 2i; 1; (1 − 2) − √ √ √ 2i; + 2i; (1 + 2) − 2i} Bài toán 2.8 Sử dụng thuật tốn FFT phân ly theo tần số tìm biến đổi DFT dãy tín hiệu x(n) = {4; 2; 0; −2; −4; 2; 0; −2} Lời giải Ta có sơ đồ thuật toán: 43 Vậy: X(k) = {0; 8; −8i; 8; 0; 8; 8i; 8} Bài toán 2.9 Biến đổi Fourier nhanh cho vectơ xn×1 Định nghĩa 2.2.1 Cho vectơ xn×1 với n = 2v , phép biến đổi FFT vectơ x kết cuối q trình tính tốn sau: X1×n ← rev(x) (đảo số phần tử x) Với i =  0, 1, , v −1 Xét:   −πi  e 2i      −2πi  e 2i    −3πi D←   e 2i         −(2i −1)πi  e 2i i ×1 X (0) ← (X0 X2 X4 Xr−i−2 )2i ×2r−i−1 X (1) ← (X1 X3 X5 X (0) + D × X (1) X= X (0) − D × X (1) Xr−i−1 )2i ×2r−i−1 2i+1 ×2r−i−1 (Xi : phần tử thứ i ma trận cột X phép ” × ” là: [D × X]mn = dm xmn ) Ví dụ 2.2.1 Sử dụng thuật tốn FFT, tìm biến đổi DFT vectơ: x = (x0 x1 x2 x3 )T Lời giải Ta có: X1×n ← rev(x) = (x0 x2 x1 x3 ) Với j = D ← (1) X (0) ← (x0 X (1) ← (x2 X= x1 ) x3 ) X (0) + D × X (1) X (0) − D × X (1) = (x0 x1 ) + (x2 x3 ) (x0 x1 ) − (x2 x3 ) = x0 + x2 x1 + x3 x0 − x2 x1 − x3 44 Với j = 1 D← −i x0 + x2 X (0) ← x0 − x2 x1 + x3 X (1) ←  x1 − x3 x0 + x2 + x1 + x3   x0 − x2 − ix1 + ix3 X =  x +x −x −x  x0 − x2 + ix1 − ix3   1 1     −i −1 i =   −1 −1   i −1 −i   x0       x1   .   x  = W4 x   2 x3 Đúng với kết tính trực tiếp DFT cách dùng ma trận      −1   Ví dụ 2.2.2 Với x =      Xét X1×4 = (2 Với j = ta có: D ← (1) X (0) ← (2 X (1) ← (3 − 1) 2) D × X (1) = (3 X= −1 −3 Với j = 1 D← −i X (0) ← − 2) −1 2) 45 X (1) ← X= −3  X (0) + D × X (1) X (0) − D × X (1)    −1 + 3i Vậy: X =    −1 − 3i  1     −1 + 3i =   −1 − 3i             −i −1 i Thử lại:   −1 −1  i −1 −i           −1   −1 + 3i   .   =     −1 − 3i       Bài toán 2.10 Sử dụng định lí tích chập biến đổi FFT để tìm tích hai số ngun số e: A = (an−1 an−2 a1 a0 )e B = (bn−1 bn−2 b1 b0 )e Lời giải Đặt:  a0   a1  n−1 n−1  k k P(x) = ∑ ak x ; q(x) = ∑ bk x ; a =  a2  k=0 k=0   an−1 Ta có: A = an−1 en−1 + an−2 en−2 + + a1 e + a0 e0 B = bn−1 en−1 + bn−2 en−2 + + b1 e + b0 e0 Theo Bài toán 2.4, đó: 2n−2 AB = p(e)q(e) = ∑ [A ∗ B]k xk k=0   b0    b1       ; b =  b2       bn−1          46 = [A ∗ B]2n−2 e2n−2 + [A ∗ B]2n−3 e2n−3 + + [A ∗ B]0 e0 Ví dụ 2.2.3 Với A = 32110 ; B = 65410 Ta có:          ∗  =  [A ∗ B] =                 13   28    Do đó: 27    18  AB = (18 × 104 ) + (27 × 103 ) + (28 × 102 ) + (13 × 10) + (4 × 100 ) = (1 × 101 + × 100 ) × 104 + (2 × 101 + × 100 ) × 103 + + (2 × 101 + × 100 ) × 102 + (1 × 101 + × 100 ) × 10 + × 100 = × 105 + × 103 + × 102 + × 10 + × 100 = 20993410 Bài toán 2.11 Sử dụng thuật toán FFT thực phép nhân hai đa thức: A(x) = a0 + a1 x + + an−1 xn−1 ; B(x) = b0 + b1 x + + bm−1 xm−1 Lời giải Cơ sở thuật tốn: Ta độn vào cho hai đa thức A(x), B(x) bậc giả sử bậc n − Tính đa thức C(x) = A(x).B(x) Nghĩa tìm hệ số c0 , c1 , , c2n−2 đa thức C(x) Do A, B có bậc n − nên C(x) có bậc lớn 2n − Ta có: k ck = ∑ bk−i , i=0 i = 0, 1, , 2n − i ≥ n ta đặt = bi = Như để tính tất hệ số đa thứ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ụng thuật toán FFT Ý tưởng thuật tốn: Một đa thức có bậc nhỏ n hoàn toàn xác định ta biết giá trị đa 47 thức n điểm phân biệt Tức biết A(x0 ), A(x1 ), , A(xn−1 ) tính a0 , a1 , , an−1 ngược lại Nếu ta tính giá trị đa thức A, B điểm x0 , x1 , , x2n−2 nên đa thức C(x) hệ số hồn tồn xác định Giả sử n chẵn đa thức A(x) = a0 + a1 x + + an−1 xn−1 , xét hai đa thức: Ae (x) = a0 + a2 x + + an−2 x Ao (x) = a1 + a3 x + + an−1 x n−2 , hệ số bậc chẵn A(x) n−2 , hệ số bậc lẻ A(x) Khi ta có: A(x) = Ae (x2 ) + xAo (x2 ) Do ta chọn tập điểm x0 , x1 , , xn−1 cho: xi = −xi+ 2n , ∀i = 0, 1, 2n , x0 , x1 , , x n2 −1 , −x0 , −x1 , , −x 2n −1 việc tính giá trị đa thức A(x) n điểm x0 , , xn−1 qui tính giá trị hai đa thức Ae (x), Ao (x) có bậc nhỏ Nếu n n n điểm x02 , x12 , , x2n −1 điểm ta có tính chất nửa số điểm trái dấu với nửa số điểm cịn lại ta tiếp tục đệ quy Để 2n điểm x02 , x12 , , x2n −1 có nửa số điểm trái dấu với nửa số điểm cịn lại, xi khơng thể số thực x2 ≥ 0, ∀x ∈ R Như 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 hệ số A(x), n = 2v Output: Giá trị A(x) phức bậc n 1: A(w0,n ), A(w1,n ), , A(wn−1,n ), xem wk,n = e 2iπk n , k = 0, 1, , n − If n = 1, return A(w0,1 ) = A(1) = a0 Else tạo hai đa thức: Ae (x) = a0 + a2 x + + an−2 x Ao (x) = a1 + a3 x + + an−1 x n−2 n−2 Call FFT (Ae , 2n ), FFT (Ao , n2 ) để tính giá trị đa thức Ae (x) Ao (x) wk, 2n = w2k,n = w2k+ n ,n , ∀k = 0, 1, , 2n − For k = → n2 − A(wk,n ) = Ae (wk, n2 ) + wk,n Ao (wk, n2 ) 48 A(wk+ n2 ,n ) = Ae (wk, 2n ) + wk,n Ao (wk, 2n ) 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ũy thừa Output: c0 , c1 , , c2n−2 hệ số C(x) = A(x).B(x) Call FFT (A, 2n), FFT (B, 2n) để tính giá trị đa thức A, B wk,2n , ∀k = 0, 1, , 2n − For k = → 2n − : C(wk,2n ) = A(wk,2n ).B(wk,2n ) Lập đa thức D(x) với hệ số dk = C(wk,2n ), k = 0, 1, , 2n − Call FFT (D, 2n) ck = D(w2n−k , 2n) , (w2n,2n = w0,2n = 1) 2n Ví dụ 2.2.4 Cho hai đa thức: A(x) = + x2 + 3x4 B(x) = + x − x2 + x3 Khi đa thức tích A(x).B(x) = + 4x − 3x2 + 5x3 + 2x4 + 4x5 − 3x6 + x7 Xem mã lệnh Visual studio phần phụ lục 49 KẾT LUẬN Qua thời gian tìm hiểu, tiếp cận nghiên cứu dẫn dắt, dạy dỗ tận tình thầy giáo TS Phan Đức Tuấn phép biến đổi Fourier đặc biệt Fourier rời rạc Fourier nhanh, luận văn hoàn thành đạt mục tiêu nghiên cứu đề tài với kết cụ thể sau: • Trình bày cách đầy đủ chi tiết khái niệm quan trọng biến đổi Fourier rời rạc biến đổi Fourier nhanh, ứng dụng hữu ích hai phép biến đổi toán học thực tiễn • Tìm hiểu nghiên cứu số định lí, tính chất quan trọng biến đổi Fourier rời rạc thuật toán biến đổi Fourier nhanh • Hệ thống cách đầy đủ ứng dụng hai phép biến đổi DFT FFT toán học sơ cấp, toán học cao cấp, đặc biệt ứng dụng thực tế phân tích phổ, xử lí tín hiệu truyền sóng Với kết đạt được, luận văn tài liệu tham khảo hữu ích cho thân người học toán sâu nghiên cứu ứng dụng rộng rãi biến đổi Fourier rời rạc, Fourier nhanh nhiều lĩnh vực khác Trong điều kiện thời gian khuôn khổ luận văn chúng tơi chưa sâu nghiên cứu hết thuật tốn biến đổi FFT Đó hướng phát triển luận văn Trong trình làm luận văn dù cố gắng nhiều không tránh khỏi thiếu sót định, chúng tơi mong góp ý chân thành quý thầy cô bạn đọc để tiếp tục nghiên cứu phát triển luận văn TÀI LIỆU THAM KHẢO Tiếng Việt [1] Đặng Hồi Bắc (2006), Xử lý tín hiệu số, Học viện Cơng nghệ Bưu Viễn thơng [2] Thạch Phước (2008), Ứng dụng ma trận vào phép biến đổi Fourier rời rạc, Đại học Cần Thơ [3] Phan Đức Tuấn (2012), Phép biến đổi tích phân dạng Fourier ứng dụng giải số phương trình vi phân, tích phân, Đại học Khoa học Tự nhiên – Đại học Quốc Gia Hà Nội Tiếng Anh [4] D Sundararajan (2001), The Discrete Fourier Tranform: Theory, Algorithms and applications, World Scientific [5] E.Oran Brigham (1988), The Fast Fourier Tranform and its applications, prentice hall signal processing series alan oppenhem, series editor, Engle cliffs, New Jersey 07632 [6] K.R Rao, D.N Kim, J.J Hwang (2010), Fast Fourier Tranform: Algorithms and Applications, signals and communication technology [7] Julius O Smith III, Mathematics of the Discrete Fourier Tranform PHỤ LỤC Mã lệnh Visual toán nhân đa thức using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using System.IO; using System.Diagnostics; namespace FFT_Project { public partial class Form2 : Form { public Form2() { InitializeComponent(); } complex[] A, B, C; path\_A, path\_B, path\_C; private void button1\_Click(object sender, EventArgs e) { OpenFileDialog op = new OpenFileDialog(); if (DialogResult.OK == op.ShowDialog()) { path\_A = op.FileName; textBox1.Text = path\_A; } } private void button2\_Click(object sender, EventArgs e) { OpenFileDialog op = new OpenFileDialog(); if (DialogResult.OK == op.ShowDialog()) { op.Filter="txt files(*.txt)|*.txt|All files (*.*)|*.*"; path\_B = op.FileName; textBox2.Text = path\_B; } } private void button3\_Click(object sender, EventArgs e) { //A = DocHeSo(path\_A); //B = DocHeSo(path\_B); string[] lines\_A = File.ReadAllLines(path\_A); A = new\ complex[lines\_A.Length]; for (int i = 0; i < lines\_A.Length; i++) { A[i] = new complex(); A[i].real = float.Parse(lines\_A[i]); } string[] lines\_B = File.ReadAllLines(path\_B); B = new complex[lines\_B.Length]; for (int i = 0; i < lines\_B.Length; i++) { B[i] = new complex(); B[i].real = float.Parse(lines\_A[i]); C = Fourier.MultFFT(A, B); sring c = "C: // User //"; string path\_C = c + Environment.UserName + "//Destop //DaThuc\_C.txt"; path\_C = "DaThuc\_C.txt"; textBox3.Text = path\_C; if (!File.Exists(path\_C))// kiểm tra chưa có file path tạo file Pass.txt { FileStream fs; fs=new FileStream(path\_C,FileMode.Create);//Tạo file tên path StreamWriter sWriter=new StreamWriter(fs,Encoding.UTF8); for (int i = 0; i < C.Length; i++) { sWriter.WriteLine(C[i].real.ToString()); } sWriter.Flush(); fs.Close(); } } private void button4\_Click(object sender, EventArgs e) { Process.Start(path\_C); } // public static complex[] DocHeSo(string path) // { // //if (!File.Exists(path))//kiểm tra chưa có file path tạo file Pass.txt // // // // { FileStream fs; // // fs = new FileStream(path, FileMode.Create); //Tạo file tên path // // StreamWriter sWriter = new StreamWriter(fs, Encoding.UTF8); // // sWriter.WriteLine("Hello World!"); // // // // sWriter.Flush(); fs.Close(); // // } // // complex[] A; string[] lines = File.ReadAllLines(path); // // A = new complex[lines.Length]; for (int i = 0; i < lines.Length; i++) // // { // // } // //} } } A[i] = new complex(); A[i].real = float.Parse(lines[i]); return A; ... phép biến đổi Fourier Một khái niệm không tầm quan trọng phép biến đổi Fourier biến đổi Fourier rời rạc (DFT) Trong toán học, biến đổi Fourier rời rạc gọi phép biến đổi Fourier hữu hạn, biến đổi. .. nhanh Hiện ngồi nước có cơng trình nghiên cứu biến đổi Fourier rời rạc, biến đổi Fourier nhanh ứng dụng thực tế hữu ích chúng Tuy nhiên cơng trình khoa học chưa tổng hợp nhiều ứng dụng biến đổi. .. nhiều ứng dụng biến đổi Fourier rời rạc, biến đổi Fourier nhanh sơ cấp thực tế có cịn hạn chế Vì việc nghiên cứu, tổng hợp ứng dụng phép biến đổi Fourier rời rạc, Fourier nhanh cách rõ ràng, hệ

Ngày đăng: 21/05/2021, 21:57

Tài liệu cùng người dùng

Tài liệu liên quan