You can edit almost every page by Creating an account and confirming your email.

Winograd Fast Fourier Transform Algorithm

From EverybodyWiki Bios & Wiki





Winograd Fast Fourier Transform Algorithm (Winograd FFT) is proposed by Shmuel Winograd in 1978. Winograd FFT algorithm uses about the same number of additions as the Cooley–Tukey FFT algorithm, while using significantly fewer multiplications.

For example, using the matrix representation to express the Discrete Fourier transform(DFT) formula:

[y0y1yn1]=[111111ww2wn2wn11wn1w2(n1)w(n2)(n1)w(n1)(n1)][x0x1xn1],w=ej2πn

If n is a prime, then we can remove the first row and the first column and use the algorithm for n-1 point cyclic convolution instead of the algorithm for n point DFT.

n is prime

For example, n=5:

[y0y1y2y3y4]=[111111ww2w3w41w2w4ww31w3ww4w21w4w3w2w][x0x1x2x3x4],w=ej2π5

We can rewrite the transform as

[y1x0y2x0y3x0y4x0]=[ww2w3w4w2w4ww3w3ww4w2w4w3w2w][x1x2x3x4]

Arrange the rows in the order 1, 2, 4, 3 and the columns in the order 1, 3, 4, 2.

[y1x0y2x0y4x0y3x0]=[ww3w4w2w2ww3w4w4w2ww3w3w4w2w][x1x3x4x2]

This is the standard form of cyclic convolution and we can use the algorithm for 4 point cyclic convolution to compute the transform.

n is the power of a prime

In the case n=pr, we can permute the rows and columns of the matrix by the following order:

  • can be divided by pr
  • can be divided by pr1
  • ...
  • can be divided by p0

Then we can find a block that is a cyclic matrix in the transform matrix so that we can apply cyclic convolution.

For example, n=9:

[y0y1y2y3y4y5y6y7y8]=[1111111111ww2w3w4w5w6w7w81w2w4w6w8ww3w5w71w3w61w3w61w3w61w4w8w3w7w2w6ww51w5ww6w2w7w3w8w41w6w31w6w31w6w31w7w5w3ww8w6w4w21w8w7w6w5w4w3w2w][x0x1x2x3x4x5x6x7x8],w=ej2π9

Arrange the rows and the columns to be

[y0y3y6y1y2y4y8y7y5]=[111111111111w3w6w3w6w3w6111w6w3w6w3w6w31w3w6ww5w7w8w4w21w6w3w2ww5w7w8w41w3w6w4w2ww5w7w81w6w3w8w4w2ww5w71w3w6w7w8w4w2ww51w6w3w5w7w8w4w2w][x0x3x6x1x5x7x8x4x2]

We can apply cyclic convolution to the 6 by 6 cyclic matrix located in the lower right corner of the matrix.

Other n

In this case we can take n=n1n2nr, where n1,n2,,nr are mutually prime.

For a coefficient wk in n point FFT , we can define the order (i1,,ir) of k such that

  • k=i1(mod n1)
  • k=ir(mod nr)

By Chinese remainder theorem, there exists a coefficient in n point FFT is of order (i1,,ir) for all order i1,,ir.

Then we arrange the matrix by lexicographic order of its order than we can derive a matrix combined by Dn1.( Dn1 is the n1 by n1 DFT matrix)

For example, n = 6 = 23:

[y0y1y2y3y4y5]=[1111111ww2w3w4w51w2w41w2w41w31w31w31w4w21w4w21w5w4w3w2w1][x0x1x2x3x4x5],w=ejπ3

The order is

  • 0 - (0, 0)
  • 1 - (1, 1)
  • 2 - (2, 0)
  • 3 - (0, 1)
  • 4 - (1, 0)
  • 5 - (2, 1)

Arrange the rows and the columns to be:

[y0y3y2y5y4y1]=[1111111w31w31w311w2w2w4w41w3w2w5w4w11w4w4w2w21w3w4w1w2w5][x0x3x4x1x2x5]=[D2D2D2D2w2D2w4D2D2w4D2w2D2][x0x3x4x1x2x5]=D3D2[x0x3x4x1x2x5]

Number of operations

The number of additions and multiplications required for both n-point Winograd FFT and n-point FFT algorithms for various values of n are as follows (the input is complex):

FFT Winograd FFT
n Mul Add n M A
32 192 416 30 72 384
48 352 784 48 108 636
64 384 960 60 144 888
128 1152 2368 120 288 2076
160 1792 4032 168 432 3492
256 2304 5248 240 648 5016
400 6240 14000 420 1296 11352
512 6144 12288 504 1872 14796
800 14080 30400 840 2592 24804
1024 12288 26624 1008 4212 35244
2520 44032 92672 2520 11232 102348

Disadvantage

Although Winograd FFT benefits in reducing the multiplications in FFT algorithms, it still has some disadvantages.

  • The design of Winograd FFT is much more complex, involving rearrangement using remainders and transforming multidimensional matrix multiplication.
  • The number of additions may increase significantly, and at current computing speeds, the benefits of reducing the number of multiplications may outweigh the loss of increased additions.

References

  • Jian-Jiun Ding, Advanced Digital Signal Processing class note, the Department of Electrical Engineering, National Taiwan University (NTU), Taipei, Taiwan, 2007.
  • S.Winograd, "On computing the discrete Fourier transform," Mathematics of Computation, vol.32,no.141,pp.179-199,Jan.1978.
  • Silverman, H. “An introduction to programming the Winograd Fourier transform algorithm (WFTA)” Acoustics, Speech and Signal Processing, IEEE Trans , Apr 1977


This article "Winograd Fast Fourier Transform Algorithm" is from Wikipedia. The list of its authors can be seen in its historical and/or the page Edithistory:Winograd Fast Fourier Transform Algorithm. Articles copied from Draft Namespace on Wikipedia could be seen on the Draft Namespace of Wikipedia and not main one.