Tham khảo tài liệu 'lập trình c# all chap "numerical recipes in c" part 154', công nghệ thông tin phục vụ nhu cầu học tập, nghiên cứu và làm việc hiệu quả | 532 Chapter 12. Fast Fourier Transform External Storage or Memory-Local FFTs Sometime in your life you might have to compute the Fourier transform of a really large data set larger than the size of your computer s physical memory. In such a case the data will be stored on some external medium such as magnetic or optical tape or disk. Needed is an algorithm that makes some manageable number of sequential passes through the external data processing it on the fly and outputting intermediate results to other external media which can be read on subsequent passes. In fact an algorithm of just this description was developed by Singleton 1 very soon after the discovery of the FFT. The algorithm requires four sequential storage devices each capable of holding half of the input data. The first half of the input data is initially on one device the second half on another. Singleton s algorithm is based on the observation that it is possible to bit-reverse 2M values by the following sequence of operations On the first pass values are read alternately from the two input devices and written to a single output device until it holds half the data and then to the other output device. On the second pass the output devices become input devices and vice versa. Now we copy two values from the first device then two values from the second writing them as before first to fill one output device then to fill a second. Subsequent passes read 4 8 etc. input values at a time. After completion of pass M 1 the data are in bit-reverse order. Singleton s next observation is that it is possible to alternate the passes of essentially this bit-reversal technique with passes that implement one stage of the Danielson-Lanczos combination formula . The scheme roughly is this One starts as before with half the input data on one device half on another. In the first pass one complex value is read from each input device. Two combinations are formed and one is written to each of two output devices.