Queens College, CUNY, Department of Computer Science Numerical Methods CSCI 361 / 761 Spring 2018 Instructor: Dr. Sateesh Mane.

Size: px
Start display at page:

Download "Queens College, CUNY, Department of Computer Science Numerical Methods CSCI 361 / 761 Spring 2018 Instructor: Dr. Sateesh Mane."

Transcription

1 Queens College, CUNY, Department of Computer Science Numerical Methods CSCI 361 / 761 Spring 018 Instructor: Dr. Sateesh Mane c Sateesh R. Mane Lecture 30 April 7, 018 Fourier Series In this lecture, we continue our study of Fourier series. We shall treat functions of one variable only. We shall study algorithms to perform computations for Fourier series. We shall study the Discrete Fourier Transform (DFT). A particularly important concept is the Fast Fourier Transform (FFT). This lecture requires knowledge of complex numbers. 1

2 30.1 Fourier series using sines and cosines This is a review from a previous lecture, reproduced here for ease of reference. Let f(θ) be a periodic function of and angle θ with period π. We assume f is sufficiently well behaved to justify the relevant calculations or algorithms. 1. For example, the function is absolutely integrable around a circle: π 0 f(θ) dθ <. (30.1.1). The function also has at most a finite number of discontinuities in the interval 0 θ < π. Then f can be expressed (or expanded) in a Fourier series as follows: f(θ) = 1 a 0 + a 1 cos(θ) + a cos(θ) + a 3 cos(3θ) + + b 1 sin(θ) + b sin(θ) + b 3 sin(3θ) + = 1 a [ 0 + aj cos(jθ) + b j sin(jθ) ]. j=1 (30.1.) The coefficients a j and b j are obtained from the function f(θ) via a j = 1 π b j = 1 π π 0 π 0 f(θ) cos(jθ) dθ (j 0), f(θ) sin(jθ) dθ (j > 0). (30.1.3)

3 30. Representation using complex exponentials In all the examples we have studied, the function f(θ) is real, hence all the Fourier coefficients a j amd bj are real. However, this is not the best formulation for efficient numerical computation. Let us reexpress eq. (30.1.) using complex exponentials. Note that e ijθ + e ijθ e ijθ e ijθ a j cos(jθ) + b j sin(jθ) = a j + b j i = 1 [ ] (a j ib j ) e ijθ + (a j + ib j ) e ijθ. (30..1) Let us therefore define complex Fourier harmonics via F 0 = a 0, F j = a j ib j, F j = a j + ib j (j > 0). (30..) The Fourier series using complex Fourier harmonics is given by f(θ) = j= F j e ijθ. (30..3) This is a discrete sum, not an integral, but has the appearance of an inverse Fourier transform. Note the following orthogonality and normalization relations: 1 π e i(m n)θ = δ mn ( < m, n < ). (30..4) π 0 Then the value of F j is obtained from the function f(θ) via F j = 1 π π 0 f(θ) e ijθ dθ ( < j < ). (30..5) The integral is over a finite domain, not the entire real line, but has the appearance of a Fourier transform. 3

4 30.3 Example using complex Fourier harmonics Let us study the same example treated previously for a Fourier series. Let us examine the results when we employ complex Fourier harmonics. The example function is f ex (θ) = 1 A 0 + A 1 cos(θ) + B 1 sin(θ) + A cos(θ) + B sin(θ). (30.3.1) We employ n = 4 points. Hence θ k = kπ/4 = kπ/, for k = 0, 1,, 3. Hence we evaluate the integral in eq. (30..5) using a discrete sum with n points: F j = 1 n n 1 f(θ k ) e ijθ k (j = 0,..., n 1). (30.3.) k=0 For n = 4 and the example function in eq. (30.3.1), this yields F j = 1 [ ] f ex (0) + f ex ( 1 4 π)e ijπ/ + f ex (π)e ijπ + f ex ( 3 π)e ijπ/ = 1 [ ( 1 4 A 0 + A 1 + A ) + ( 1) j ( 1 A 0 + B 1 A ) ] + ( 1) j ( 1 A 0 A 1 + A ) + i j ( 1 A 0 B 1 A ). (30.3.3) We obtain the following results for F 0,..., F 3 : F 0 = 1 4 F 1 = 1 4 F = 1 4 F 3 = 1 4 [ ] ( 1 A 0+A 1 +A )+( 1 A 0+B 1 A )+( 1 A 0 A 1 +A )+( 1 A 0 B 1 A ) [ ( 1 A 0+A 1 +A ) i( 1 A 0+B 1 A ) ( 1 A 0 A 1 +A )+i( 1 A 0 B 1 A ) [ ] ( 1 A 0+A 1 +A ) ( 1 A 0+B 1 A )+( 1 A 0 A 1 +A ) ( 1 A 0 B 1 A ) [ ( 1 A 0+A 1 +A )+i( 1 A 0+B 1 A ) ( 1 A 0 A 1 +A ) i( 1 A 0 B 1 A ) ] ] = 1 A 0, (30.3.4a) = A 1 ib 1, (30.3.4b) =A, (30.3.4c) = A 1 + ib 1. (30.3.4d) The values of F 0 and F 1 are as expected. We calculated the Fourier coefficient F 3 as opposed to F 1, but we obtained the value of F 1 anyway: F 1 = F 3 = A 1 + ib 1. (30.3.5) In general, for any value of n (at least if n is even), the Fourier coefficients wrap around because of the periodicity of the function: F j = F n j. (30.3.6) The Fourier coefficient F n/, i.e. F in our example, yields F n/ = A n/ not 1 A n/. Is this a problem? Not necessarily. 4

5 30.4 Consequences of employing complex Fourier harmonics Let us sum the Fourier series obtained in the example in Sec We obtain the following sum, using eq. (30..3): f sum (θ) = F 0 + F 1 e iθ + F 1 e iθ + F e iθ = 1 A 0 + A 1 ib 1 e iθ + A 1 + ib 1 e iθ + A e iθ = 1 A [ ] 0 + A 1 cos(θ) + B sin(θ) + A cos(θ)+i sin (θ). (30.4.1) We obtain an extra term ia sin(θ) which does not exist in the original function. As we know, we do not obtain the term B sin(θ), which does exist in the original function. Clearly the sum of the series is inaccurate for the j = n/ harmonic, i.e. θ in this example. However, are we making unrealistic demands? We evaluated the function f ex (θ) at only four points. It is unreasonable to expect that the resulting Fourier series will match the original function exactly for all values of θ. Let us evaluate the sum of the series only at the input points θ k = kπ/n, i.e. only at the input values of θ used to derive the series. Then sin(θ) = 0 at all the points θ k = kπ/n, hence the sum of the series equals the original function exactly: f sum (0) = 1 A 0 + A 1 + A =f ex (0), (30.4.a) f sum ( 1 π) = 1 A 0 + B 1 A =f ex ( 1 π), (30.4.b) f sum (π) = 1 A 0 A 1 + A =f ex (π), (30.4.c) f sum ( 3 π) = 1 A 0 B 1 A =f ex ( 3 π). (30.4.d) We therefore deduce the following important fact: In general, for any value of n, the sum of the Fourier series, using complex Fourier harmonics, exactly equals the original function at the n input points θ k = kπ/n. The claim exactly equals the original function must however be interpreted with care. 1. If a continuous signal is sampled using a finite number of values, the input data will in general contain aliased information.. Recall the statements in previous lectures about the Nyquist frequency and aliasing. The statement the sum of the Fourier series,..., exactly equals the original function at the n input points θ k = kπ/n is correct, but the original data may contain aliased information. Using complex Fourier coefficients does not solve the aliasing problem. 5

