concepts and algorithms of scientific and visual
play

Concepts and Algorithms of Scientific and Visual Computing Fast - PowerPoint PPT Presentation

Concepts and Algorithms of Scientific and Visual Computing Fast Fourier Transform CS448J, Autumn 2015, Stanford University Dominik L. Michels Fast Fourier Transform (FFT) For practical application, given a signal x 2 ( Z ), we only


  1. Concepts and Algorithms of Scientific and Visual Computing –Fast Fourier Transform– CS448J, Autumn 2015, Stanford University Dominik L. Michels

  2. Fast Fourier Transform (FFT) For practical application, given a signal x ∈ ℓ 2 ( Z ), we only take a finite number of elements into account. W.l.o.g. we describe x = ( x 0 ,..., x n − 1 ) with a tuple of length n , which is a power of two. We decompose x in elements with even respectively odd indexes: x e = ( x 0 , x 2 ,..., x n − 2 ) , x o = ( x 1 , x 3 ,..., x n − 1 ) . The corresponding polynomials are defined by n n 2 − 1 2 − 1 n − 1 � � � x j χ j , x 2 j χ j , x 2 j +1 χ j . p x ( χ ) = p x e ( χ ) = p x o ( χ ) = j =0 j =0 j =0

  3. Fast Fourier Transform (FFT) The identity p x ( χ ) = p x e ( χ 2 ) + χ p x o ( χ 2 ) follows by simple calculation. Furthermore, for the primitive n -th root of unity Ω n := exp(2 π i / n ) holds Ω k − n = Ω k n n for all k ∈ Z , and therefore � p x e ( Ω 2 k n ) + Ω k n · p x o ( Ω 2 k if k ∈ { 0 ,..., n n ) 2 − 1 } p x ( Ω k n ) = 2 ,..., n − 1 } . p x g ( Ω 2 k − n n · p x o ( Ω 2 k − n if k ∈ { n ) + Ω k ) , n n

  4. Fast Fourier Transform (FFT) According to this scheme, the Fourier transform of � p x (1) , p x ( Ω n ) ,..., p x ( Ω n − 1 � ˆ x = ) n can be computed from � n ) ,..., p x e ( Ω n − 2 � � n ) ,..., p x o ( Ω n − 2 � p x e (1) , p x e ( Ω 2 p x o (1) , p x o ( Ω 2 ˆ ˆ x e = ) , x o = ) n n leading to a recursive algorithm, the so-called Cooley-Tukey fast Fourier transform (FFT). This works for signals with lengths given by powers of two; see [Cooley, Tukey 1965]. It was extended later in [Bluestein 1970] to arbitrary n ∈ N .

  5. Fast Fourier Transform (FFT) Cooley-Tukey fast Fourier transform for an input signal vector x = ( x 0 ,..., x n − 1 ). function FFT( x , Ω n ) begin if n = 1 then ζ 0 ← x 0 end else ( ϕ 0 ,...,ϕ n / 2 − 1 ) ← FFT( x e , Ω 2 x e ← ( x 0 , x 2 ,..., x n − 2 ) n ) ( ψ 0 ,...,ψ n / 2 − 1 ) ← FFT( x o , Ω 2 x o ← ( x 1 , x 3 ,..., x n − 1 ) n ) for k ← 0 to n / 2 − 1 do ζ k ← ϕ k + Ω k n · ψ k ζ n / 2+ k ← ϕ k + Ω n / 2+ k · ψ k n end end return ( ζ 0 ,...,ζ n − 1 ) end

  6. Fast Fourier Transform (FFT) The runtime of the Cooley-Tukey fast Fourier transform can be described in dependence of the signal length n by T ( n ) = 2 · T ( n / 2) + O ( n ) with T (1) ∈ O (1). Iterative substitution leads to the time complexity T ( n ) ∈ O ( n log( n )) . Using the identity FFT − 1 ( ζ , Ω n ) = 1 n FFT( ζ , Ω − 1 n ) we also obtain the time complexity O ( n log( n )) for the inverse FFT.

  7. Two-dimensional Discrete Fourier Transform For a given finite two-dimensional signal x : { 0 ,..., n 1 − 1 } × { 0 ,..., n 2 − 1 } → C , its Fourier transform ˆ x : { 0 ,..., n 1 − 1 } × { 0 ,..., n 2 − 1 } → C is given by n 1 − 1 n 2 − 1 � � �� 1 k 1 k 2 � � ˆ x ( k 1 , k 2 ) = x ( j 1 , j 2 )exp − 2 π i + j 2 √ n 1 n 2 j 1 n 1 n 2 j 1 =0 j 2 =0 as a natural extension of the one-dimensional case.

  8. Two-dimensional Discrete Fourier Transform Moreover, the Fourier transform can be expressed using the equivalent representation n 1 − 1 n 2 − 1 � � �� 1 k 1 k 2 � � ˆ x ( k 1 , k 2 ) = x ( j 1 , j 2 )exp − 2 π i + j 2 √ n 1 n 2 j 1 n 1 n 2 j 1 =0 j 2 =0   n 2 − 1 n 1 − 1 � � 1 1 k 1 k 2 �  �    = x ( j 1 , j 2 )exp( − 2 π i j 1 )  exp − 2 π i j 2 √ n 2 √ n 1 ,      n 1  n 2    j 2 =0 j 1 =0 in which the inner term (in brackets) represents a column-wise Fourier transform and the outer term represents a row-wise Fourier transform. Each Fourier transform can be carried out using a FFT leading to the time complexity n 2 · O ( n 1 log( n 1 )) + n 1 · O ( n 2 log( n 2 )) = O ( n log( n )) with n := n 1 n 2 . A parallelization with c := max { n 1 , n 2 } processors leads to O ( c log( c )).

  9. Multidimensional Discrete Fourier Transform More general, the Fourier transform of for a signal x : { 0 ,..., n 1 − 1 } × ··· × { 0 ,..., n d − 1 } → C of dimension d is defined by n 1 − 1 n d − 1  d  1 k l � � �   ˆ x ( k 1 ,..., k d ) = ... x ( j 1 ,..., j d )exp   − 2 π i j l  .      �� d n l   l =1 n l j 1 =0 j d =0 l =1 As in the one-dimensional case, the time complexity is given by O ( n log( n )) with n := � n l =1 n l using the FFT.

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend