<< Chapter < Page Chapter >> Page >

The savings in arithmetic can be considerable when implementing convolution or performing FIR digital filtering. However, there are two penalties. The use of blocks introduces a delay of one block length. None of the first block of output can be calculated until all of the first block of input is available. This is not a problem for “off line" or “batch" processing but can be serious for real-time processing. The second penalty is the memory required to store and process the blocks. The continuing reduction of memory cost often removes this problem.

The efficiency in terms of number of arithmetic operations per output point increases for large blocks because of the M log ( M ) requirements of the FFT. However, the blocks become very large ( L > > M ), much of the input block will be the appended zeros and efficiency is lost. For any particular application, taking the particular filter and FFT algorithm being used and the particular hardware being used, a plot of efficiency vs. block length, L should be made and L chosen to maximize efficiency given any other constraints that are applicable.

Usually, the block convolutions are done by the FFT, but they could be done by any efficient, finite length method. One could use “rectangular transforms" or “number-theoretic transforms". A generalization of this method is presented later in the notes.

Fast convolution by overlap-save

An alternative approach to the Overlap-Add can be developed by starting with segmenting the output rather than the input. If one considers the calculation of a block of output, it is seen that not only the corresponding input block is needed, but part of the preceding input block also needed. Indeed, one can show that a length M + L - 1 segment of the input is needed for each output block. So, one saves the last part of the preceding block and concatenates it with the current input block, then convolves that with h ( n ) to calculate the current output

Block processing, a generalization of overlap methods

Convolution is intimately related to the DFT. It was shown in The DFT as Convolution or Filtering that a prime length DFT could be converted to cyclic convolution. It has been long known [link] that convolution can be calculated by multiplying the DFTs of signals.

An important question is what is the fastest method for calculating digital convolution. There are several methods that eachhave some advantage. The earliest method for fast convolution was the use of sectioning with overlap-add or overlap-save and the FFT [link] , [link] , [link] . In most cases the convolution is of real data and, therefore, real-data FFTs should be used. That approach is stillprobably the fastest method for longer convolution on a general purpose computer or microprocessor. The shorter convolutions shouldsimply be calculated directly.

Introduction

The partitioning of long or infinite strings of data into shorter sections or blocks has been used to allow application of the FFT to realizeon-going or continuous convolution [link] , [link] . This section develops the idea of block processing and shows that it is a generalizationof the overlap-add and overlap-save methods [link] , [link] . They further generalize the idea to a multidimensional formulation ofconvolution [link] , [link] . Moving in the opposite direction, it is shown that, rather than partitioning a string of scalars into blocks andthen into blocks of blocks, one can partition a scalar number into blocks of bits and then include the operation of multiplication in the signalprocessing formulation. This is called distributed arithmetic [link] and, since it describes operations at the bit level, is completely general. These notes try to present a coherent development of theseideas.

Get Jobilize Job Search Mobile App in your pocket Now!

Get it on Google Play Download on the App Store Now




Source:  OpenStax, Fast fourier transforms (6x9 version). OpenStax CNX. Aug 24, 2009 Download for free at http://cnx.org/content/col10683/1.5
Google Play and the Google Play logo are trademarks of Google Inc.

Notification Switch

Would you like to follow the 'Fast fourier transforms (6x9 version)' conversation and receive update notifications?

Ask