<< Chapter < Page Chapter >> Page >
Y ( s ) = K 1 ( s ) U 1 ( s ) H 1 ( s ) + K 2 ( s ) U 2 ( s ) H 2 ( s ) + K 3 ( s ) U 3 ( s ) H 3 ( s )

mod ( s 4 - 1 )

where U 1 ( s ) = r 1 and U 2 ( s ) = r 2 are constants and U 3 ( s ) = v 0 + v 1 s is a first degree polynomial. U 1 times H 1 and U 2 times H 2 are easy, but multiplying U 3 time H 3 modulo ( s 2 + 1 ) is more difficult.

The multiplication of U 3 ( s ) times H 3 ( s ) can be done by the Toom-Cook algorithm [link] , [link] , [link] which can be viewed as Lagrange interpolation or polynomial multiplication modulo a specialpolynomial with three arbitrary coefficients. To simplify the arithmetic, the constants are chosen to be plus and minus one andzero. The details of this can be found in [link] , [link] , [link] . For this example it can be verified that

( ( v 0 + v 1 s ) ( h 0 + h 1 s ) ) ) s 2 + 1 = ( v 0 h 0 - v 1 h 1 ) + ( v 0 h 1 + v 1 h 0 ) s

which by the Toom-Cook algorithm or inspection is

1 - 1 0 - 1 - 1 1 1 0 0 1 1 1 v 0 v 1 o 1 0 0 1 1 1 h 0 h 1 = y 0 y 1

where o signifies point-by-point multiplication. The total A matrix in [link] is a combination of [link] and [link] giving

A X = A 1 A 2 A 3 X
= 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 1 1 1 1 0 0 1 - 1 0 0 0 0 1 0 0 0 0 1 1 0 1 0 0 1 0 1 1 0 - 1 0 0 1 0 - 1 u 0 u 1 u 2 u 3 = r 0 r 1 v 0 v 1

where the matrix A 3 gives the residue reduction s 2 - 1 and s 2 + 1 , the upper left-hand part of A 2 gives the reduction modulo s - 1 and s + 1 , and the lower right-hand part of A1 carries out the Toom-Cook algorithm modulo s 2 + 1 with the multiplication in [link] . Notice that by calculating [link] in the three stages, seven additions are required. Also notice that A 1 is not square. It is this “expansion" that causes more than N multiplications to be required in o in [link] or D in [link] . This staged reduction will derive the A operator for [link]

The method described above is very straight-forward for the shorter DFT lengths. For N = 3 , both of the residue polynomials are constants and the multiplication given by o in [link] is trivial. For N = 5 , which is the example used here, there is one first degree polynomial multiplication required but the Toom-Cookalgorithm uses simple constants and, therefore, works well as indicated in [link] . For N = 7 , there are two first degree residue polynomials which can each be multiplied by the sametechniques used in the N = 5 example. Unfortunately, for any longer lengths, the residue polynomials have an order of three orgreater which causes the Toom-Cook algorithm to require constants of plus and minus two and worse. For that reason, the Toom-Cook methodis not used, and other techniques such as index mapping are used that require more than the minimum number of multiplications, but donot require an excessive number of additions. The resulting algorithms still have the structure of [link] . Blahut [link] and Nussbaumer [link] have a good collection of algorithms for polynomial multiplication that can be used with thetechniques discussed here to construct a wide variety of DFT algorithms.

The constants in the diagonal matrix D can be found from the CRT matrix C in [link] using d = C T H ' for the diagonal terms in D . As mentioned above, for the smaller prime lengths of 3, 5, and 7 this works well but for longer lengths the CRT becomesvery complicated. An alternate method for finding D uses the fact that since the linear form [link] or [link] calculates the DFT, it is possible to calculate a known DFT of a given x ( n ) from the definition of the DFT in Multidimensional Index Mapping: Equation 1 and, given the A matrix in [link] , solve for D by solving a set of simultaneous equations. The details of this procedure are described in [link] .

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. OpenStax CNX. Nov 18, 2012 Download for free at http://cnx.org/content/col10550/1.22
Google Play and the Google Play logo are trademarks of Google Inc.

Notification Switch

Would you like to follow the 'Fast fourier transforms' conversation and receive update notifications?

Ask