<< Chapter < Page | Chapter >> Page > |
Because we compute prime point DFTs by converting them in to circular convolutions, most of this and the next section is devotedto an explanation of the split nesting convolution algorithm. In this section we introduce the various operations neededto carry out the split nesting algorithm. In particular, we describe the prime factor permutationthat is used to convert a one-dimensional circular convolution into a multi-dimensional one.We also discuss the reduction operations needed when the Chinese Remainder Theorem for polynomials is usedin the computation of convolution. The reduction operations needed for the split nesting algorithmare particularly well organized. We give an explicit matrix description of the reduction operationsand give a program that implements the action of these reduction operations.
The presentation relies upon the notions of similarity transformations, companion matrices and Kronecker products.With them, we describe the split nesting algorithm in a manner that brings out its structure.We find that when companion matrices are used to describe convolution, the reduction operations block diagonalizesthe circular shift matrix.
The companion matrix of a monic polynomial, $M\left(s\right)={m}_{0}+{m}_{1}s+\cdots +{m}_{n-1}{s}^{n-1}+{s}^{n}$ is given by
Its usefulness in the following discussion comes from the following relation which permits a matrix formulationof convolution. Let
Then
where $y={({y}_{0},\cdots ,{y}_{n-1})}^{t}$ , $x={({x}_{0},\cdots ,{x}_{n-1})}^{t}$ , and ${C}_{M}$ is the companion matrix of $M\left(s\right)$ . In [link] , we say $y$ is the convolution of $x$ and $h$ with respect to $M\left(s\right)$ . In the case of circular convolution, $M\left(s\right)={s}^{n}-1$ and ${C}_{{s}^{n}-1}$ is the circular shift matrixdenoted by ${S}_{n}$ ,
Notice that any circulant matrix can be written as ${\sum}_{k}{h}_{k}{S}_{n}^{k}$ .
Similarity transformations can be used to interpret the action of some convolution algorithms. If ${C}_{M}={T}^{-1}AT$ for some matrix $T$ ( ${C}_{M}$ and $A$ are similar, denoted ${C}_{M}\sim A$ ), then [link] becomes
That is, by employing the similarity transformation given by $T$ in this way, the action of ${S}_{n}^{k}$ is replaced by that of ${A}^{k}$ . Many circular convolution algorithms can be understood,in part, by understanding the manipulations made to ${S}_{n}$ and the resulting new matrix $A$ . If the transformation $T$ is to be useful, it must satisfy two requirements:(1) $Tx$ must be simple to compute, and (2) $A$ must have some advantageous structure. For example, by the convolution property of the DFT,the DFT matrix $F$ diagonalizes ${S}_{n}$ ,
so that it diagonalizes every circulant matrix. In this case, $Tx$ can be computed by using an FFT and the structure of $A$ is the simplest possible. So the two above mentioned conditions are met.
Notification Switch
Would you like to follow the 'Automatic generation of prime length fft programs' conversation and receive update notifications?