Bài dịch môn thuật toán nâng cao đa thức và FFT (polynomials and the FFT)

23 802 0
Bài dịch môn thuật toán nâng cao đa thức và FFT (polynomials and the FFT)

Đ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

Nhóm Môn học: Thuật toán nâng cao Đề tài 4: Đa thức FFT (Polynomials and the FFT) GVHD: TS Phạm Văn Cường Học viên: Lộc Minh Tùng Bùi Quang Hạnh Nguyễn Anh Tuấn Nguyễn Văn Tùng Phạm Đình Cường Phạm Văn Đạt Phương pháp đơn giản việc thêm hai đa thức bậc n có (n) lần Nhưng phương pháp đơn giản việc nhân chúng lên (n2) lần Trong chương này, cho thấy làm nhanh chóng biến đổi Fourier, FFT, giảm thời gian để nhân đa thức tới (nlgn) Việc sử dụng phổ biến cho biến đổi Fourier, FFT, tín hiệu xử lý Một tín hiệu đưa miền thời gian: chức đồ thời gian để độ lớn Phân tích Fourier cho phép thể tín hiệu tổng trọng số giai đoạn chuyển sang tần số khác Trọng lượng giai đoạn kết hợp với tần số đặc trưng tín hiệu miền tần số Trong số ứng dụng hàng ngày FFT kỹ thuật nén sử dụng để mã hóa thông tin âm video kỹ thuật số, bao gồm tập tin MP3 Một số sách tốt sâu vào khu vực giàu xử lý tín hiệu; chương lưu ý tham khảo vài số họ Đa thức Một đa thức theo biến x lĩnh vực đại số F đại diện hàm A(x) dạng tổng quát Chúng ta gọi giá trị a0; a1; …; an-1 hệ số đa thức Các hệ số rút từ lĩnh vực F, thường C tập hợp số phức tạp Một đa thức A (x) có độ k hệ số khác không cao a k Chúng ta viết mức độ (A) = k Bất kỳ số nguyên lớn mức độ đa thức mức độ bị ràng buộc đa thức Vì vậy, mức độ đa thức bậc n ràng buộc số nguyên n -1, Bao gồm Chúng ta xác định loạt hoạt động đa thức Bổ sung đa thức, A(x) B (x) đa thức mức độ ràng buộc n, tổng chúng đa thức C(x), mức độ ràng buộc n, C(x) = A(x) + B(x) với x trường Nghĩa là, nếu: Khi cj = aj + bj, j= 0, 1, …, n-1 Ví dụ, có đa thức A (x) = 6x3 + 7x2 – 10x + B (x) = -2x3 + 4x – sau C(x) = 4x3 + 7x2 – 6x + Cho phép nhân đa thức, A(x) B(x) đa thức mức độ giới hạn n, sản phẩm C(x) đa thức mức độ 2n-1 mà C(x) = A(x)B(x) với x lĩnh vực Bạn có nhân đa thức trước, cách nhân phần tử A(x) với phần tử B(x) sau kết hợp lại Ví dụ nhân A(x) = 6x3 + 7x2 – 10x + B(x) = -2x3 + 4x – sau: Một cách khác để thể sản phẩm C(x) là: Chú ý thằng bậc(C) = bậc(A) + bậc(B), ngụ ý A đa thức bậc ràng buộc na B đa thức bậc ràng buộc nb, C đa thức bậc ràng buộc n a + nb – Kể từ đa thức bậc k bị ràng buộc đa thức bậc ràng buộc k + thường nói sản phẩm đa thức C đa thức bậc ràng buộc na + nb Phác thảo chương Đoạn 30.1 trình bày hai cách để diễn tả đa thức: Biểu diễn hệ số điểm giá trị Các phương pháp đơn giản cho việc nhân đa thức - phương trình (30.1) (30.2) – (n2) thời gian đa thức trình bày dạng hệ số, (n) thời gian đại diện cho dạng điểm giá trị Chúng ta có thể, nhiên, nhân đa thức cách sử dụng hệ số đại diện (nlgn) thời gian cách chuyển đổi hai đại diện Để xem lý phương pháp hoạt động, phải học phức tạp đồng nhất, mà làm mục 30.2 Sau đó, sử dụng FFT nghịch đảo nó, mô tả mục 30.2, thực chuyển đổi Phần 30.3 cho thấy cách thực FFT nhanh chóng hai mô hình nối tiếp song song Chương sử dụng số phức rộng rãi, chương sử dụng ký tự i dành riêng để biểu thị 30.1 Đại diện cho đa thức Hệ số điểm có giá trị đại diện đa thức ý nghĩa tương đương; là, đa thức dạng giá trị điểm có đối tác dạng hợp tác hiệu Trong phần này, giới thiệu hai đại diện hiển thị để kết hợp chúng để nhân hai mức độ ràng buộc n đa thức (n lg n) lần Đại diện hệ số Một đại diện hệ số đa thức A(x) = ajxj mức độ ràng buộc vector hệ số a = (a 0, a1, … , an-1 ) Trong phương trình ma trận chương này; thường coi vector vector cột Đại diện hệ số thuận tiện cho hoạt động định đa thức Ví dụ, hoạt động đánh giá đa thức A(x) điểm định x bao gồm tính toán giá trị A(x0) Chúng ta đánh giá đa thức (n) lần sử dụng luật Horner: A(x0) = a0 + x0 (a1+ x0 (a2 + … + x0 (an-2 + x0 (an-1)) …)) Tương tự vậy, thêm hai đa thức đại diện vector hệ số a = (a0, a1, …, an-1) b = (b0, b1, …, bn-1) lần: Chúng sản xuất vector hệ số c = (c 0, c1, …, cn-1), nơi cj = aj + bj cho j = 0, 1, …, n-1 Bây giờ, hay xem xét nhân hai mức độ ràng buộc n đa thức A(x) B(x) thể dạng hệ số Nếu sử dụng phương pháp mô tả phương trình (30.1) (30.2), multiplying polynomials takes time (n2), kể từ phải nhân hệ số vector a hệ số vector b Hoạt động nhân đa thức dạng hệ số dường khó khăn so với đánh giá đa thức thêm hai đa thức Kết hệ số vector c, đưa phương trình (30.2), gọi chập vector đầu vào a b, ký hiệu c = a b Từ nhân đa thức tính toán cuộn vấn đề tính toán có tầm quan trọng thực tế đáng kể, chương tập trung vào thuật toán chúng Đại điện giá trị điểm Một đại điện giá trị điểm đa thức A(x) mức độ ràng buộc n tập hợp cặp điểm có giá trị n {(x0, y0), (x1, y1), … , (xn-1, yn-1) } mà tất xk khác biệt yk = A (xk) cho k = 0, 1, … , n-1 Một đa thức có nhiều đại diện giá trị điểm khác kể từ sử dụng tập hợp điểm khác biệt n, x0, x1, … , xn-1 làm sở cho đại diện Tính toán đại diện giá trị điểm cho cho đa thức đưa dạng hệ số nguyên tắc đơn giản, tất phải làm chọn n điểm riêng x 0, x1, … , nn-1 sau đánh giá A(xk) cho k = 0, 1, … , n-1 Với phương pháp Horner, đánh giá đa thức n điểm cần thời gian (n2) Chúng ta thấy sau chọn điểm x k khéo léo, tăng tốc tính toán để chạy thời gian (n lgn) Nghịch đảo đánh giá – xác định dạng hệ số đa thức từ đại diện giá trị điểm – phép nội suy Định lý sau cho thấy phép nội suy xác định rõ trình nội suy đa thức phải có đối tượng bị ràng buộc với số lượng định cặp điểm giá trị Định lý 30.1 (duy đa thức nội suy) Đối với {(x0, y0), (x1, y1), … , (xn-1, yn-1) } n cặp điểm giá trị mà tất giá trị xk khác biệt, có đa thức A(x) mức độ ràng buộc n cho yk = A(xk) cho k = 0, 1, … , n-1 Chứng minh: Các chứng minh dựa tồn nghịch đảo ma trận định Phương trình (30.3) tương đương với phương trình ma trận Ma trận bên trái ký hiệu V (x0, x1, … , nn-1) biết đến ma trận Vandermonde Bởi toán D-1, ma trận có yếu tố định Π (xk – xj) 0≤j=0, k>=0 d>0, wdndk = wnk Hệ 30.4 với n>0 wnn/2 = w2 = -1 Bổ đề 30.5(Giảm nửa) Nếu n>0 diện tích n complex nth roots of unity n/2 complex (n/2)th roots of unity Bổ đề 30.6(Tổng kết) DFT (Phép biến đổi Fourier rời rạc) n −1 Nhớ lại ta muốn tính giá trị đa thức A(x) = ∑ a j x j j= Với bậc ràng buộc n ωn0, ωn1, …, ωnn-1 (tại n phức bậc n 1) Với A đưa dạng hệ số: a = (a0, a1, …, an-1) Chúng ta định nghĩa kết Yk với k=0,1,…,n-1 sau: n −1 y k = A(ω kn ) = ∑ a jω kjn j= Vector y = (y0, y1, …, yn-1) gọi biến đổi Fourier rời rạc (DFT) vector hệ số a = (a 0, a1, …, an-1) Ta viết y = DFTn(a) FFT (Phép biến đổi Fourier rời rạc nhanh) Sử dụng phương pháp gọi phép biến đổi Fourier rời rạc nhanh (FFT)- phép biến đổi lợi dụng tính chất đặc biệt phức – ta tính DFT n(a) với độ phức tạp thời gian Θ(n lg n) tính toán theo cách đõn giản độ phức tạp thời gian Θ(n2) Từ trước đến n cho số lũy thừa Mặc dù có chiến thuật để giải với n số lũy thừa không nằm phạm vi sách Phương pháp FFT sử dụng chiến thuật chia để trị cách chia tách riêng hệ số số chẵn hệ số có số lẻ A(x) thành đa thức A [0](x) A[1](x) với bậc ràng buộc n/2 : A[0](x) = a0 + a2x + a4x2 + … + an-2xn/2-1 A[1](x) = a1 + a3x + a5x2 + … + an-1xn/2-1 Để ý A[0](x) gồm tất hệ số số chẵn A (biểu diễn nhị phân số có kết thúc 0) A [1](x) gồm tất các hệ số số lẻ (biểu diễn nhị phân số kết thúc số 1) Từ ta có: A(x) = A[0](x2) + x⋅A[1](x2) (30.9) Và việc tính giá trị A(x) ωn0, ωn1, …, ωnn-1 giảm xuống thành: Tính giá trị đa thức có bậc ràng buộc n/2 A[0](x) A[1](x) (ωn0)2, (ωn1)2, …, (ωnn-1)2 (30.10) Sau Hợp kết lại theo phương trình (30.9) Theo bổ đề chia đôi, chuỗi (30.10) không gồm n giá trị phân biệt mà gồm n/2 phức bậc n/2 với phức xuất lần Vì vậy, ta tính cách đệ quy đa thức A[0](x) A[1](x) có bậc ràng buộc n/2 n/2 phức bậc n/2 Các toán đồng dạng (tương tự) với toán ban đầu kích cỡ nửa so với ban đầu Giờ ta thành công chia việc tính DFT n với n phần tử thành tính DFTn/2 với n/2 phần tử Việc chia tách vấn đề thuật toán đệ quy FFT sau để tính DFT vector có n phần tử a = (a0, a1, …, an-1) n số lũy thừa Recursive-FFT(a) n = a.length if n ==1 //n lũy thừa return a ωn = e2πi/n ω=1 a[0] = (a0, a2, …, an-2) a[1] = (a1, a3, …, an-1) y[0] = Recursive-FFT(a[0]) y[1] = Recursive-FFT(a[1]) 10 for k = to n/2 – 11 yk = yk[0] + ω yk[1] 12 yk+(n/2) = yk[0] - ω yk[1] 13 ω = ω⋅ωn Thủ tục RECURSIVE – FFT thực sau: 14 2-3return y khởi đầu //Giả có vector cộttử phần tử Vì Dòng thực đệđịnh quy;yDFT phần trường hợp này: y0 = a0ω10 = a0 ⋅ = a0 Vậy: y = (y0) = (a0) = a Dòng 6-7 định nghĩa vector hệ số A[0] A[1] Dòng 4,5,13 đảm bảo ω cập nhật đắn cho dòng 11-12 thực ta có ω= ωnk Dòng - thực tính DFTn/2 đệ quy với k = 0, …, n/2 – 1: y[0]k = A[0](ωn/2k) y[1]k = A[1](ωn/2k)1 Vì ωn/2k = ωn2k theo bổ đề giản ước nên: y[0]k = A[0](ωn2k); y[1]k = A[1](ωn2k) Dòng 11-12 tổng hợp kết việc tính đệ quy DFTn/2 Với y0, y1, …, yn/2-1 dòng 11 cho yk = yk[0] + ωnk yk[1] = A[0](ωn2k) + ωnk A[1](ωn2k) = A(ωnk) Với yn/2, yn/2+1, …, yn-1 k=0,1 …,n/2-1 dòng 12 cho ra: yk+(n/2) = yk[0] – ωnk yk[1] = yk[0] + ωnk+(n/2) yk[1] = A[0](ωn2k) + ωnk+(n/2) A[1](ωn2k) = A[0](ωn2k+n) + ωnk+(n/2) A[1](ωn2k+n) = A(ωnk+(n/2)) Vậy vector y trả Recursive-FFT thực DFT vector đầu vào a Dòng 11 12 nhân giá trị y k[1] với ωnk k = 0, 1, …, n/2-1 Vì ωnk sử dụng dạng dấu dương dấu âm tương ứng dòng 11, 12 nên ωnk gọi yếu tố quay vòng Để xác định thời gian chạy thủ tục RECURSIVE-FFT, ta ý lời gọi đệ quy yêu cầu cần thời gian Θ(n), n độ dài vector đầu vào Do thời gian chạy là: T(n) = 2T(n/2) + Θ(n) = Θ(n lg n) Như ta tính đa thức với bậc ràng buộc n phức bậc n với thời gian Θ(n lg n) phép biến đổi Fourier nhanh 30.2 Các DFT FFT Các (k,j) đầu vào Vn thành bảng nhân cho j,k = 0,1 ,…., n-1 Các Số mũ đầu vào V n tạo Đối với hoạt động nghịch đảo, mà viết α = hành phép nhân y ma trận (y) , tiến , nghịch đảo Vn Định lý 30.7 Cho j,k = 0,1 ,…., n-1 , Các (j,k) đầu vào Bằng chứng , Chúng ta thấy đầu vào /n Vn=ln , dạng ma trân n x n xem xét (j ,j ,) Vn: Tổng j = j , , cách khác cách bổ đề phép cộng (Lemma30.6) Lưu ý dựa –(n-1) ≤ j ,- j ≤ n-1 , để j,- j không chia hết cho n , để dùng cho bổ đề ứng dụng đem vào tính tổng Với ma trận nghịch đảo , có (y) cho : Cho j,k = 0,1 ,…., n-1 Bằng cách so sánh phương trình (30.8) (30.11) , thấy cách thay đổi thuật toán FFT để chuyển đổi vai trò α y , thay ω n , phân chia phần tử kết n, tính toán DFT ngược (xem tập 30,2-4) Do đó, tính toán Θ(n lg n) thời gian tốt Chúng ta thấy , cách sử dụng FFT FFT ngược , chuyển đổi đa thức bậc n-ràng buộc qua lại đại diện hệ số đại diện giá trị điểm thời gian Θ(n lg n) Trong bối cảnh nhân đa thức, trình bày thể Định Lý 30.8 (Định ly phép nhân chập) Đối với hai vectors a b có độ dài n , n lũy thừa , nơi vectors a b đệm số đến chiều dài 2n , có nghĩa tích số theo thành phần vectors 2n phần tử Bài tập 30.2-1 Chứng minh Hệ 30.4 30.2-2 Tính toán DFT vector (0,1,2,3) 30.2-3 Làm tập 30.1-1 sử dụng chương trình thời gian Θ(n lg n) 30.2-5 Mô tả tổng quát thủ tục FFT để trường hợp n lũy thừa Cho hồi quy thời gian chạy, giải hồi quy 30.2-6 Giả sử thay thực phần tử n FFT lĩnh vực phức tạp số (ngay n nhau) , sử dụng vòng tròn Z m số nguyên modul m , m = 2tn/2 + t số nguyên dương tùy ý Sử dụng ω = t thay ωn gốc thứ n phần tử đơn vị , theo modul m Chứng minh DFT DFT ngược xác định rõ hệ thống 30.2-7 Cho Danh sách giá trị Z , Z1 , … , ZN-1 (có thể với lặp lại) , làm để tìm hệ số đa thức P (x) mức độ ràng buộc n + có số không với Z0 , Z1 , … , ZN-1 (có thể với lặp lại) Thủ tục bạn nên chạy thời gian O(n lg2 n) (Gợi ý: Các đa thức P(x) có số không Z j P(x) bội số (xZj) ) 30.2-8 Tiếng kêu biến đổi vector α = (α , α1 , …., αn-1) vector у = (y0 , y1 , …, yn-1) , yk = j zkj z số phức Do DFT trường hợp đặc biệt lời kêu biến đổi , thu cách Z = ω n làm để đánh giá kêu biến đổi thời gian O(n lg2 n) cho số phức "(Gợi ý: Sử dụng phương trình để xem biến đổi kêu chập.) 30.3 triển khai FFT hiệu Kể từ ứng dụng thực tế DFT , chẳng hạn xử lý tín hiệu, yêu cầu tốc độ tối đa, phần xem xét hai triển khai thực FFT hiệu Đầu tiên, xem xét phiên thuật toán FFT chạy lặp lặp lại thời gian Θ(n lg n) có ẩn liên tục thấp ký hiệu Θ phiên có chữ thảo mục 30.2 (Tùy thuộc vào việc thực xác, phiên đệ quy sử dụng nhớ cache phần cứng hiệu hơn.) Sau đó, sử dụng hiểu biết dẫn để thực lặp lặp lại để thiết kế mạch FFT song song hiệu Lặp lặp lại thực FFT Trước tiên lưu ý cho vòng lặp dòng 10-13 đệ quy-FFT liên quan đến việc tính toán giá trị gấp đôi Trong thuật ngữ máy tính, gọi giá trị subexpression Chúng thay đổi vòng lặp để tính toán lần, lưu trữ biến t tạm thời Hoạt động vòng lặp này, nhân tố quay vòng ω = vào t, cộng trừ t từ , lưu trữ sản phẩm , biết đến hoạt động thể sơ đồ hình 30.3 Bây thấy làm để thực thuật toán FFT lặp lặp lại đệ quy cấu trúc Trong sơ đồ 30.4 , xếp vector đầu vào cho gọi đệ quy lời gọi Đệ quy-FFT cấu trúc cây, nơi mà gọi ban đầu dành cho n=8 Cây có nút cho gọi thủ tục, có nhãn Hình 30.3 hoạt động (a) Hai giá trị đầu vào nhập từ cánh trái , yếu tố quay vòng nhân , lấy tổng khác biệt đầu bên phải (b) Một vẽ đơn giản hoạt động Chúng sử dụng đại diện mạch FFT song song Hình 30.4 Cây vectơ đầu vào cho gọi đệ quy biện pháp Đệ quy-FFT Khởi tạo ban đầu với n = Bởi vector đầu vào tương ứng Mỗi Đệ quy -FFT gọi làm cho hai gọi đệ quy, trừ nhận vector phần tử Cuộc gọi xuất đứa trái, gọi thứ hai xuất đứa phải Nhìn vào cây, nhận thấy xếp phần tử vector ban đầu vào thứ tự mà chúng xuất , theo dõi việc thực thủ tục Đệ quy-FFT, từ lên thay từ xuống Đầu tiên, có yếu tố cặp, tính toán DFT cặp sử dụng hoạt động butterfly, thay ghép cặp với DFT Tiếp theo, có n / DFTs theo cặp tính toán DFT bốn yếu tố vector họ đến từ cách thực hai hoạt động butterfly , thay hai DFTs phần tử với yếu tố DFT Vector sau giữ n / DFTs yếu tố Chúng tiếp tục theo cách vector giữ hai (n /2) DFTs phần tử, mà sử dụng kết hợp n / hoạt động butterfly vào n phần tử kết thúc DFT Để biến phương pháp tiếp cận từ lên mã, sử dụng mảng A[0 , , …., n-1 ] mà ban đầu nắm giữ phần tử vector đầu vào thứ tự mà chúng xuất Trong hình 30.4 (Chúng ta thấy sau làm để xác định điều trật tự, biết đến bit-đảo ngược hoán vị.) Vì kết hợp DFTs cấp độ cây, giới thiệu biến s để tính mức khác nhau, từ (ở cùng, kết hợp để tạo thành cặp DFTs phần tử) để lg n (ở đầu, kết hợp hai (n/2) đơn vị DFTs để có kết cuối cùng) Do thuật toán có cấu sau: Chúng ta thể thân vòng lặp (dòng 3) giả xác Chúng ta chép vòn g lặp for từ thủ tục RECURSIVE-FFT, xác định + – 1] với A[k + k + với A[k…k ] Các quay vòng FAC-tor sử dụng hoạt động bướm phụ thuộc vào giá trị s; sức mạnh , m = (Chúng ta giới thiệu biến m lợi ích khả đọc) Chúng giới thiệu biến u tạm thời cho phép thực butterfly hoạt động chỗ Khi thay dòng cấu trúc tổng thể vòng lặp thể, nhận giả sau đây, hình thành sở thực thi song song trình bày sau Mã gọi thủ tục phụ trợ BIT-REVERSE-COPY (a, A) để chép vector a vào mảng A theo thứ tự ban đầu mà cần giá trị Làm để BIT-REVERSE-COPY nhận phần tử đầu vào vector a mảng A mục đích chứng mính ví dụ 30.4 bit-reversal hoán vị Đó để rev(s) lg n-bit số nguyên để trả lại bit hiển thị nhị phân k, sau muốn thay phần tử véc tơ vị trí mảng A[rev(k)] Trong chứng minh 30.4 ví dụ xuất theo thứ tự 0, 4, 2, 6, 1, 5, 3, 7, trình tự hệ nhị phân 000, 100, 010, 110, 001, 101, 011, 111, đảo ngược bit giá trị có chuỗi 000, 001, 010, 011, 100, 101, 110, 111 Để thấy muốn có bit-đảo ngược hoán vị nói chung, lưu ý cấp cao cây, số có chút tự thấp vào trái số có thứ tự thấp bit vào Tước bit thứ tự thấp cấp, chúng con-tinue trình xuống cây, nhận để đưa bit-đảo ngược hoán vị Vì dễ dàng tính toán chức rev(k), BIT-REVERSE-COPY ủng hộ cedure đơn giản: Lặp lặp lại FFT thực chạy thời gian, N lg (n) Các gọi đến BITREVERSE-COPY(a, A) chắn chạy O(n, lg n ) lần, kể từ lặp n lần đảo ngược số nguyên n- 1, với lg n bit, O(lg n) lần (Trong thực tế, thường biết giá trị ban đầu n trước, mã bảng vẽ đồ k đến rev (k ), tạo BIT- REVERSE -COPY chạy O(n) lần với số ẩn thấp Ngoài ra, sử dụng amor-thông minh ngược lại chương trình truy cập nhị phân mô tả vấn đề 17-1.) Để hoàn thiện chứng cho thấy lặp lặp lại-FFT chạy thời gian O (n lg n ), thấy L(n), số lần thể vòng lặp (dòng 8-13) thực hiện, O(n lg n ) Vòng lặp for dòng 6-13 lặp n/m = n/ 2s lần cho giá trị s, and the vòng dòng 8-13 lặp m/2 = lần đó, Hình 30.5: Một mạch để tính toán FFT song song, hiển thị n = đầu vào Mỗi hoạt động bướm đầu vào giá trị hai dây, với yếu tố quay vòng, tạo kết đầu giá trị hai dây Các giai đoạn bướm dán nhãn tương ứng với lần lặp lại vòng lặp thủ tục lặp lặp lại-FFT Chỉ dây qua thông qua bướm tương tác với nó; dây qua bướm không ảnh hưởng đến butterfly, giá trị họ thay đổi butterfly Ví dụ, butterfly giai đoạn để làm với dây (dây mà đầu dán nhãn y1), đầu vào đầu dây (nhãn y0 y2, tương ứng) Mạch có chiều sâu O(Lg n ) thực hiện, O(n Lg n ) butterfly hoạt động hoàn toàn Một mạch FFT song song: Chúng ta khai thác nhiều tính mà cho phép thực hiệu lặp lặp lại thuật toán FFT để sản xuất thuật toán song song hiệu cho FFT Chúng thể thuật toán FFT song song mạch Hình 30.5 cho thấy song song FFT mạch, mà tính FFT n đầu vào, cho n D Mạch bắt đầu với hoán vị bit-đảo ngược yếu tố đầu vào, LG n giai đoạn, giai đoạn bao gồm n = bướm thực song song Độ sâu mạch số lượng tối đa yếu tố tính toán đầu đầu vào mà tiếp cận nó-là O(lg n) Phần bên trái FFT mạch song song thực permuta-bit-đảo ngược hóa, phần lại bắt chước lặp lặp lại quy trình lặp lặp lại-FFT lần lặp vòng lặp để thực n= độc lập bướm thực hiên , mạch thực chúng song song Giá trị s lần lặp Iterative-FFT tương ứng với giai đoạn bướm thể hình 30,5 Cho s D1, 2; :::; lg n, giai đoạn s bao gồm n = 2s nhóm loài bướm (tương ứng với giá trị k Iterative-FFT), với 2s bướm cho nhóm (tương ứng với giá trị j Iterative-FFT) Những butterfly thể hình 30,5 hoạt động butterfly vòng lặp (dòng 9-12 Iterative - FFT) Cũng lưu ý yếu tố quay vòng sử dụng butterfly tương ứng sử dụng Iterative- FFT: giai đoạn s, sử dụng m= Bài tập 30.3-1 Chỉ cách Iterative-FFT tính toán DFT vector đầu vào (0, 2, 3, -1, 4; 5, 7, 9) 30.3-2 Chỉ làm để thực thuật toán FFT với bit-đảo ngược hoán vị xảy ra-vòng cuối cùng, từ đầu, tính toán (Gợi ý: Hãy xem xét DFT ngược.) 30.3-3 Bao nhiêu lần Iterative-FFT tính toán yếu tố quay vòng giai đoạn? Viết lại Iterative-FFT để tính toán yếu tố quay vòng 2s 1? thời gian giai đoạn s 30.3-4 Giả sử hoạt động butterfly mạch FFT số lần thất bại cách mà họ luôn sản xuất sản lượng không, độc lập đầu vào họ Giả sử cộng thất bại, bạn mà Mô tả cách bạn xác định cộng không cách cung cấp đầu vào chomạch FFT tổng thể quan sát kết đầu Làm hiệu phương pháp bạn? Các vấn đề 30-1 a Chia-và-chinh phục nhân Thấy làm để nhân hai đa thức tuyến tính ax+b cx+d sử dụng ba phép nhân (Gợi ý: Một phép nhân (a+b).(c+d) b Cho hai thuật toán phân chia-và-chinh phục cho nhân hai đa thức mức độ ràng buộc n O( ) lần Các thuật toán phải chia đầu vào hệ số đa thức thành nửa cao nửa thấp, thuật toán thứ hai nên phân chia chúng theo dù số họ lẻ chí c Cho thấy làm để nhân hai số nguyên n-bit Onlg bước, bước hoạt động nhiều số giá trị 1- bit 30-2 Toeplitz ma trận Một ma trận Toeplitz ma trận có kích thước nxn A=( a ij) aij=ai-1,j-1 với i= 1,2 …n j = 2,3,…n a Tổng hai ma trận Toeplitz ma trận Toeplitz? Kết gì? b Mô tả cách biểu diễn cho ma trận Toeplitz để bạn thêm hai ma trận Toeplitz kích thước nxn O(n) thời gian c Đưa giải thuật O(nlgn) thời gian cho trình nhân ma trận Toeplitz nxn vector độ dài n Sử dụng cho miêu tả từ phần (b) d Đưa thuật toán hiệu để nhân hai ma trận Toeplitz nxn Phân tích thời gian hoạt động 30-3 Biến đổi Fourier đa chiều Chúng ta khái quát hóa phép biến đổi Fourier 1- chiều rời rạc xác định phương trình (30.8) thành d-chiều Đầu vào mảng d – chiều A = (a j1, aj2, ajd) mà kích thước n1, n2, …, nd n1n2…nd = n Chúng ta xác định phép biến đổi Fourier rời rạc d – chiều biểu thức a Chúng ta tính toán DFT d-chiều cách tính DFTs 1- chiều chiều Có nghĩa là, trước tiên tính riêng n/n1 DFTs 1- chiều với chiều Sau đó, sử dụng kết DFTs với chiều đầu vào, tính toán riêng n/n2 DFTs 1-chiều với chiều Sử dụng kết đầu vào, tính toán riêng n/n3 DFTs 1- chiều với chiều 3, vậy, thông qua kích thước d b Cho thấy đặt kích thước không quan trọng, để tính toán DFT d chiều cách tính toán DFTs chiều thứ tự kích thước d c Cho thấy tính toán DFT - chiều cách tính toán biến đổi Fourier nhanh, tổng số thời gian để tính toán DFT d - chiều Bật O(nlgn), độc lập với d 30-4 Đánh giá tất dẫn xuất đa thức điểm Cho đa thức A(x) với mức độ ràng buộc n, định nghĩa phái sinh t th công thức: Từ hệ số (a0,a1, ,an-1) A(x) điểm cho trước x0, ta xác định a Với hệ số b0,b1,…,bn-1 vây Biểu diễn cách tính Trong thời gian O(n) b Diễn dải cách tìm số b0,b1,…,bn-1 thời gian O(nlgn), đưa biểu thức Với k=0,1,…,n – c Chứng minh d Đánh giá Với k =0,1,…,n – thời gian O(nlgn) Kết luận đánh giá hết giá trị dẫn xuất không tầm thường A(x) x0 thời gian O(nlgn) 30-5 Đánh giá đa thức nhiều điểm Chúng ta thấy cách đánh giá đa thức bậc n-ràng buộc điểm O(n) thời gian sử dụng quy tắc Horner Chúng tìm cách để đánh giá đa thức phức bậc O(nlgn) thời gian sử dụng FFT Chúng thấy làm để đánh giá đa thức ràng buộc n n điểm tùy ý thời gian O(nlgn) Để làm vậy, tính toán phần lại đa thức đa thức chia cho đa thức khác O(nlgn) thời gian, kết không cần phải chứng minh Ví dụ, phần lại (3x3+x2 - 3x+1) chia cho biểu thức (x2+x+1) Đưa cách biểu diễn hệ số đa thức Và n điểm x0, x1, …,xn-1, mong muốn tính n giá trị A(x0), A(x1), …, A(xn-1) với Xác đinh đa thức : Và Lưu ý có mức độ nhiều j-1 a Chứng minh với Z b Chứng minh c Chứng minh và Với d Đưa thời gian cho giải thuật O(nlg2n) để đánh giá A(x0), A(x1), …, A(xn-1) 30-6 FFT sử dụng số học modula Theo định nghĩa, biến đổi rời rạc Fourier đòi hỏi phải tính toán phức tạp với số, mà dẫn đến không xác lỗi làm tròn Đối với số vấn đề, câu trả lời biết đến có chứa số nguyên, cách sử dụng biến thể FFT dựa số học mô-đun, đảm bảo câu trả lời tính xác Một ví dụ vấn đề nhân hai đa thức với hệ số nguyên VD 30.2-6 cho cách tiếp cận, sử dụng mô đun chiều dài bit để xử lý DFT n điểm Vấn đề cho cách tiếp cận khác, sử dụng mô đun độ dài hợp lý O(lg n), đòi hỏi bạn hiểu tài liệu Chương 31 Cho n sức mạnh a.Giả sử tìm kiếm giá trị k nhỏ cho p = kn + số nguyên tố Cho lập luận theo kinh nghiệm đơn giản mong đợi k lnn (Giá trị k lớn nhiều nhỏ hơn, mong đợi cách hợp lý để kiểm tra O(lg n) ứng cử viên giá trị k trung bình.) Làm để dự kiến chiều dài p so sánh với chiều dài n? Cho g tập sinh w = gk mod p b Cho DFT DFT ngược xác định modulo p ngược, w sử dụng gốc thứ n hiệp c Thấy làm để làm cho FFT làm việc nghịch đảo theo modulo p thời gian O(lgn), nơi toán tử từ O(lgn) bit có đơn vị thời gian Giả định thuật toán đưa p w d Tính toán DFT theo modulo p = 17 vector (0, 5, 3, 7, 7, 2, 1, 6) Lưu ý g = tập sinh Ghi chương Sách Van Loan [343] cung cấp cách giải tồn trình biến đổi nhanh Fourier Bài báoTeukolsky, Vetterling, Flannery [283, 284] có mô tả tốt biến đổi Fourier nhanh ứng dụng Với giới thiệu thông minh trình xử lý tín hiệu, ứng dụng phổ biến FFT, xem văn Oppenheim Schafer [266] Oppenheim andWillsky [267] Sách Oppenheim Schafer cho thấy làm để xử lý trường hợp n sức mạnh nguyên Phép phân tích Fourier không giới hạn liệu chiều Nó sử dụng rộng rãi xử lý ảnh phân tích liệu nhiều chiều Cuốn sách Gonzalez Woods [146] Pratt [281] thảo luận biến đổi Fourier đa chiều sử dụng xử lý ảnh, sách Tolimieri, An, Lu [338] Van Loan [343] thảo luận toán học biến đổi Fourier đa chiều nhanh Cooley Tukey [76] ghi nhận rộng rãi với việc đưa FFT năm 1960 FFT thực tế phát nhiều lần trước đây, tầm quan trọng không thực đầy đủ trước đời máy tính kỹ thuật số đại Mặc dù báo chí, Teukolsky, Vetterling, Flannery thuộc tính nguồn gốc phương pháp Runge K ¨ onig năm 1924, viết Heideman, Johnson, Burrus [163] dấu vết lịch sử FFT xa trở lại CF Gauss vào năm 1805 Frigo Johnson [117] phát triển thực nhanh chóng linh hoạt FFT, gọi FFTW ("biến đổi Fourier nhanh theWest") FFTW thiết kế cho tình đòi hỏi nhiều tính toán DFT kích thước vấn đề trước tính toán DFTs, FFTW thực "kế hoạch", đó, loạt chạy thử nghiệm, xác định cách tốt để loại bỏ tính toán FFT cho kích thước máy chủ FFTW thích nghi để sử dụng nhớ cache phần cứng hiệu quả, toán đủ nhỏ, FFTW giải chúng với tối ưu hóa, mở đường thẳng Hơn nữa, FFTW có lợi tuyệt vời nói O(nlgn) thời gian cho kích vấn đề kích thước n, n số nguyên tố lớn Mặc dù tiêu chuẩn biến đổi Fourier cho đầu vào đại diện cho điểm thống cách miền thời gian, kỹ thuật khác xấp xỉ FFT "nonequispaced" liệu Bài báo Ware[348] cung cấp nhìn tổng quan [...]... Thấy làm thế nào để nhân hai đa thức tuyến tính ax+b và cx+d chỉ sử dụng ba phép nhân (Gợi ý: Một trong những phép nhân là (a+b).(c+d) b Cho hai thuật toán phân chia -và- chinh phục cho nhân hai đa thức của mức độ ràng buộc n trong O( ) lần Các thuật toán đầu tiên phải chia đầu vào hệ số đa thức thành một nửa cao và nửa thấp, và các thuật toán thứ hai nên phân chia chúng theo dù chỉ số của họ là lẻ hoặc... đầu vào và đầu ra của nó là chỉ trên dây 0 và 2 (nhãn y0 và y2, tương ứng) Mạch này có chiều sâu O(Lg n ) và thực hiện, O(n Lg n ) butterfly hoạt động hoàn toàn Một mạch FFT song song: Chúng ta có thể khai thác rất nhiều các tính năng mà cho phép chúng tôi thực hiện một hiệu quả lặp đi lặp lại thuật toán FFT để sản xuất một thuật toán song song hiệu quả cho FFT Chúng tôi sẽ thể hiện thuật toán FFT song... phương trình (30.8) và (30.11) , chúng ta thấy rằng bằng cách thay đổi các thuật toán FFT để chuyển đổi vai trò của α và y , thay thế ω n bởi , và phân chia mỗi phần tử kết quả của n, chúng ta tính toán DFT ngược (xem bài tập 30,2-4) Do đó, chúng ta có thể tính toán trong Θ(n lg n) thời gian là tốt Chúng ta thấy rằng , bằng cách sử dụng FFT và FFT ngược , chúng ta có thể chuyển đổi một đa thức bậc n-ràng... một đa thức căn phức bậc của 1 trong O(nlgn) thời gian sử dụng FFT Chúng tôi bây giờ sẽ thấy làm thế nào để đánh giá một đa thức ràng buộc n ở n điểm tùy ý trong thời gian O(nlgn) Để làm như vậy, chúng ta có thể tính toán phần còn lại đa thức khi một đa thức chia cho một đa thức khác trong O(nlgn) thời gian, kết quả không cần phải chứng minh Ví dụ, phần còn lại của (3x3+x2 - 3x+1) khi chia cho biểu thức. .. liệu trong 2 hoặc nhiều chiều Cuốn sách của Gonzalez và Woods [146] và Pratt [281] thảo luận biến đổi Fourier đa chiều và sử dụng trong xử lý ảnh, và sách của Tolimieri, An, và Lu [338] và Van Loan [343] thảo luận về toán học về biến đổi Fourier đa chiều nhanh Cooley và Tukey [76] được ghi nhận rộng rãi với việc đưa ra các FFT trong những năm 1960 FFT trong thực tế đã phát hiện ra nhiều lần trước đây,... kỹ thuật số hiện đại Mặc dù báo chí, Teukolsky, Vetterling, và Flannery thuộc tính nguồn gốc của phương pháp Runge và K ¨ onig trong năm 1924, một bài viết của Heideman, Johnson, và Burrus [163] các dấu vết lịch sử của FFT như xa trở lại như CF Gauss vào năm 1805 Frigo và Johnson [117] đã phát triển một thực hiện nhanh chóng và linh hoạt của FFT, được gọi là FFTW ("biến đổi Fourier nhanh nhất trong theWest")... nhất trong theWest") FFTW được thiết kế cho tình huống đòi hỏi nhiều tính toán DFT và kích thước cùng một vấn đề trước sự tính toán DFTs, FFTW thực hiện một "kế hoạch", trong đó, bằng một loạt các chạy thử nghiệm, xác định cách tốt nhất để loại bỏ các tính toán FFT cho kích thước trên máy chủ FFTW thích nghi để sử dụng bộ nhớ cache phần cứng hiệu quả, và một khi bài toán là đủ nhỏ, FFTW giải quyết chúng... ra cách biểu diễn hệ số của đa thức Và n điểm x0, x1, …,xn-1, chúng ta mong muốn tính n giá trị A(x0), A(x1), …, A(xn-1) với Xác đinh đa thức : Và Lưu ý rằng có mức độ nhiều nhất là j-1 a Chứng minh rằng với mọi Z b Chứng minh rằng c Chứng minh rằng và và Với d Đưa ra thời gian cho giải thuật O(nlg2n) để đánh giá A(x0), A(x1), …, A(xn-1) 30-6 FFT sử dụng số học modula Theo định nghĩa, biến đổi rời... Iterative -FFT) , với 2s 1 bướm cho mỗi nhóm (tương ứng với mỗi giá trị của j trong Iterative -FFT) Những butterfly thể hiện trong hình 30,5 hoạt động butterfly của vòng lặp trong cùng (dòng 9-12 Iterative - FFT) Cũng lưu ý rằng các yếu tố quay vòng được sử dụng trong những butterfly tương ứng sử dụng Iterative- FFT: trong giai đoạn s, chúng ta sử dụng tại m= Bài tập 30.3-1 Chỉ ra cách Iterative -FFT tính toán. .. cho thấy một song song FFT mạch, mà tính FFT trên n đầu vào, cho n D 8 Mạch bắt đầu với một hoán vị bit-đảo ngược của các yếu tố đầu vào, tiếp theo là LG n giai đoạn, mỗi giai đoạn bao gồm n = 2 con bướm thực hiện song song Độ sâu của mạch các số lượng tối đa các yếu tố tính toán giữa các đầu ra và đầu vào bất kỳ mà có thể tiếp cận do đó nó-là O(lg n) Phần ngoài cùng bên trái của FFT mạch song song thực ... ngụ ý A đa thức bậc ràng buộc na B đa thức bậc ràng buộc nb, C đa thức bậc ràng buộc n a + nb – Kể từ đa thức bậc k bị ràng buộc đa thức bậc ràng buộc k + thường nói sản phẩm đa thức C đa thức bậc... hiệu lặp lặp lại thuật toán FFT để sản xuất thuật toán song song hiệu cho FFT Chúng thể thuật toán FFT song song mạch Hình 30.5 cho thấy song song FFT mạch, mà tính FFT n đầu vào, cho n D Mạch... nhân đa thức dạng hệ số dường khó khăn so với đánh giá đa thức thêm hai đa thức Kết hệ số vector c, đưa phương trình (30.2), gọi chập vector đầu vào a b, ký hiệu c = a b Từ nhân đa thức tính toán

Ngày đăng: 02/03/2016, 23:32

Từ khóa liên quan

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

Tài liệu liên quan