6 30.5 Convolution of discrete series In the continuous case, the convolution of two functions f(x) and g(x) is given by (f g)(x) = For periodic functions, the convolution is given by a discrete sum. Let the periodic functions be f(θ) and g(θ). f(u)g(x u) du. (30.5.1) We calculate both functions at n points θ k = kπ/n, where k = 0,..., n 1. Denote the resulting function values by f k = f(θ k ) and g k = g(θ k ), respectively. Note also the wrap around relations f k = f n k and h k = g n k. Then for k = 0,..., n 1, the convolution of two discrete series h = f g is given by { n 1 k l (k l 0) h k = (f g) k = f l g κ where κ = (30.5.) n + k l (k l < 0). l=0 In the same way, the convolution H = F G of two Fourier series F j and G j is given by n 1 H j = (F G) j = F l G κ where κ = l=0 { j l (j l 0) n + j l (j l < 0). (30.5.3) 6

7 30.6 Cross-correlation & autocorrelation of discrete series The same ideas in Sec also apply to cross correlation and autocorrelation. In the continuous case, the cross correlation of two functions f(x) and g(x) is given by (f g)(x) = f (u)g(x + u) du. (30.6.1) Employing the same definitions as in Sec. 30.5, the cross correlation of two discrete series h = f g is given by { n 1 h k = (f g) k = fl g k + l (k + l < n) κ where κ = (30.6.) k + l n (k + l n). l=0 The cross correlation H = F G of two Fourier series F j and G j is given by { n 1 H j = (F G) j = Fl G j + l (j + l < n) κ where κ = j + l n (j + l n). l=0 (30.6.3) For autocorrelation we simply set f = g or F = G. Parseval s theorem for discrete series states 1 n n 1 f k = k=0 n 1 F j. (30.6.4) j=0 Let us verify eq. (30.6.4) for the example function f ex. 1. The sum of the absolute squares of the Fourier coefficients is 3 F j = A 0 4 j=0 + A 1 + B 1 + A. (30.6.5). The sum of the absolute squares of the function values is 3 k=0 f k = 1 A 0 + A 1 + A + 1 A 0 + B 1 A + 1 A 0 A 1 + A + 1 A 0 B 1 A (30.6.6) = A 0 + A 1 + B A. 3. Hence Parseval s theorem eq. (30.6.4) is satisfied for the example function f ex : f k = k=0 3 F j = A 0 4 j=0 + A 1 + B 1 + A. (30.6.7) 7

8 30.7 Change of notation Since we shall eventually want to write programming code, it is confusing to use the notation f[k] for the function array and F[j] for the Fourier coefficients array. We change notation to X(θ) for the function. Hence we write X k = X(θ k ). Recall θ k = kπ/n, where k = 0,..., n 1. We continue to denote the Fourier coefficients by F j, where j = 0,..., n 1. 8

9 30.8 Discrete Fourier Transform (DFT) We now define the Discrete Fourier Transform (DFT). We employ n equally spaced data points around the circle θ k = kπ/n, where k = 0,..., n 1. The function values are X k = X(θ k ). Let ω be a primitive n th root of unity, i.e. ω n = 1 and choose ω = e iπ/n. The complex Fourier coefficients are denoted by (F 0,..., F n 1 ). Both (X 0,..., X n 1 ) and (F 0,..., F n 1 ) are complex, in general. The Discrete Fourier Transform (DFT) is given by the following sum: n 1 F j = X(θ k ) e ijθ k = k=0 n 1 ω jk X k (j, k = 0,..., n 1). (30.8.1) k=0 The inverse Discrete Fourier Transform computes (f 0,..., f n 1 ) from (F 0,..., F n 1 ): X k = 1 n 1 F j e ikθ j = 1 n 1 (ω ) jk F j (j, k = 0,..., n 1). (30.8.) n n j=0 j=0 The inverse transform sums the series only at the input points θ = kπ/n, hence it returns the original data values X k exactly. The inverse transform is obtained by the same procedure as the discrete Fourier transform, replacing ω by ω and dividing the sum by n. To avoid the asymmetry of 1/n between eqs. (30.8.1) and (30.8.), many authors prefer to divide by 1/ n in both formulas and write F j = 1 n 1 ω jk X k, X k = 1 n 1 (ω ) jk F j (j, k = 0,..., n 1). (30.8.3) n n k=0 The inverse transform in eq. (30.8.3) is given by simply replacing ω by ω. The standard convention in physics is to employ eqs. (30.8.1) and (30.8.). j=0 We shall employ eqs. (30.8.1) and (30.8.) in this course. Naïvely, the calculations in eqs. (30.8.1) and (30.8.) require O(n ) computations. The Fast Fourier Transform (FFT) can calculate the sums in eqs. (30.8.1) and (30.8.) using O(n log n) computations. The breakthrough was published by Cooley and Tukey in With hindsight, it is now known that others had published O(n log n) algorithms for discrete Fourier transforms before, going back to Gauss in 1805, but the significance of those earlier algorithms was not recognized until after Cooley and Tukey s publication. We shall study the FFT algorithm later in this lecture. 9

10 30.9 FFT: warmup exercise n = 4 Let us consider a Discrete Fourier Transform (DFT) with n = 4 points. Set ω = e iπ/n = e iπ/4. The initial data values are (X 0,..., X n 1 ) = (X 0, X 1, X, X 3 ). The transformed data values are (F 0,..., F n 1 ) = (F 0, F 1, F, F 3 ). We write out the equations in eq. (30.8.1) explicitly to obtain F 0 = X 0 + X 1 + X + X 3, F 1 = X 0 + ωx 1 + ω X + ω 3 X 3, F = X 0 + ω X 1 + ω 4 X + ω 6 X 3, F 3 = X 0 + ω 3 X 1 + ω 6 X + ω 9 X 3. Collect terms on the right hand side in odd/even pairs. Also use ω n = ω 4 = 1. F 0 = X 0 + X + X 1 + X 3, F 1 = X 0 + ω X + ω(x 1 + ω X 3 ), F = X 0 + X + ω (X 1 + X 3 ), F 3 = X 0 + ω X + ω 3 (X 1 + ω X 3 ). (30.9.1) (30.9.) Notice that the X k come in only four combinations. Use E and O for even and odd: E 0 = X 0 + X, O 0 = X 1 + X 3, E 1 = X 0 + ω X = X 0 X, O 1 = X 1 + ω X 3 = X 1 X 3. (30.9.3) This can clearly be formalized, so as to generalize to larger values of n. Define Ω via ( ) 1 0 Ω =. (30.9.4) 0 ω Then note that, using ω n/ = ω = 1, ( ) ( ) ( ) ( F0 E0 1 0 O0 = + F 1 E 1 0 ω O 1 ( ) ( ) ( ) ( F E0 1 0 O0 = 0 ω F 3 E 1 O 1 ) = ) = ( E0 E 1 ( E0 E 1 ) ( O0 + ωo 1 ) ), ). ωo 1 ( O0 (30.9.5) We define F + and F via F + = ( F0 F 1 ), F = ( F F 3 ). (30.9.6) Then we see from above that F + = E + ΩO, F = E ΩO. (30.9.7) 10

11 30.10 FFT: second exercise n = 8 Next let us see how this works for for n = 8 points. Set ω = e iπ/n = e iπ/8. The initial data values are (X 0,..., X n 1 ) = (X 0,..., X 7 ). The transformed data values are (F 0,..., F n 1 ) = (F 0,..., F 7 ). Write this out explicitly (in even/odd blocks) to obtain F 0 F 1 F F 3 F 4 = F 5 F 6 F 7 X 0 +X +X 4 +X 6 +(X 1 +X 3 +X 5 +X 7 ) X 0 +ω X +ω 4 X 4 +ω 6 X 6 +ω(x 1 +ω X 3 +ω 4 X 5 +ω 6 X 7 ) X 0 +ω 4 X +ω 8 X 4 +ω 1 X 6 +ω (X 1 +ω 4 X 3 +ω 8 X 5 +ω 1 X 7 ) X 0 +ω 6 X +ω 1 X 4 +ω 18 X 6 +ω 3 (X 1 +ω 6 X 3 +ω 1 X 5 +ω 18 X 7 ) X 0 +ω 8 X +ω 16 X 4 +ω 4 X 6 +ω 4 (X 1 +ω 8 X 3 +ω 16 X 5 +ω 4 X 7 ) X 0 +ω 10 X +ω 0 X 4 +ω 30 X 6 +ω 5 (X 1 +ω 10 X 3 +ω 0 X 5 +ω 30 X 7 ) X 0 +ω 1 X +ω 4 X 4 +ω 36 X 6 +ω 6 (X 1 +ω 1 X 3 +ω 4 X 5 +ω 36 X 7 ) X 0 +ω 14 X +ω 8 X 4 +ω 4 X 6 +ω 7 (X 1 +ω 14 X 3 +ω 8 X 5 +ω 4 X 7 ). ( ) Use ω n = ω 8 = 1 and ω n/ = ω 4 = 1 to simplify some exponents (but maintain a pattern): F 0 X 0 +X +X 4 +X 6 X 1 +X 3 +X 5 +X 7 X 0 +ω X +ω 4 X 4 +ω 6 X 6 X 0 +ω 4 X +ω 8 X 4 +ω 1 X 6 + ω(x 1 +ω X 3 +ω 4 X 5 +ω 6 X 7 ) ω (X 1 +ω 4 X 3 +ω 8 X 5 +ω 1 X 7 ) X 0 +ω 6 X +ω 1 X 4 +ω 18 X 6 ω 3 (X 1 +ω 6 X 3 +ω 1 X 5 +ω 18 X 7 ) F 1 F F 3 F 4 = F 5 F 6 F 7 X 0 +X +X 4 +X 6 X 0 +ω X +ω 4 X 4 +ω 6 X 6 X 0 +ω 4 X +ω 8 X 4 +ω 1 X 6 X 0 +ω 6 X +ω 1 X 4 +ω 18 X 6 X 1 +X 3 +X 5 +X 7 ω(x 1 +ω X 3 +ω 4 X 5 +ω 6 X 7 ) ω (X 1 +ω 4 X 3 +ω 8 X 5 +ω 1 X 7 ) ω 3 (X 1 +ω 6 X 3 +ω 1 X 5 +ω 18 X 7 ) (30.10.) As before, we observe there are only two independent sets of terms that we need to compute.. We define two blocks E and O as follows: E = O = X 0 +X +X 4 +X 6 X 0 +ω X +ω 4 X 4 +ω 6 X 6 X 0 +ω 4 X +ω 8 X 4 +ω 1 X 6 X 0 +ω 6 X +ω 1 X 4 +ω 18 X 6 X 1 +X 3 +X 5 +X 7 X 1 +ω X 3 +ω 4 X 5 +ω 6 X 7 X 1 +ω 4 X 3 +ω 8 X 5 +ω 1 X 7 X 1 +ω 6 X 3 +ω 1 X 5 +ω 18 X 7,. ( ) Notice that each block is the same as in eq. (30.9.1), with ω = e iπ/4, which is exactly the primitive root of unity in eq. (30.9.1). 11

12 Therefore we can calculate each block E and O usng the algorithm for n = 4. To complete the procedure, we define Ω as follows: 1 Ω = ω ω. ( ) ω 3 We define F + and F (with four components) via F + = F 0 F 1 F F 3, F = F 4 F 5 F 6 F 7. ( ) Then we see from above that once again F + = E + ΩO, F = E ΩO. ( ) 1

13 30.11 FFT: general case n = s The pattern established above for n = 4 and 8 clearly generalizes to n = s for any k 1. We define the primitive root of unity ω s = e iπ/n = e iπ/s. We group the X k into even/odd combinations with n/ components each: X 0 +X +X 4 + +X n X 0 +ωsx +ωsx ωs n X n E k = X 0 +ωsx 4 +ωsx ωs (n ) X n,. X 0 +ωs n X +ωs (n ) X 4 + +ω (n ) / s X n X 1 +X 3 +X 5 + +X n 1 X 1 +ωsx 3 +ωsx ωs n X n 1 O k = X 1 +ωsx 4 3 +ωsx ωs (n ) X n 1.. X 1 +ωs n X 3 +ωs (n ) X 5 + +ω (n ) / s X n 1 ( ) Each block is a Discrete Fourier Transform of n/ points sampled at equal intervals, with ω s = e iπ/(n/) = e iπ/k 1, which is exactly the root of unity required for n/ = k 1. Therefore we calculate each block E k and O k recursively using the algorithm with n/. To complete the procedure, we define Ω k as follows: 1 Ω k = ω s... ω (n/) 1 s. (30.11.) We define F k+ and F k (with n/ components each) via F k,0 F k,1 F k+ =., F k = F k,(n/) 1 Then as before we have F k,n/ F k,(n/)+1. F k,n 1. ( ) F k+ = E k + Ω k O k, F k = E k Ω k O k. ( ) 13

14 30.1 Bit reversal The FFT implementation in Sec is a bit simplistic. At every step of the recursion, we have to collect the points into even/odd sets. Let us see how this works for n = 8, hence we have eight data points (X 0,..., X 7 ). At each stage of the recursion, we want to group the points into sets as follows: ( ) ) X 0 X 0 (X 0 ) X 0 X X 4 (X X 1 X 4 4 ( ) ) X X (X X 3 X ) 6 X 6 (X X 4 6 ( ) ) X 5 X 1 X 1 (X 1 ) X 6 X 3 X 5 (X X 7 X 5 5 ( ) ) X 3 (X 3 X ) 7 (X 7 X 7 (30.1.1) It would therefore be helpful if we sorted the points in the following order: X 0 X 1 X X 3 X 4 X 5 X 6 X 7 sort The sorting procedure is given by bit reversal. X 0 X 4 X X 6 X 1. (30.1.) X 5 X 3 X 7 Write the indices (0, 1,..., 7) in binary and reverse the binary digits. The result is the desired sort. j binary bit reverse sorted

15 What are the sums we obtain? X 0 + X 4 + (X + X 6 ) F 0 X 0 X 4 + (X X 6 )ω F 1 X 0 + X 4 (X + X 6 ) F F 3 X 0 X 4 (X X 6 )ω F 4 F 5 X 1 + X 5 + (X 3 + X 7 ) F 6 X 1 X 5 + (X 3 X 7 )ω F 7 X 1 + X 5 (X 3 + X 7 ) X 1 X 5 (X 3 X 7 )ω ( ) ) X 0 + X 4 (X 0 ) X 0 X 4 (X 4 ( ) ) X + X 6 (X ) X X 6 (X 6 ( ) ) X 1 + X 5 (X 1 ) X 1 X 5 (X 5 ( ) ) X 3 + X 7 (X 3 ) X 3 X 7 (X 7 (30.1.3) Do we obtain the correct answer? Let us check. Note that ω = ω 3 and ω4 3 = 1. F 0 = X 0 + X 4 + (X + X 6 ) + [X 1 + X 5 + (X 3 + X 7 )] = X 0 + X 1 + X + X 3 + X 4 + X 5 + X 3 + X 7, (30.1.4a) F 1 = X 0 X 4 + ω (X X 6 ) + ω 3 [X 1 X 5 + ω (X 3 X 7 )] = X 0 + ω 3 X 1 + ω 3X + ω 3 3X 3 + ω 4 3X 4 + ω 5 3X 5 + ω 6 3X 6 + ω 7 3X 7, (30.1.4b) F = X 0 + X 4 (X + X 6 ) + ω 3[X 1 + X 5 (X 3 + X 7 )] = X 0 + ω 3X 1 + ω 4 3X + ω 6 3X 3 + ω 8 3X 4 + ω 10 3 X 5 + ω 1 3 X 6 + ω 14 3 X 7, (30.1.4c) F 3 = X 0 X 4 ω (X X 6 ) + ω 3 3[X 1 X 5 ω (X 3 X 7 )] = X 0 + ω 3 3X 1 + ω 6 3X + ω 9 3X 3 + ω 1 3 X 4 + ω 15 3 X 5 + ω 18 3 X 6 + ω 1 3 X 7, (30.1.4d) F 4 = X 0 + X 4 + (X + X 6 ) [X 1 + X 5 + (X 3 + X 7 )] = X 0 + ω 4 3X 1 + ω 8 3X + ω 1 3 X 3 + ω 16 3 X 4 + ω 0 3 X 5 + ω 4 3 X 6 + ω 8 3 X 7, (30.1.4e) F 5 = X 0 X 4 + ω (X X 6 ) ω 3 [X 1 X 5 + ω (X 3 X 7 )] = X 0 + ω 5 3X 1 + ω 10 3 X + ω 15 3 X 3 + ω 0 3 X 4 + ω 5 3 X 5 + ω 30 3 X 6 + ω 35 3 X 7, (30.1.4f) F 6 = X 0 + X 4 (X + X 6 ) ω 3[X 1 + X 5 (X 3 + X 7 )] = X 0 + ω 6 3X 1 + ω 1 3 X + ω 18 3 X 3 + ω 4 3 X 4 + ω 30 3 X 5 + ω 36 3 X 6 + ω 4 3 X 7, (30.1.4g) F 7 = X 0 X 4 ω (X X 6 ) ω 3 3[X 1 X 5 ω (X 3 X 7 )] = X 0 + ω 7 3X 1 + ω 14 3 X + ω 1 3 X 3 + ω 8 3 X 4 + ω 35 3 X 5 + ω 4 3 X 6 + ω 49 3 X 7. (30.1.4h) Hence if we sort (or rearrange) the input data (X 0,..., X n 1 ) using bit-reversal, the algorithm in Sec can be implemented straightforwardly. Computational complexity. Observe that the number of computations (multiplications) is about = 8 3 = 8 log 8 = O(n log n). 15

16 30.13 Is bit reversal necessary? Recursion? Extra memory storage? Neither bit reversal, recursion nor extra memory storage are necessary. There exist FFT implementations which do not require bit reversal. Recursion: the FFT algorithm can be formulated using a set of nested loops. Extra memory storage: study the calculations in Sec At every step of the recursion (three steps because n = 3 = 8), we have n computed values. For example in the first calculation we have (X 0 + X 4, X 0 X 4, X + X 6, X X 6, X 1 + X 5, X 1 X 5, X 3 + X 7, X 3 X 7 ). The values can be held in an array of length n, which is (F 0,..., F n 1 ) itself. All the results of computations can be stored in place in the array (F 0,..., F n 1 ). The even/odd arrays E and O can be held in (F 0,..., F n 1 ) itself. A few temporary variables may be required, but no extra memory of length n or n/, etc. 16

17 30.14 FFT review Main routine Let us review the the steps of the FFT algorithm. We consider only inputs where the number of points n is a power of. There are FFT algorithms for other values of n but we do not consider them. We begin with a bit reversal of the input data (X 0,..., X n 1 ). 1. Some authors perform the bit reversal in place and overwrite the input data.. We store the bit reversed data in a separate array and do not overwrite the input data. 3. Let us denote the bit reversed array by R = (R 0,..., R n 1 ). We compute the primitive root of unity ω = e iπ/n. For the inverse we compute ω = e iπ/n. We call a lower level function to compute the FFT recursively, with inputs n, ω and R. For the inverse FFT, after the recursion is over, we divide (F 0,..., F n 1 ) by n Recursion If n = 1, we set F 0 = R 0 and return. If n =, we set F 0 = R 0 + R 1 and F 1 = R 0 R 1 and return. Note in this context that F and R are arrays which have been passed to a recursive function call. They are not the array indices F[0], F[1], R[0], R[1] of the original arrays in the top level FFT routine. If n >, we proceed as follows. First define a temporary variable w = ω. Declare temporary arrays Even and Odd of length n/. The arrays Even and Odd do not require additional memory. They can be implemented as pointers to sections of the array F. Call the FFT routine recursively twice, once to compute Even and once for Odd. 1. The inputs to the recursive calls are n/, w and suitable sections of the array R.. Note that in a recursive function call, the parameters n and ω do not necessarily have the same values as in the top level routine. 3. The compiler will take care of the details. After both recursive calls have completed, compute F + and F from Even and Odd. Both F + and F can be stored in place in the array F. 17

18 30.15 FFT code Bit reversal There are multiple ways to code the bit reversal. int bit_reverse(int num_bits, int n) { int r = 0; for (int i=0; i < num_bits; ++i) { int rem = (n & 1); r = r* + rem; n /= ; return r; int bit_reverse(int num_bits, int n) { const int nmax = 1 << (num_bits-1); // ^(num_bits-1) int r = 0; for (int i = 0; i < num_bits; ++i) { int j = (1 << i); if (n & j) { int k = nmax >> i; r = k; return r; 18

19 FFT recursion static void FFT_recursion(int npts, const std::complex<double> & omega, const std::complex<double> * R, std::complex<double> * F) { if (npts == 1) { F[0] = R[0]; return; if (npts == ) { F[0] = R[0] + R[1]; F[1] = R[0] - R[1]; return; const std::complex<double> w = omega*omega; const int nhalf = npts/; std::complex<double> * Even = F; std::complex<double> * Odd = F + nhalf; FFT_recursion(nhalf, w, R, Even); // use array f, no extra storage required FFT_recursion(nhalf, w, R+nhalf, Odd); // use array f, no extra storage required std::complex<double> wtmp(1.0, 0.0); for (int i = 0; i < nhalf; ++i) { std::complex<double> Fplus = Even[i] + wtmp*odd[i]; // Even + Omega*Odd std::complex<double> Fminus = Even[i] - wtmp*odd[i]; // Even - Omega*Odd F[i] = Fplus; F[i+nhalf] = Fminus; wtmp *= omega; 19

20 FFT top level function static void FFT_top(bool inverse, int num_bits, int npts, const std::complex<double> * X, std::complex<double> * F) { // bit reversal std::complex<double> R[npts]; for (int i = 0; i < npts; ++i) { int i_rev = bit_reverse(num_bits, i); R[i_rev] = X[i]; // primitive root of unity const double pi = 4.0*atan(1.0,1.0); double ang =.0*pi/npts; if (inverse) ang = -ang; std::complex<double> omega(cos(ang), -sin(ang)); // note the minus sign // FFT recursion FFT_recursion(npts, omega, R, F); if (inverse) { double ndbl = double(npts); for (int i = 0; i < npts; ++i) { F[i] /= ndbl; 0

Computational Methods CMSC/AMSC/MAPL 460

Computational Methods CMSC/AMSC/MAPL 460 Computational Methods CMSC/AMSC/MAPL 460 Fourier transform Balaji Vasan Srinivasan Dept of Computer Science Several slides from Prof Healy s course at UMD Last time: Fourier analysis F(t) = A 0 /2 + A

More information

Queens College, CUNY, Department of Computer Science Numerical Methods CSCI 361 / 761 Spring 2018 Instructor: Dr. Sateesh Mane.

Queens College, CUNY, Department of Computer Science Numerical Methods CSCI 361 / 761 Spring 2018 Instructor: Dr. Sateesh Mane. Queens College, CUNY, Department of Computer Science Numerical Methods CSCI 361 / 761 Spring 2018 Instructor: Dr. Sateesh Mane c Sateesh R. Mane 2018 3 Lecture 3 3.1 General remarks March 4, 2018 This

More information

6 Lecture 6b: the Euler Maclaurin formula

6 Lecture 6b: the Euler Maclaurin formula Queens College, CUNY, Department of Computer Science Numerical Methods CSCI 361 / 761 Fall 217 Instructor: Dr. Sateesh Mane c Sateesh R. Mane 217 March 26, 218 6 Lecture 6b: the Euler Maclaurin formula

More information

E The Fast Fourier Transform

E The Fast Fourier Transform Fourier Transform Methods in Finance By Umberto Cherubini Giovanni Della Lunga Sabrina Mulinacci Pietro Rossi Copyright 2010 John Wiley & Sons Ltd E The Fast Fourier Transform E.1 DISCRETE FOURIER TRASFORM

More information

FFTs in Graphics and Vision. Homogenous Polynomials and Irreducible Representations

FFTs in Graphics and Vision. Homogenous Polynomials and Irreducible Representations FFTs in Graphics and Vision Homogenous Polynomials and Irreducible Representations 1 Outline The 2π Term in Assignment 1 Homogenous Polynomials Representations of Functions on the Unit-Circle Sub-Representations

More information

Solutions to Tutorial for Week 3

Solutions to Tutorial for Week 3 The University of Sydney School of Mathematics and Statistics Solutions to Tutorial for Week 3 MATH9/93: Calculus of One Variable (Advanced) Semester, 08 Web Page: sydney.edu.au/science/maths/u/ug/jm/math9/

More information

Discrete Fourier Transform

Discrete Fourier Transform Last lecture I introduced the idea that any function defined on x 0,..., N 1 could be written a sum of sines and cosines. There are two different reasons why this is useful. The first is a general one,

More information

Scientific Computing: An Introductory Survey

Scientific Computing: An Introductory Survey Scientific Computing: An Introductory Survey Chapter 12 Prof. Michael T. Heath Department of Computer Science University of Illinois at Urbana-Champaign Copyright c 2002. Reproduction permitted for noncommercial,

More information

MATH 220: INNER PRODUCT SPACES, SYMMETRIC OPERATORS, ORTHOGONALITY

MATH 220: INNER PRODUCT SPACES, SYMMETRIC OPERATORS, ORTHOGONALITY MATH 22: INNER PRODUCT SPACES, SYMMETRIC OPERATORS, ORTHOGONALITY When discussing separation of variables, we noted that at the last step we need to express the inhomogeneous initial or boundary data as

More information

Lecture Notes for Math 251: ODE and PDE. Lecture 12: 3.3 Complex Roots of the Characteristic Equation

Lecture Notes for Math 251: ODE and PDE. Lecture 12: 3.3 Complex Roots of the Characteristic Equation Lecture Notes for Math 21: ODE and PDE. Lecture 12: 3.3 Complex Roots of the Characteristic Equation Shawn D. Ryan Spring 2012 1 Complex Roots of the Characteristic Equation Last Time: We considered the

More information

Advanced Computational Fluid Dynamics AA215A Lecture 2 Approximation Theory. Antony Jameson

Advanced Computational Fluid Dynamics AA215A Lecture 2 Approximation Theory. Antony Jameson Advanced Computational Fluid Dynamics AA5A Lecture Approximation Theory Antony Jameson Winter Quarter, 6, Stanford, CA Last revised on January 7, 6 Contents Approximation Theory. Least Squares Approximation

More information

Queens College, CUNY, Department of Computer Science Numerical Methods CSCI 361 / 761 Spring 2018 Instructor: Dr. Sateesh Mane.

Queens College, CUNY, Department of Computer Science Numerical Methods CSCI 361 / 761 Spring 2018 Instructor: Dr. Sateesh Mane. Queens College, CUNY, Department of Computer Science Numerical Methods CSCI 361 / 761 Spring 2018 Instructor: Dr. Sateesh Mane c Sateesh R. Mane 2018 8 Lecture 8 8.1 Matrices July 22, 2018 We shall study

More information

3 rd class Mech. Eng. Dept. hamdiahmed.weebly.com Fourier Series

3 rd class Mech. Eng. Dept. hamdiahmed.weebly.com Fourier Series Definition 1 Fourier Series A function f is said to be piecewise continuous on [a, b] if there exists finitely many points a = x 1 < x 2

More information

CSCI Honor seminar in algorithms Homework 2 Solution

CSCI Honor seminar in algorithms Homework 2 Solution CSCI 493.55 Honor seminar in algorithms Homework 2 Solution Saad Mneimneh Visiting Professor Hunter College of CUNY Problem 1: Rabin-Karp string matching Consider a binary string s of length n and another

More information

Jim Lambers ENERGY 281 Spring Quarter Lecture 5 Notes

Jim Lambers ENERGY 281 Spring Quarter Lecture 5 Notes Jim ambers ENERGY 28 Spring Quarter 27-8 ecture 5 Notes These notes are based on Rosalind Archer s PE28 lecture notes, with some revisions by Jim ambers. Fourier Series Recall that in ecture 2, when we

More information

8.2 Graphs of Polar Equations

8.2 Graphs of Polar Equations 8. Graphs of Polar Equations Definition: A polar equation is an equation whose variables are polar coordinates. One method used to graph a polar equation is to convert the equation to rectangular form.

More information

Interpolation on the unit circle

Interpolation on the unit circle Lecture 2: The Fast Discrete Fourier Transform Interpolation on the unit circle So far, we have considered interpolation of functions at nodes on the real line. When we model periodic phenomena, it is

More information

23.6. The Complex Form. Introduction. Prerequisites. Learning Outcomes

23.6. The Complex Form. Introduction. Prerequisites. Learning Outcomes he Complex Form 3.6 Introduction In this Section we show how a Fourier series can be expressed more concisely if we introduce the complex number i where i =. By utilising the Euler relation: e iθ cos θ

More information

Physics 6303 Lecture 11 September 24, LAST TIME: Cylindrical coordinates, spherical coordinates, and Legendre s equation

Physics 6303 Lecture 11 September 24, LAST TIME: Cylindrical coordinates, spherical coordinates, and Legendre s equation Physics 6303 Lecture September 24, 208 LAST TIME: Cylindrical coordinates, spherical coordinates, and Legendre s equation, l l l l l l. Consider problems that are no axisymmetric; i.e., the potential depends

More information

Frequency-domain representation of discrete-time signals

Frequency-domain representation of discrete-time signals 4 Frequency-domain representation of discrete-time signals So far we have been looing at signals as a function of time or an index in time. Just lie continuous-time signals, we can view a time signal as

More information

x (2) k even h n=(n) + (n+% x(6) X(3), x (5) 4 x(4)- x(), x (2), Decomposition of an N-point DFT into 2 N/2-point DFT's.

x (2) k even h n=(n) + (n+% x(6) X(3), x (5) 4 x(4)- x(), x (2), Decomposition of an N-point DFT into 2 N/2-point DFT's. COMPUTATION OF DISCRETE FOURIER TRANSFORM - PART 2 1. Lecture 19-49 minutes k even n.o h n=(n) + (n+% x (2), x (2) x(4)- x(6) Decomposition of an N-point DFT into 2 N/2-point DFT's. X(3), x (5) 4 x(),

More information

Math 489AB A Very Brief Intro to Fourier Series Fall 2008

Math 489AB A Very Brief Intro to Fourier Series Fall 2008 Math 489AB A Very Brief Intro to Fourier Series Fall 8 Contents Fourier Series. The coefficients........................................ Convergence......................................... 4.3 Convergence

More information

Fast Polynomial Multiplication

Fast Polynomial Multiplication Fast Polynomial Multiplication Marc Moreno Maza CS 9652, October 4, 2017 Plan Primitive roots of unity The discrete Fourier transform Convolution of polynomials The fast Fourier transform Fast convolution

More information

Fundamentals of the DFT (fft) Algorithms

Fundamentals of the DFT (fft) Algorithms Fundamentals of the DFT (fft) Algorithms D. Sundararajan November 6, 9 Contents 1 The PM DIF DFT Algorithm 1.1 Half-wave symmetry of periodic waveforms.............. 1. The DFT definition and the half-wave

More information

Today s lecture. The Fourier transform. Sampling, aliasing, interpolation The Fast Fourier Transform (FFT) algorithm

Today s lecture. The Fourier transform. Sampling, aliasing, interpolation The Fast Fourier Transform (FFT) algorithm Today s lecture The Fourier transform What is it? What is it useful for? What are its properties? Sampling, aliasing, interpolation The Fast Fourier Transform (FFT) algorithm Jean Baptiste Joseph Fourier

More information

Examples of the Fourier Theorem (Sect. 10.3). The Fourier Theorem: Continuous case.

Examples of the Fourier Theorem (Sect. 10.3). The Fourier Theorem: Continuous case. s of the Fourier Theorem (Sect. 1.3. The Fourier Theorem: Continuous case. : Using the Fourier Theorem. The Fourier Theorem: Piecewise continuous case. : Using the Fourier Theorem. The Fourier Theorem:

More information

Tutorial 2 - Learning about the Discrete Fourier Transform

Tutorial 2 - Learning about the Discrete Fourier Transform Tutorial - Learning about the Discrete Fourier Transform This tutorial will be about the Discrete Fourier Transform basis, or the DFT basis in short. What is a basis? If we google define basis, we get:

More information

CS711008Z Algorithm Design and Analysis

CS711008Z Algorithm Design and Analysis CS711008Z Algorithm Design and Analysis Lecture 5 FFT and Divide and Conquer Dongbo Bu Institute of Computing Technology Chinese Academy of Sciences, Beijing, China 1 / 56 Outline DFT: evaluate a polynomial

More information

The Fourier Transform (and more )

The Fourier Transform (and more ) The Fourier Transform (and more ) imrod Peleg ov. 5 Outline Introduce Fourier series and transforms Introduce Discrete Time Fourier Transforms, (DTFT) Introduce Discrete Fourier Transforms (DFT) Consider

More information

8/19/16. Fourier Analysis. Fourier analysis: the dial tone phone. Fourier analysis: the dial tone phone

8/19/16. Fourier Analysis. Fourier analysis: the dial tone phone. Fourier analysis: the dial tone phone Patrice Koehl Department of Biological Sciences National University of Singapore http://www.cs.ucdavis.edu/~koehl/teaching/bl5229 koehl@cs.ucdavis.edu Fourier analysis: the dial tone phone We use Fourier

More information

SEISMIC WAVE PROPAGATION. Lecture 2: Fourier Analysis

SEISMIC WAVE PROPAGATION. Lecture 2: Fourier Analysis SEISMIC WAVE PROPAGATION Lecture 2: Fourier Analysis Fourier Series & Fourier Transforms Fourier Series Review of trigonometric identities Analysing the square wave Fourier Transform Transforms of some

More information

Discrete Fourier Transform

Discrete Fourier Transform Discrete Fourier Transform Valentina Hubeika, Jan Černocký DCGM FIT BUT Brno, {ihubeika,cernocky}@fit.vutbr.cz Diskrete Fourier transform (DFT) We have just one problem with DFS that needs to be solved.

More information

f(x)e ikx dx. (1) f(k)e ikx dk. (2) e ikx dx = 2sinak. k f g(x) = g f(x) = f(s)e iks ds

f(x)e ikx dx. (1) f(k)e ikx dk. (2) e ikx dx = 2sinak. k f g(x) = g f(x) = f(s)e iks ds Mathematical Methods: Page 15 2 Fourier transforms 2.1 Integral transforms The Fourier transform is studied in this chapter and the Laplace transform in the next. They are both integral transforms that

More information

Sequential Fast Fourier Transform (PSC ) Sequential FFT

Sequential Fast Fourier Transform (PSC ) Sequential FFT Sequential Fast Fourier Transform (PSC 3.1 3.2) 1 / 18 Applications of Fourier analysis Fourier analysis studies the decomposition of functions into their frequency components. Piano Concerto no. 9 by

More information

Fast Fourier Transform

Fast Fourier Transform Why Fourier Transform? Fast Fourier Transform Jordi Cortadella and Jordi Petit Department of Computer Science Polynomials: coefficient representation Divide & Conquer Dept. CS, UPC Polynomials: point-value

More information

MARN 5898 Fourier Analysis.

MARN 5898 Fourier Analysis. MAR 5898 Fourier Analysis. Dmitriy Leykekhman Spring 2010 Goals Fourier Series. Discrete Fourier Transforms. D. Leykekhman - MAR 5898 Parameter estimation in marine sciences Linear Least Squares 1 Complex

More information

Project 2 The Threaded Two Dimensional Discrete Fourier Transform

Project 2 The Threaded Two Dimensional Discrete Fourier Transform ECE6122/6122 Spring Semester, 2017 Project 2 The Threaded Two Dimensional Discrete Fourier Transform Assigned: Feb 1, 2017 Due: Feb 15, 2017, 11:59pm Given a one dimensional array of complex or real input

More information

!Sketch f(t) over one period. Show that the Fourier Series for f(t) is as given below. What is θ 1?

!Sketch f(t) over one period. Show that the Fourier Series for f(t) is as given below. What is θ 1? Second Year Engineering Mathematics Laboratory Michaelmas Term 998 -M L G Oldfield 30 September, 999 Exercise : Fourier Series & Transforms Revision 4 Answer all parts of Section A and B which are marked

More information

[ ], [ ] [ ] [ ] = [ ] [ ] [ ]{ [ 1] [ 2]

[ ], [ ] [ ] [ ] = [ ] [ ] [ ]{ [ 1] [ 2] 4. he discrete Fourier transform (DF). Application goal We study the discrete Fourier transform (DF) and its applications: spectral analysis and linear operations as convolution and correlation. We use

More information

FOURIER SERIES, HAAR WAVELETS AND FAST FOURIER TRANSFORM

FOURIER SERIES, HAAR WAVELETS AND FAST FOURIER TRANSFORM FOURIER SERIES, HAAR WAVELETS AD FAST FOURIER TRASFORM VESA KAARIOJA, JESSE RAILO AD SAMULI SILTAE Abstract. This handout is for the course Applications of matrix computations at the University of Helsinki

More information

2.161 Signal Processing: Continuous and Discrete Fall 2008

2.161 Signal Processing: Continuous and Discrete Fall 2008 MIT OpenCourseWare http://ocw.mit.edu 2.161 Signal rocessing: Continuous and Discrete Fall 2008 For information about citing these materials or our Terms of Use, visit: http://ocw.mit.edu/terms. Massachusetts

More information

The Fast Fourier Transform. Andreas Klappenecker

The Fast Fourier Transform. Andreas Klappenecker The Fast Fourier Transform Andreas Klappenecker Motivation There are few algorithms that had more impact on modern society than the fast Fourier transform and its relatives. The applications of the fast

More information

Chapter 2 Algorithms for Periodic Functions

Chapter 2 Algorithms for Periodic Functions Chapter 2 Algorithms for Periodic Functions In this chapter we show how to compute the Discrete Fourier Transform using a Fast Fourier Transform (FFT) algorithm, including not-so special case situations

More information

1 Complex Numbers. 1.1 Sums and Products

1 Complex Numbers. 1.1 Sums and Products 1 Complex Numbers 1.1 Sums Products Definition: The complex plane, denoted C is the set of all ordered pairs (x, y) with x, y R, where Re z = x is called the real part Imz = y is called the imaginary part.

More information

23. The Finite Fourier Transform and the Fast Fourier Transform Algorithm

23. The Finite Fourier Transform and the Fast Fourier Transform Algorithm 23. The Finite Fourier Transform and the Fast Fourier Transform Algorithm 23.1 Introduction: Fourier Series Early in the Nineteenth Century, Fourier studied sound and oscillatory motion and conceived of

More information

Fourier Transforms For additional information, see the classic book The Fourier Transform and its Applications by Ronald N. Bracewell (which is on the shelves of most radio astronomers) and the Wikipedia

More information

C. Complex Numbers. 1. Complex arithmetic.

C. Complex Numbers. 1. Complex arithmetic. C. Complex Numbers. Complex arithmetic. Most people think that complex numbers arose from attempts to solve quadratic equations, but actually it was in connection with cubic equations they first appeared.

More information

Errata List Numerical Mathematics and Computing, 7th Edition Ward Cheney & David Kincaid Cengage Learning (c) March 2013

Errata List Numerical Mathematics and Computing, 7th Edition Ward Cheney & David Kincaid Cengage Learning (c) March 2013 Chapter Errata List Numerical Mathematics and Computing, 7th Edition Ward Cheney & David Kincaid Cengage Learning (c) 202 9 March 203 Page 4, Summary, 2nd bullet item, line 4: Change A segment of to The

More information

CS168: The Modern Algorithmic Toolbox Lecture #11: The Fourier Transform and Convolution

CS168: The Modern Algorithmic Toolbox Lecture #11: The Fourier Transform and Convolution CS168: The Modern Algorithmic Toolbox Lecture #11: The Fourier Transform and Convolution Tim Roughgarden & Gregory Valiant May 8, 2015 1 Intro Thus far, we have seen a number of different approaches to

More information

Algorithms of Scientific Computing

Algorithms of Scientific Computing Algorithms of Scientific Computing Discrete Fourier Transform (DFT) Michael Bader Technical University of Munich Summer 2018 Fast Fourier Transform Outline Discrete Fourier transform Fast Fourier transform

More information

Computational Methods for Astrophysics: Fourier Transforms

Computational Methods for Astrophysics: Fourier Transforms Computational Methods for Astrophysics: Fourier Transforms John T. Whelan (filling in for Joshua Faber) April 27, 2011 John T. Whelan April 27, 2011 Fourier Transforms 1/13 Fourier Analysis Outline: Fourier

More information

Information and Communications Security: Encryption and Information Hiding

Information and Communications Security: Encryption and Information Hiding Short Course on Information and Communications Security: Encryption and Information Hiding Tuesday, 10 March Friday, 13 March, 2015 Lecture 5: Signal Analysis Contents The complex exponential The complex

More information

Lecture 7 January 26, 2016

Lecture 7 January 26, 2016 MATH 262/CME 372: Applied Fourier Analysis and Winter 26 Elements of Modern Signal Processing Lecture 7 January 26, 26 Prof Emmanuel Candes Scribe: Carlos A Sing-Long, Edited by E Bates Outline Agenda:

More information

Quick Sort Notes , Spring 2010

Quick Sort Notes , Spring 2010 Quick Sort Notes 18.310, Spring 2010 0.1 Randomized Median Finding In a previous lecture, we discussed the problem of finding the median of a list of m elements, or more generally the element of rank m.

More information

Lecture 5. The Digital Fourier Transform. (Based, in part, on The Scientist and Engineer's Guide to Digital Signal Processing by Steven Smith)

Lecture 5. The Digital Fourier Transform. (Based, in part, on The Scientist and Engineer's Guide to Digital Signal Processing by Steven Smith) Lecture 5 The Digital Fourier Transform (Based, in part, on The Scientist and Engineer's Guide to Digital Signal Processing by Steven Smith) 1 -. 8 -. 6 -. 4 -. 2-1 -. 8 -. 6 -. 4 -. 2 -. 2. 4. 6. 8 1

More information

Physics 250 Green s functions for ordinary differential equations

Physics 250 Green s functions for ordinary differential equations Physics 25 Green s functions for ordinary differential equations Peter Young November 25, 27 Homogeneous Equations We have already discussed second order linear homogeneous differential equations, which

More information

Fast Convolution; Strassen s Method

Fast Convolution; Strassen s Method Fast Convolution; Strassen s Method 1 Fast Convolution reduction to subquadratic time polynomial evaluation at complex roots of unity interpolation via evaluation at complex roots of unity 2 The Master

More information

ELEG 305: Digital Signal Processing

ELEG 305: Digital Signal Processing ELEG 5: Digital Signal Processing Lecture 6: The Fast Fourier Transform; Radix Decimatation in Time Kenneth E. Barner Department of Electrical and Computer Engineering University of Delaware Fall 8 K.

More information

The Gibbs Phenomenon

The Gibbs Phenomenon The Gibbs Phenomenon Eli Dean & Britton Girard Math 572, Fall 2013 December 4, 2013 1. Introduction 1 S N f(x) := f(n)e inx := 1 2π n N n N denotes the partial Fourier sum for f at the point x f(x)e inx

More information

Fast and Small: Multiplying Polynomials without Extra Space

Fast and Small: Multiplying Polynomials without Extra Space Fast and Small: Multiplying Polynomials without Extra Space Daniel S. Roche Symbolic Computation Group School of Computer Science University of Waterloo CECM Day SFU, Vancouver, 24 July 2009 Preliminaries

More information

Mathematical Methods for Computer Science

Mathematical Methods for Computer Science Mathematical Methods for Computer Science Computer Laboratory Computer Science Tripos, Part IB Michaelmas Term 2016/17 Professor J. Daugman Exercise problems Fourier and related methods 15 JJ Thomson Avenue

More information

Queens College, CUNY, Department of Computer Science Numerical Methods CSCI 361 / 761 Spring 2018 Instructor: Dr. Sateesh Mane.

Queens College, CUNY, Department of Computer Science Numerical Methods CSCI 361 / 761 Spring 2018 Instructor: Dr. Sateesh Mane. Queens College, CUNY, Department of Computer Scence Numercal Methods CSCI 361 / 761 Sprng 2018 Instructor: Dr. Sateesh Mane c Sateesh R. Mane 2018 16 Lecture 16a May 3, 2018 Numercal soluton of systems

More information

Fourier and Partial Differential Equations

Fourier and Partial Differential Equations Chapter 5 Fourier and Partial Differential Equations 5.1 Fourier MATH 294 SPRING 1982 FINAL # 5 5.1.1 Consider the function 2x, 0 x 1. a) Sketch the odd extension of this function on 1 x 1. b) Expand the

More information

Response to Periodic and Non-periodic Loadings. Giacomo Boffi.

Response to Periodic and Non-periodic Loadings. Giacomo Boffi. Periodic and Non-periodic http://intranet.dica.polimi.it/people/boffi-giacomo Dipartimento di Ingegneria Civile Ambientale e Territoriale Politecnico di Milano March 7, 218 Outline Undamped SDOF systems

More information

Sparse Fourier Transform (lecture 1)

Sparse Fourier Transform (lecture 1) 1 / 73 Sparse Fourier Transform (lecture 1) Michael Kapralov 1 1 IBM Watson EPFL St. Petersburg CS Club November 2015 2 / 73 Given x C n, compute the Discrete Fourier Transform (DFT) of x: x i = 1 x n

More information

CSE 548: Analysis of Algorithms. Lecture 4 ( Divide-and-Conquer Algorithms: Polynomial Multiplication )

CSE 548: Analysis of Algorithms. Lecture 4 ( Divide-and-Conquer Algorithms: Polynomial Multiplication ) CSE 548: Analysis of Algorithms Lecture 4 ( Divide-and-Conquer Algorithms: Polynomial Multiplication ) Rezaul A. Chowdhury Department of Computer Science SUNY Stony Brook Spring 2015 Coefficient Representation

More information

Design and Analysis of Algorithms

Design and Analysis of Algorithms Design and Analysis of Algorithms CSE 5311 Lecture 5 Divide and Conquer: Fast Fourier Transform Junzhou Huang, Ph.D. Department of Computer Science and Engineering CSE5311 Design and Analysis of Algorithms

More information

Computational Data Analysis!

Computational Data Analysis! 12.714 Computational Data Analysis! Alan Chave (alan@whoi.edu)! Thomas Herring (tah@mit.edu),! http://geoweb.mit.edu/~tah/12.714! Concentration Problem:! Today s class! Signals that are near time and band

More information

Introduction to Quantum Computing

Introduction to Quantum Computing Introduction to Quantum Computing The lecture notes were prepared according to Peter Shor s papers Quantum Computing and Polynomial-Time Algorithms for Prime Factorization and Discrete Logarithms on a

More information

Image Analysis. 3. Fourier Transform

Image Analysis. 3. Fourier Transform Image Analysis Image Analysis 3. Fourier Transform Lars Schmidt-Thieme Information Systems and Machine Learning Lab (ISMLL) Institute for Business Economics and Information Systems & Institute for Computer

More information

000=0 001=1 010=2 011=3 100=4 101=5 110=6 111=7 000=0 100=4 010=2 110=6 001=1 101=5 011=3 111=7

000=0 001=1 010=2 011=3 100=4 101=5 110=6 111=7 000=0 100=4 010=2 110=6 001=1 101=5 011=3 111=7 8 CHAPTER : Fourier Series The second idea behind the FFT concerns how to get the correct h k s into the final DFT s of size. If the subscripts to 7 of the h k s are written in binary form, as shown in

More information

CONVERGENCE OF THE FOURIER SERIES

CONVERGENCE OF THE FOURIER SERIES CONVERGENCE OF THE FOURIER SERIES SHAW HAGIWARA Abstract. The Fourier series is a expression of a periodic, integrable function as a sum of a basis of trigonometric polynomials. In the following, we first

More information

FFTs in Graphics and Vision. The Laplace Operator

FFTs in Graphics and Vision. The Laplace Operator FFTs in Graphics and Vision The Laplace Operator 1 Outline Math Stuff Symmetric/Hermitian Matrices Lagrange Multipliers Diagonalizing Symmetric Matrices The Laplacian Operator 2 Linear Operators Definition:

More information

Fourier Series Example

Fourier Series Example Fourier Series Example Let us compute the Fourier series for the function on the interval [ π,π]. f(x) = x f is an odd function, so the a n are zero, and thus the Fourier series will be of the form f(x)

More information

In Z: x + 3 = 2 3x = 2 x = 1 No solution In Q: 3x = 2 x 2 = 2. x = 2 No solution. In R: x 2 = 2 x = 0 x = ± 2 No solution Z Q.

In Z: x + 3 = 2 3x = 2 x = 1 No solution In Q: 3x = 2 x 2 = 2. x = 2 No solution. In R: x 2 = 2 x = 0 x = ± 2 No solution Z Q. THE UNIVERSITY OF NEW SOUTH WALES SCHOOL OF MATHEMATICS AND STATISTICS MATH 1141 HIGHER MATHEMATICS 1A ALGEBRA. Section 1: - Complex Numbers. 1. The Number Systems. Let us begin by trying to solve various

More information

) z r θ ( ) ( ) ( ) = then. Complete Solutions to Examination Questions Complete Solutions to Examination Questions 10.

) z r θ ( ) ( ) ( ) = then. Complete Solutions to Examination Questions Complete Solutions to Examination Questions 10. Complete Solutions to Examination Questions 0 Complete Solutions to Examination Questions 0. (i We need to determine + given + j, j: + + j + j (ii The product ( ( + j6 + 6 j 8 + j is given by ( + j( j

More information

SET 1. (1) Solve for x: (a) e 2x = 5 3x

SET 1. (1) Solve for x: (a) e 2x = 5 3x () Solve for x: (a) e x = 5 3x SET We take natural log on both sides: ln(e x ) = ln(5 3x ) x = 3 x ln(5) Now we take log base on both sides: log ( x ) = log (3 x ln 5) x = log (3 x ) + log (ln(5)) x x

More information

The Fourier transform allows an arbitrary function to be represented in terms of simple sinusoids. The Fourier transform (FT) of a function f(t) is

The Fourier transform allows an arbitrary function to be represented in terms of simple sinusoids. The Fourier transform (FT) of a function f(t) is 1 Introduction Here is something I wrote many years ago while working on the design of anemometers for measuring shear stresses. Part of this work required modelling and compensating for the transfer function

More information

Chapter 17. Fourier series

Chapter 17. Fourier series Chapter 17. Fourier series We have already met the simple periodic functions, of the form cos(ωt θ). In this chapter we shall look at periodic functions of more complicated nature. 1. The basic results

More information

Outline. Introduction

Outline. Introduction Outline Periodic and Non-periodic Dipartimento di Ingegneria Civile e Ambientale, Politecnico di Milano March 5, 4 A periodic loading is characterized by the identity p(t) = p(t + T ) where T is the period

More information

MATH 241 Practice Second Midterm Exam - Fall 2012

MATH 241 Practice Second Midterm Exam - Fall 2012 MATH 41 Practice Second Midterm Exam - Fall 1 1. Let f(x = { 1 x for x 1 for 1 x (a Compute the Fourier sine series of f(x. The Fourier sine series is b n sin where b n = f(x sin dx = 1 = (1 x cos = 4

More information

lim when the limit on the right exists, the improper integral is said to converge to that limit.

lim when the limit on the right exists, the improper integral is said to converge to that limit. hapter 7 Applications of esidues - evaluation of definite and improper integrals occurring in real analysis and applied math - finding inverse Laplace transform by the methods of summing residues. 6. Evaluation

More information

1 What s the big deal?

1 What s the big deal? This note is written for a talk given at the graduate student seminar, titled how to solve quantum mechanics with x 4 potential. What s the big deal? The subject of interest is quantum mechanics in an

More information

Fluid mechanics, topology, and complex analysis

Fluid mechanics, topology, and complex analysis Fluid mechanics, topology, and complex analysis Takehito Yokoyama Department of Physics, Tokyo Institute of Technology, 2-12-1 Ookayama, Meguro-ku, Tokyo 152-8551, Japan (Dated: April 30, 2013 OMPLEX POTENTIAL

More information

A Tridiagonal Matrix

A Tridiagonal Matrix A Tridiagonal Matrix We investigate the simple n n real tridiagonal matrix: α β 0 0... 0 0 0 1 0 0... 0 0 β α β 0... 0 0 1 0 1 0... 0 0 0 β α β... 0 0 0 1 0 1... 0 0 M =....... = αi + β....... = αi + βt,

More information

COMPLEX ANALYSIS TOPIC V: HISTORICAL REMARKS

COMPLEX ANALYSIS TOPIC V: HISTORICAL REMARKS COMPLEX ANALYSIS TOPIC V: HISTORICAL REMARKS PAUL L. BAILEY Historical Background Reference: http://math.fullerton.edu/mathews/n2003/complexnumberorigin.html Rafael Bombelli (Italian 1526-1572) Recall

More information

3. Lecture. Fourier Transformation Sampling

3. Lecture. Fourier Transformation Sampling 3. Lecture Fourier Transformation Sampling Some slides taken from Digital Image Processing: An Algorithmic Introduction using Java, Wilhelm Burger and Mark James Burge Separability ² The 2D DFT can be

More information

Fourier Series. (Com S 477/577 Notes) Yan-Bin Jia. Nov 29, 2016

Fourier Series. (Com S 477/577 Notes) Yan-Bin Jia. Nov 29, 2016 Fourier Series (Com S 477/577 otes) Yan-Bin Jia ov 9, 016 1 Introduction Many functions in nature are periodic, that is, f(x+τ) = f(x), for some fixed τ, which is called the period of f. Though function

More information

Key Intuition: invertibility

Key Intuition: invertibility Introduction to Fourier Analysis CS 510 Lecture #6 January 30, 2017 In the extreme, a square wave Graphic from http://www.mechatronics.colostate.edu/figures/4-4.jpg 2 Fourier Transform Formally, the Fourier

More information

Complex numbers. Reference note to lecture 9 ECON 5101 Time Series Econometrics

Complex numbers. Reference note to lecture 9 ECON 5101 Time Series Econometrics Complex numbers. Reference note to lecture 9 ECON 5101 Time Series Econometrics Ragnar Nymoen March 31 2014 1 Introduction This note gives the definitions and theorems related to complex numbers that are

More information

One of the powerful themes in trigonometry is that the entire subject emanates from a very simple idea: locating a point on the unit circle.

One of the powerful themes in trigonometry is that the entire subject emanates from a very simple idea: locating a point on the unit circle. 2.24 Tanz and the Reciprocals Derivatives of Other Trigonometric Functions One of the powerful themes in trigonometry is that the entire subject emanates from a very simple idea: locating a point on the

More information

Response to Periodic and Non-periodic Loadings. Giacomo Boffi. March 25, 2014

Response to Periodic and Non-periodic Loadings. Giacomo Boffi. March 25, 2014 Periodic and Non-periodic Dipartimento di Ingegneria Civile e Ambientale, Politecnico di Milano March 25, 2014 Outline Introduction Fourier Series Representation Fourier Series of the Response Introduction

More information

Rearrangement on Conditionally Convergent Integrals in Analogy to Series

Rearrangement on Conditionally Convergent Integrals in Analogy to Series Electronic Proceedings of Undergraduate Mathematics Day, Vol. 3 (8), No. 6 Rearrangement on Conditionally Convergent Integrals in Analogy to Series Edward J Timko University of Dayton Dayton OH 45469-36

More information

Chapter 1 Divide and Conquer Polynomial Multiplication Algorithm Theory WS 2015/16 Fabian Kuhn

Chapter 1 Divide and Conquer Polynomial Multiplication Algorithm Theory WS 2015/16 Fabian Kuhn Chapter 1 Divide and Conquer Polynomial Multiplication Algorithm Theory WS 2015/16 Fabian Kuhn Formulation of the D&C principle Divide-and-conquer method for solving a problem instance of size n: 1. Divide

More information

The O () notation. Definition: Let f(n), g(n) be functions of the natural (or real)

The O () notation. Definition: Let f(n), g(n) be functions of the natural (or real) The O () notation When analyzing the runtime of an algorithm, we want to consider the time required for large n. We also want to ignore constant factors (which often stem from tricks and do not indicate

More information

QM and Angular Momentum

QM and Angular Momentum Chapter 5 QM and Angular Momentum 5. Angular Momentum Operators In your Introductory Quantum Mechanics (QM) course you learned about the basic properties of low spin systems. Here we want to review that

More information

Example 2.1. Draw the points with polar coordinates: (i) (3, π) (ii) (2, π/4) (iii) (6, 2π/4) We illustrate all on the following graph:

Example 2.1. Draw the points with polar coordinates: (i) (3, π) (ii) (2, π/4) (iii) (6, 2π/4) We illustrate all on the following graph: Section 10.3: Polar Coordinates The polar coordinate system is another way to coordinatize the Cartesian plane. It is particularly useful when examining regions which are circular. 1. Cartesian Coordinates

More information

Multiplying huge integers using Fourier transforms

Multiplying huge integers using Fourier transforms Fourier transforms October 25, 2007 820348901038490238478324 1739423249728934932894??? integers occurs in many fields of Computational Science: Cryptography Number theory... Traditional approaches to

More information

Computer Problems for Fourier Series and Transforms

Computer Problems for Fourier Series and Transforms Computer Problems for Fourier Series and Transforms 1. Square waves are frequently used in electronics and signal processing. An example is shown below. 1 π < x < 0 1 0 < x < π y(x) = 1 π < x < 2π... and

More information

Fourier Series. Now we need to take a theoretical excursion to build up the mathematics that makes separation of variables possible.

Fourier Series. Now we need to take a theoretical excursion to build up the mathematics that makes separation of variables possible. Fourier Series Now we need to take a theoretical excursion to build up the mathematics that makes separation of variables possible Periodic functions Definition: A function f is periodic with period p

More information