Fast Fourier Transform (FFT)
Introduction
DFTs with a million points are common in many applications. Modern signal and image processing applications would be impossible without an efficient method for computing the DFT.
Direct application of the definition of the DFT (see Discrete Fourier Transform (DFT)) to a data vector of length n requires n multiplications and n additions—a total of 2n2 floating-point operations. This does not include the generation of the powers of the complex nth root of unity ω. To compute a million-point DFT, a computer capable of doing one multiplication and addition every microsecond requires a million seconds, or about 11.5 days.
Fast Fourier Transform (FFT) algorithms have computational complexity O(n log n) instead of O(n2). If n is a power of 2, a one-dimensional FFT of length n requires less than 3n log2 n floating-point operations (times a proportionality constant). For n = 220, that is a factor of almost 35,000 faster than 2n2.
The MATLAB® functions fft, fft2, and fftn (and their inverses ifft, ifft2, and ifftn, respectively) all use fast Fourier transform algorithms to compute the DFT.
When using FFT algorithms, a distinction is made between the window length and the transform length. The window length is the length of the input data vector. It is determined by, for example, the size of an external buffer. The transform length is the length of the output, the computed DFT. An FFT algorithm pads or chops the input to achieve the desired transform length. The following figure illustrates the two lengths.
The execution time of an FFT algorithm depends on the transform length. It is fastest when the transform length is a power of two, and almost as fast when the transform length has only small prime factors. It is typically slower for transform lengths that are prime or have large prime factors. Time differences, however, are reduced to insignificance by modern FFT algorithms such as those used in MATLAB. Adjusting the transform length for efficiency is usually unnecessary in practice.
Fast Fourier Transform (FFT)IntroductionDFTs with a million points are common in many applications. Modern signal and image processing applications would be impossible without an efficient method for computing the DFT.Direct application of the definition of the DFT (see Discrete Fourier Transform (DFT)) to a data vector of length n requires n multiplications and n additions—a total of 2n2 floating-point operations. This does not include the generation of the powers of the complex nth root of unity ω. To compute a million-point DFT, a computer capable of doing one multiplication and addition every microsecond requires a million seconds, or about 11.5 days.Fast Fourier Transform (FFT) algorithms have computational complexity O(n log n) instead of O(n2). If n is a power of 2, a one-dimensional FFT of length n requires less than 3n log2 n floating-point operations (times a proportionality constant). For n = 220, that is a factor of almost 35,000 faster than 2n2.The MATLAB® functions fft, fft2, and fftn (and their inverses ifft, ifft2, and ifftn, respectively) all use fast Fourier transform algorithms to compute the DFT.When using FFT algorithms, a distinction is made between the window length and the transform length. The window length is the length of the input data vector. It is determined by, for example, the size of an external buffer. The transform length is the length of the output, the computed DFT. An FFT algorithm pads or chops the input to achieve the desired transform length. The following figure illustrates the two lengths.The execution time of an FFT algorithm depends on the transform length. It is fastest when the transform length is a power of two, and almost as fast when the transform length has only small prime factors. It is typically slower for transform lengths that are prime or have large prime factors. Time differences, however, are reduced to insignificance by modern FFT algorithms such as those used in MATLAB. Adjusting the transform length for efficiency is usually unnecessary in practice.
การแปล กรุณารอสักครู่..
การแปลงฟูรีเยอย่างเร็ว ( FFT )
dfts เบื้องต้นกับล้านจุดที่พบบ่อยในการใช้งานมาก . สัญญาณที่ทันสมัยและการประยุกต์การประมวลผลภาพเป็นไปไม่ได้โดยไม่มีวิธีการที่มีประสิทธิภาพสำหรับการคำนวณ DFT .
การใช้โดยตรงของคำนิยามของ DFT ( Discrete Fourier Transform ( DFT ) เป็นข้อมูลเวกเตอร์ของความยาว n ต้อง N การคูณและการ additions-a รวมจุด - 2n2 . นี้ไม่รวมรุ่นของอำนาจที่ซับซ้อนลาฮอร์เอกภาพω . คำนวณ DFT ล้านจุดคอมพิวเตอร์สามารถทำหนึ่งการคูณและนอกจากนี้ทุกวินาทีต้องล้านวินาที หรือประมาณ 11.5 วัน
อย่างรวดเร็ว ( FFT ) ขั้นตอนวิธีการแปลงฟูรีเยมีความซับซ้อนในการคำนวณ O ( n log n ) แทน O ( n2 ) ถ้า n เป็นอำนาจของ 2 มิติ หน่วยของความยาว , N ต้องน้อยกว่า 3N LN N ปฏิบัติการจุดลอย ( ครั้งสัดส่วนคงที่ ) n = 220 ,นั่นคือปัจจัยเกือบ 35 , 000 เร็วกว่า 2n2 .
®ฟังก์ชั่น FFT fft2 MATLAB , และ fftn ( และแปรผกผัน ifft ifft2 , และ ifftn ตามลำดับ ) ทั้งหมดใช้การแปลงฟูรีเยอย่างเร็วอัลกอริทึมเพื่อคำนวณแรง
เมื่อใช้ขั้นตอนวิธีอกท , ความแตกต่างได้ระหว่างความยาวและหน้าต่าง เปลี่ยนความยาว ความยาวหน้าต่าง คือ ความยาวของข้อมูลเวกเตอร์ มันถูกกำหนดโดยตัวอย่างเช่น ขนาดของบัฟเฟอร์ที่ภายนอก การแปลงความยาวความยาวของเอาต์พุต การคำนวณ DFT . เป็นหน่วยรองหรือขั้นตอนวิธีสับใส่เพื่อให้บรรลุตามที่ต้องการเปลี่ยนความยาว รูปต่อไปนี้แสดงให้เห็นถึงสองขนาด
การเวลาของขั้นตอนวิธีการแปลง FFT ขึ้นอยู่กับความยาว มันเร็วที่สุดเมื่อเปลี่ยนความยาว คือ พลังของทั้งสองและเกือบจะเป็นอย่างรวดเร็วเมื่อเปลี่ยนความยาวได้เพียงเล็ก ๆเฉพาะด้าน มันมักจะช้าสำหรับการแปลงความยาวที่เป็นนายก หรือมีปัจจัยสําคัญใหญ่ เวลาที่ความแตกต่าง อย่างไรก็ตาม จะลดลงเล็กน้อยโดยขั้นตอนวิธีการเกิดทันสมัยเช่นที่ใช้ในโปรแกรม . การปรับแปลงความยาวประสิทธิภาพมักจะจำเป็นในการปฏิบัติงาน
การแปล กรุณารอสักครู่..