digital signal processing - kocaeli...

47
Digital Signal Processing Lecture 8 – Fast Fourier Transform Alp Ertürk [email protected]

Upload: lyhanh

Post on 12-Apr-2018

237 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: Digital Signal Processing - Kocaeli Üniversitesiehm.kocaeli.edu.tr/dersnotlari_data/aerturk/Digital...Fast Fourier Transform (FFT) •The approaches that aim to provide a fast computation

Digital Signal Processing

Lecture 8 – Fast Fourier Transform

Alp Ertürk

[email protected]

Page 2: Digital Signal Processing - Kocaeli Üniversitesiehm.kocaeli.edu.tr/dersnotlari_data/aerturk/Digital...Fast Fourier Transform (FFT) •The approaches that aim to provide a fast computation

Discrete Fourier Transform (DFT)

• DFT:

𝑋 𝑘 =

𝑛=0

𝑁−1

𝑥[𝑛]𝑒−𝑗(2𝜋/𝑁)𝑘𝑛 , 𝑘 = 0, 1, … , 𝑁 − 1

• IDFT:

𝑥 𝑛 =1

𝑁

𝑘=0

𝑁−1

𝑋[𝑘] 𝑒𝑗(2𝜋/𝑁)𝑘𝑛 , 𝑛 = 0, 1,… ,𝑁 − 1

Page 3: Digital Signal Processing - Kocaeli Üniversitesiehm.kocaeli.edu.tr/dersnotlari_data/aerturk/Digital...Fast Fourier Transform (FFT) •The approaches that aim to provide a fast computation

Windowing Prior to DFT

• The periodicity inherent in DFT may often cause some problems

• Consider the following sinusoidal signal. In the following slide, there is the signal that is obtained by the periodic repeating of this signal and the resulting DFT

Page 4: Digital Signal Processing - Kocaeli Üniversitesiehm.kocaeli.edu.tr/dersnotlari_data/aerturk/Digital...Fast Fourier Transform (FFT) •The approaches that aim to provide a fast computation

Windowing Prior to DFT

Page 5: Digital Signal Processing - Kocaeli Üniversitesiehm.kocaeli.edu.tr/dersnotlari_data/aerturk/Digital...Fast Fourier Transform (FFT) •The approaches that aim to provide a fast computation

Windowing Prior to DFT

• However, consider instead a sinusoidal signal that has not completed its full period:

• Repeating this signal periodically results in not a sinusoidal signal, which also affects its DFT:

Page 6: Digital Signal Processing - Kocaeli Üniversitesiehm.kocaeli.edu.tr/dersnotlari_data/aerturk/Digital...Fast Fourier Transform (FFT) •The approaches that aim to provide a fast computation

Windowing Prior to DFT

Page 7: Digital Signal Processing - Kocaeli Üniversitesiehm.kocaeli.edu.tr/dersnotlari_data/aerturk/Digital...Fast Fourier Transform (FFT) •The approaches that aim to provide a fast computation

Windowing Prior to DFT

• In this case, frequency components that are not actually in the signal occur

• This is caused by the potential discontinuity that is caused by the periodicity in DFT

• This can be considered as a leak of the energy to other frequencies, and therefore is termed spectral leakage

• This problem can be mitigated by windowing

Page 8: Digital Signal Processing - Kocaeli Üniversitesiehm.kocaeli.edu.tr/dersnotlari_data/aerturk/Digital...Fast Fourier Transform (FFT) •The approaches that aim to provide a fast computation

Windowing Prior to DFT

• Windowing is multiplying the signal with a function prior to DFT. The window function ensures that the signal’s amplitude converges to zero near the end boundaries, so that periodic repeating does not cause discontinuities

• Some common window functions are:

Page 9: Digital Signal Processing - Kocaeli Üniversitesiehm.kocaeli.edu.tr/dersnotlari_data/aerturk/Digital...Fast Fourier Transform (FFT) •The approaches that aim to provide a fast computation

Windowing Prior to DFT

• To multiply a signal with a window funtion, a window equal to the signal length is constructed. The effects are:

Page 10: Digital Signal Processing - Kocaeli Üniversitesiehm.kocaeli.edu.tr/dersnotlari_data/aerturk/Digital...Fast Fourier Transform (FFT) •The approaches that aim to provide a fast computation

Discrete Fourier Transform (DFT)

• DFT:

𝑋 𝑘 =

𝑛=0

𝑁−1

𝑥[𝑛]𝑒−𝑗(2𝜋/𝑁)𝑘𝑛 , 𝑘 = 0, 1, … , 𝑁 − 1

• IDFT:

𝑥 𝑛 =1

𝑁

𝑘=0

𝑁−1

𝑋[𝑘] 𝑒𝑗(2𝜋/𝑁)𝑘𝑛 , 𝑛 = 0, 1,… ,𝑁 − 1

Page 11: Digital Signal Processing - Kocaeli Üniversitesiehm.kocaeli.edu.tr/dersnotlari_data/aerturk/Digital...Fast Fourier Transform (FFT) •The approaches that aim to provide a fast computation

Discrete Fourier Transform (DFT)

• For each DFT coefficient, we have to compute 𝑁 complex multiplications and 𝑁 − 1 complex additions. In terms of real computations, this equates to 4𝑁 real multiplications and (4𝑁 − 2) real additions.

• For all DFT coefficients, N x N complex multiplications and 𝑁 ×(𝑁 − 1) complex additions. In terms of real computations, this equates to 4𝑁2 real multiplications and 𝑁 × (4𝑁 − 2) real additions.

• As N gets larger, the number of computations required for DFT becomes very large

Page 12: Digital Signal Processing - Kocaeli Üniversitesiehm.kocaeli.edu.tr/dersnotlari_data/aerturk/Digital...Fast Fourier Transform (FFT) •The approaches that aim to provide a fast computation

Fast Fourier Transform (FFT)

• The approaches that aim to provide a fast computation of DFT are termed fast Fourier transform (FFT). Most such approaches are motivated by the following two properties of DFT:

• 1) Periodicity:

𝑒−𝑗 2𝜋/𝑁 𝑘𝑛 = 𝑒−𝑗 2𝜋/𝑁 𝑘 𝑛+𝑁 = 𝑒−𝑗 2𝜋/𝑁 𝑘+𝑁 𝑛

• 2) Conjugate symmetry:

𝑒−𝑗 2𝜋/𝑁 𝑘 𝑁−𝑛 = 𝑒𝑗 2𝜋/𝑁 𝑘𝑛 = 𝑒−𝑗 2𝜋/𝑁 𝑘𝑛∗

Page 13: Digital Signal Processing - Kocaeli Üniversitesiehm.kocaeli.edu.tr/dersnotlari_data/aerturk/Digital...Fast Fourier Transform (FFT) •The approaches that aim to provide a fast computation

Fast Fourier Transform (FFT)

• There are two main FFT approaches:

• Decimation in time: x[n] is decomposed into successively smaller subsequences

• Decimation in frequency: X[k] is into successively smaller subsequences

• We will first go through Goertzel algorithm, which requires computation proportional to 𝑁2 but with a smaller constant of proportionality with respect to regular DFT. Later on we will examine more efficient FFT approaches.

Page 14: Digital Signal Processing - Kocaeli Üniversitesiehm.kocaeli.edu.tr/dersnotlari_data/aerturk/Digital...Fast Fourier Transform (FFT) •The approaches that aim to provide a fast computation

FFT: Goertzel Algorithm

• Let’s begin by noting that due to periodicity property, we have:

𝑒𝑗 2𝜋/𝑁 𝑘𝑁 = 𝑒𝑗2𝜋𝑘 = 1

• Using this property, we can write:

𝑋 𝑘 =

𝑛=0

𝑁−1

𝑥[𝑛]𝑒−𝑗(2𝜋/𝑁)𝑘𝑛 = 𝑒𝑗 2𝜋/𝑁 𝑘𝑁

𝑛=0

𝑁−1

𝑥[𝑛]𝑒−𝑗(2𝜋/𝑁)𝑘𝑛

=

𝑛=0

𝑁−1

𝑥[𝑛]𝑒𝑗(2𝜋/𝑁)𝑘 𝑁−𝑛

Page 15: Digital Signal Processing - Kocaeli Üniversitesiehm.kocaeli.edu.tr/dersnotlari_data/aerturk/Digital...Fast Fourier Transform (FFT) •The approaches that aim to provide a fast computation

FFT: Goertzel Algorithm

𝑋 𝑘 =

𝑟=0

𝑁−1

𝑥[𝑟]𝑒𝑗(2𝜋/𝑁)𝑘 𝑁−𝑟

• Since x[n] is zero for 𝑛 < 0 and 𝑛 ≥ 𝑁, we can state:

𝑋 𝑘 =

𝑟=0

𝑁−1

𝑥 𝑟 𝑒𝑗2𝜋𝑁 𝑘 𝑛−𝑟 𝑢[𝑛 − 𝑟] |𝑛=𝑁 = 𝑦𝑘[𝑛]|𝑛=𝑁

• 𝑦𝑘[𝑛] can be viewed as a discrete convolution of x[n] and the signal 𝑒𝑗 2𝜋 𝑁 𝑘𝑛𝑢[𝑛]

Page 16: Digital Signal Processing - Kocaeli Üniversitesiehm.kocaeli.edu.tr/dersnotlari_data/aerturk/Digital...Fast Fourier Transform (FFT) •The approaches that aim to provide a fast computation

FFT: Goertzel Algorithm

• Computing of each value of 𝑦𝑘[𝑛] requires 4 real multiplications and 4 real additions.

• To obtain X[k] for a particular value of k, we need to compute all the intervening values 𝑦𝑘 1 …𝑦𝑘[𝑁 − 1], which requires 4𝑁 real multiplications and 4𝑁 real additions.

• This would result in 4𝑁2 multiplications and 4𝑁2 additions for the complete X[k], for all k values.

• However, due to the system’s zero and pole locations (which we have not studied yet), this is reduced to 𝑁2 multiplications and 2𝑁2 additions.

Page 17: Digital Signal Processing - Kocaeli Üniversitesiehm.kocaeli.edu.tr/dersnotlari_data/aerturk/Digital...Fast Fourier Transform (FFT) •The approaches that aim to provide a fast computation

FFT: Decimation in Time

• FFT based on decimation in time depends on decomposing x[n] into successively smaller subsequences

• Consider N to be equal to 2𝑣. Since N is an even integer, we can consider computing X[k] by separating x[n] into two N/2 point sequences consisting of even and odd numbered points in x[n]:

𝑋 𝑘 =

𝑛 𝑒𝑣𝑒𝑛

𝑥[𝑛]𝑒−𝑗(2𝜋/𝑁)𝑘𝑛 +

𝑛 𝑜𝑑𝑑

𝑥[𝑛]𝑒−𝑗(2𝜋/𝑁)𝑘𝑛

Page 18: Digital Signal Processing - Kocaeli Üniversitesiehm.kocaeli.edu.tr/dersnotlari_data/aerturk/Digital...Fast Fourier Transform (FFT) •The approaches that aim to provide a fast computation

FFT: Decimation in Time

• Using 𝑛 = 2𝑟 for even 𝑛, and 𝑛 = 2𝑟 + 1 for odd 𝑛:

𝑋 𝑘 =

𝑟=0

𝑁/2−1

𝑥[2𝑟]𝑒−𝑗(2𝜋/𝑁)𝑘2𝑟 +

𝑟=0

𝑁/2−1

𝑥[2𝑟 + 1]𝑒−𝑗(2𝜋/𝑁)𝑘 2𝑟+1

=

𝑟=0

𝑁/2−1

𝑥[2𝑟]𝑊𝑁2𝑘𝑟 +𝑊𝑁

𝑘

𝑟=0

𝑁/2−1

𝑥[2𝑟 + 1]𝑊𝑁2𝑘𝑟

Page 19: Digital Signal Processing - Kocaeli Üniversitesiehm.kocaeli.edu.tr/dersnotlari_data/aerturk/Digital...Fast Fourier Transform (FFT) •The approaches that aim to provide a fast computation

FFT: Decimation in Time

𝑋 𝑘 =

𝑟=0

𝑁/2−1

𝑥[2𝑟]𝑊𝑁2𝑘𝑟 +𝑊𝑁

𝑘

𝑟=0

𝑁/2−1

𝑥[2𝑟 + 1]𝑊𝑁2𝑘𝑟

• However, 𝑊𝑁2 = 𝑒−2𝑗 2𝜋/𝑁 = 𝑒−𝑗 2𝜋/ 𝑁/2 = 𝑊𝑁/2. Thefore:

𝑋 𝑘 =

𝑟=0

𝑁/2−1

𝑥[2𝑟]𝑊𝑁/2𝑘𝑟 +𝑊𝑁

𝑘

𝑟=0

𝑁/2−1

𝑥[2𝑟 + 1]𝑊𝑁/2𝑘𝑟

= 𝐺 𝑘 +𝑊𝑁𝑘𝐻 𝑘 , 𝑘 = 0 , 1 , … , N − 1

where 𝐺 𝑘 and 𝐻 𝑘 are N/2 point DFTs of even and odd x[n] samples, and are periodic with N/2

Page 20: Digital Signal Processing - Kocaeli Üniversitesiehm.kocaeli.edu.tr/dersnotlari_data/aerturk/Digital...Fast Fourier Transform (FFT) •The approaches that aim to provide a fast computation

FFT: Decimation in Time

𝑋 𝑘 = 𝐺 𝑘 +𝑊𝑁𝑘𝐻 𝑘 , 𝑘 = 0 , 1 , … , N − 1

Using the property 𝑊𝑁𝑘+𝑁/2

= −𝑊𝑁𝑘, we can write:

𝑋 𝑘 = 𝐺 𝑘 +𝑊𝑁𝑘𝐻 𝑘 , 𝑘 = 0 , 1 , … , N/2 − 1

𝑋 𝑘 + N/2 = 𝐺 𝑘 −𝑊𝑁𝑘𝐻 𝑘 , 𝑘 = 0 , 1 , … , N/2 − 1

Note that 𝐺 𝑘 = 𝐺 𝑘 + 𝑁/2 and 𝐻 𝑘 = 𝐻 𝑘 + 𝑁/2

Page 21: Digital Signal Processing - Kocaeli Üniversitesiehm.kocaeli.edu.tr/dersnotlari_data/aerturk/Digital...Fast Fourier Transform (FFT) •The approaches that aim to provide a fast computation

FFT: Decimation in Time

Page 22: Digital Signal Processing - Kocaeli Üniversitesiehm.kocaeli.edu.tr/dersnotlari_data/aerturk/Digital...Fast Fourier Transform (FFT) •The approaches that aim to provide a fast computation

FFT: Decimation in Time

• This approach involves two 𝑁/2-point DFTs, which requires 2 𝑁/2 2 complex multiplications and approximately 2 𝑁/2 2

complex additions

• Combining these two 𝑁/2-point DFTs in turn requires 𝑁 complex additions. Therefore the total computation for this approach is N + 2 𝑁/2 2 complex multiplications and additions

• Note that (𝑁 + 𝑁2/2) < 𝑁2 when 𝑁 > 2

• This was the case when we broke the DFT computation into 𝑁/2-point DFTs. But we can continue this line of thought to obtain:

Page 23: Digital Signal Processing - Kocaeli Üniversitesiehm.kocaeli.edu.tr/dersnotlari_data/aerturk/Digital...Fast Fourier Transform (FFT) •The approaches that aim to provide a fast computation

FFT: Decimation in Time

• If 𝑁 = 2𝑣, this decimation in time can be done 𝑣 = log2𝑁times

• After a decimation of 𝑣 = log2𝑁 times, the number of complex multiplications and additions is equal to:

𝑁𝑣 = 𝑁 log2𝑁

Page 24: Digital Signal Processing - Kocaeli Üniversitesiehm.kocaeli.edu.tr/dersnotlari_data/aerturk/Digital...Fast Fourier Transform (FFT) •The approaches that aim to provide a fast computation

FFT: Decimation in Time

Page 25: Digital Signal Processing - Kocaeli Üniversitesiehm.kocaeli.edu.tr/dersnotlari_data/aerturk/Digital...Fast Fourier Transform (FFT) •The approaches that aim to provide a fast computation

FFT: Decimation in Time

Page 26: Digital Signal Processing - Kocaeli Üniversitesiehm.kocaeli.edu.tr/dersnotlari_data/aerturk/Digital...Fast Fourier Transform (FFT) •The approaches that aim to provide a fast computation

FFT: Decimation in Time

• Note that𝑊𝑁0 = 𝑒−𝑗 2𝜋/𝑁 0 = 1

𝑊𝑁𝑁/2= 𝑒−𝑗 2𝜋/𝑁 𝑁/2 = 𝑒−𝑗𝜋 = −1

• So the left-most stage simplifies to:

Page 27: Digital Signal Processing - Kocaeli Üniversitesiehm.kocaeli.edu.tr/dersnotlari_data/aerturk/Digital...Fast Fourier Transform (FFT) •The approaches that aim to provide a fast computation

FFT: Decimation in Time

• Computing for a three digit x[n], we have:

111x111X7x7X

011x110X3x6X

101x101X5x5X

001x100X1x4X

110x011X6x3X

010x010X2x2X

100x001X4x1X

000x000X0x0X

00

00

00

00

00

00

00

00

Page 28: Digital Signal Processing - Kocaeli Üniversitesiehm.kocaeli.edu.tr/dersnotlari_data/aerturk/Digital...Fast Fourier Transform (FFT) •The approaches that aim to provide a fast computation

FFT: Decimation in Time

• Example: 𝑥 𝑛 = 1 3 0 2 4 1 0 2 ⇒ FFT time-decimation:

𝑥𝑜𝑠 𝑛 = 1 0 4 0 , 𝑥𝑒𝑠 𝑛 = 3 2 1 2

𝑥𝑜𝑜𝑠 𝑛 = 1 4 , 𝑥𝑜𝑒𝑠 𝑛 = 0 0 , 𝑥𝑒𝑜𝑠 𝑛 = 3 1 , 𝑥𝑒𝑒𝑠 𝑛 = 2 2

𝑋𝑜𝑜𝑠 𝑘 = 5 − 3 , 𝑋𝑜𝑒𝑠 𝑘 = 0 0 , 𝑋𝑒𝑜𝑠 𝑘 = 4 2 , 𝑋𝑒𝑒𝑠 𝑘 = 4 0

𝑋𝑜𝑠 𝑘 = 𝑋𝑜𝑜𝑠 𝑘 +𝑊4𝑘𝑋𝑜𝑒𝑠 𝑘

Page 29: Digital Signal Processing - Kocaeli Üniversitesiehm.kocaeli.edu.tr/dersnotlari_data/aerturk/Digital...Fast Fourier Transform (FFT) •The approaches that aim to provide a fast computation

FFT: Decimation in Time

• Example (continued):

𝑋𝑜𝑜𝑠 𝑘 = 5 − 3 , 𝑋𝑜𝑒𝑠 𝑘 = 0 0 , 𝑋𝑒𝑜𝑠 𝑘 = 4 2 , 𝑋𝑒𝑒𝑠 𝑘 = 4 0

𝑋𝑜𝑠 𝑘 = 𝑋𝑜𝑜𝑠 𝑘 +𝑊4𝑘𝑋𝑜𝑒𝑠 𝑘 , 𝑘 = 0,1

𝑋𝑜𝑠 𝑘 + 2 = 𝑋𝑜𝑜𝑠 𝑘 −𝑊4𝑘𝑋𝑜𝑒𝑠 𝑘 , 𝑘 = 0,1

𝑋𝑜𝑠 0 = 5 + 𝑒−𝑗 2𝜋/4 0 0 = 5

𝑋𝑜𝑠 1 = −3 + 𝑒−𝑗2𝜋4 1 0 = −3

𝑋𝑜𝑠 2 = 5 − 𝑒−𝑗 2𝜋/4 0 0 = 5

𝑋𝑜𝑠 3 = −3 − 𝑒−𝑗2𝜋4 1 0 = −3

𝑋𝑜𝑠 𝑘 = [5 − 3 5 − 3]

Page 30: Digital Signal Processing - Kocaeli Üniversitesiehm.kocaeli.edu.tr/dersnotlari_data/aerturk/Digital...Fast Fourier Transform (FFT) •The approaches that aim to provide a fast computation

FFT: Decimation in Time

• Example (continued):

𝑋𝑜𝑜𝑠 𝑘 = 5 − 3 , 𝑋𝑜𝑒𝑠 𝑘 = 0 0 , 𝑋𝑒𝑜𝑠 𝑘 = 4 2 , 𝑋𝑒𝑒𝑠 𝑘 = 4 0

𝑋𝑒𝑠 𝑘 = 𝑋𝑒𝑜𝑠 𝑘 +𝑊4𝑘𝑋𝑒𝑒𝑠 𝑘 , 𝑘 = 0,1

𝑋𝑒𝑠 𝑘 + 2 = 𝑋𝑒𝑜𝑠 𝑘 −𝑊4𝑘𝑋𝑒𝑒𝑠 𝑘 , 𝑘 = 0,1

𝑋𝑒𝑠 0 = 4 + 𝑒−𝑗 2𝜋/4 0 4 = 8

𝑋𝑒𝑠 1 = 2 + 𝑒−𝑗2𝜋4 1 0 = 2

𝑋𝑒𝑠 2 = 4 − 𝑒−𝑗 2𝜋/4 0 4 = 0

𝑋𝑒𝑠 3 = 2 − 𝑒−𝑗2𝜋4 1 0 = 2

𝑋𝑒𝑠 𝑘 = [8 2 0 2]

Page 31: Digital Signal Processing - Kocaeli Üniversitesiehm.kocaeli.edu.tr/dersnotlari_data/aerturk/Digital...Fast Fourier Transform (FFT) •The approaches that aim to provide a fast computation

FFT: Decimation in Time

• Example (continued):

𝑋𝑜𝑠 𝑘 = 5 − 3 5 − 3 , 𝑋𝑒𝑠 𝑘 = [8 2 0 2]

𝑋 𝑘 = 𝑋𝑜𝑠 𝑘 +𝑊8𝑘𝑋𝑒𝑠 𝑘 , 𝑘 = 0,1,2,3

𝑋 𝑘 + 4 = 𝑋𝑜𝑠 𝑘 −𝑊8𝑘𝑋𝑒𝑠 𝑘 , 𝑘 = 0,1,2,3

𝑋 0 = 5 + 𝑒−𝑗 2𝜋/8 0 8 = 13

𝑋 1 = −3 + 𝑒−𝑗2𝜋8 1 2 = −1.5858 − 𝑗1.412

𝑋 2 = 5 + 𝑒−𝑗 2𝜋/8 2 0 = 5

𝑋 3 = −3 + 𝑒−𝑗2𝜋8 3 2 = −4.4142 − 𝑗1.4142

Page 32: Digital Signal Processing - Kocaeli Üniversitesiehm.kocaeli.edu.tr/dersnotlari_data/aerturk/Digital...Fast Fourier Transform (FFT) •The approaches that aim to provide a fast computation

FFT: Decimation in Time

• Example (continued):

𝑋𝑜𝑠 𝑘 = 5 − 3 5 − 3 , 𝑋𝑒𝑠 𝑘 = [8 2 0 2]

𝑋 𝑘 = 𝑋𝑜𝑠 𝑘 +𝑊8𝑘𝑋𝑒𝑠 𝑘 , 𝑘 = 0,1,2,3

𝑋 𝑘 + 4 = 𝑋𝑜𝑠 𝑘 −𝑊8𝑘𝑋𝑒𝑠 𝑘 , 𝑘 = 0,1,2,3

𝑋 4 = 5 − 𝑒−𝑗2𝜋8 0 8 = −3

𝑋 5 = −3 − 𝑒−𝑗2𝜋8 1 2 = −4.4142 + 𝑗1.4142

𝑋 6 = 5 − 𝑒−𝑗 2𝜋/8 2 0 = 5

𝑋 7 = −3 − 𝑒−𝑗2𝜋8 3 2 = −1.5858 + 𝑗1.412

Page 33: Digital Signal Processing - Kocaeli Üniversitesiehm.kocaeli.edu.tr/dersnotlari_data/aerturk/Digital...Fast Fourier Transform (FFT) •The approaches that aim to provide a fast computation

FFT: Decimation in Time

• Example (continued):

𝑥 𝑛 = 1 3 0 2 4 1 0 2

𝑋 0 = 13𝑋 1 = −1.5858 − 𝑗1.412

𝑋 2 = 5𝑋 3 = −4.4142 − 𝑗1.4142

𝑋 4 = −3𝑋 5 = −4.4142 + 𝑗1.4142

𝑋 6 = 5𝑋 7 = −1.5858 + 𝑗1.412

Page 34: Digital Signal Processing - Kocaeli Üniversitesiehm.kocaeli.edu.tr/dersnotlari_data/aerturk/Digital...Fast Fourier Transform (FFT) •The approaches that aim to provide a fast computation

FFT: Decimation in Frequency

• FFT based on decimation in frequency depends on decomposing X[k] into successively smaller subsequences

• Consider N to be equal to 2𝑣. Since N is an even integer, we can consider computing even numbered frequency samples and odd numbered frequency samples separately

• Standard DFT equation is:

𝑋 𝑘 =

𝑛=0

𝑁−1

𝑥[𝑛]𝑒−𝑗(2𝜋/𝑁)𝑘𝑛 =

𝑛=0

𝑁−1

𝑥[𝑛]𝑊𝑁𝑛𝑘

Page 35: Digital Signal Processing - Kocaeli Üniversitesiehm.kocaeli.edu.tr/dersnotlari_data/aerturk/Digital...Fast Fourier Transform (FFT) •The approaches that aim to provide a fast computation

FFT: Decimation in Frequency

• The even samples of X[k] are:

𝑋 2𝑟 =

𝑛=0

𝑁−1

𝑥[𝑛]𝑊𝑁𝑛(2𝑟)

=

𝑛=0

𝑁/2−1

𝑥[𝑛]𝑊𝑁𝑛(2𝑟)+

𝑛=𝑁/2

𝑁−1

𝑥[𝑛]𝑊𝑁𝑛(2𝑟)

=

𝑛=0

𝑁/2−1

𝑥[𝑛]𝑊𝑁𝑛(2𝑟)+

𝑛=0

𝑁/2−1

𝑥[𝑛 + 𝑁 2]𝑊𝑁𝑛+𝑁/2 (2𝑟)

Page 36: Digital Signal Processing - Kocaeli Üniversitesiehm.kocaeli.edu.tr/dersnotlari_data/aerturk/Digital...Fast Fourier Transform (FFT) •The approaches that aim to provide a fast computation

FFT: Decimation in Frequency

𝑋 2𝑟 =

𝑛=0

𝑁/2−1

𝑥[𝑛]𝑊𝑁𝑛(2𝑟)+

𝑛=0

𝑁/2−1

𝑥[𝑛 + 𝑁 2]𝑊𝑁𝑛+𝑁/2 (2𝑟)

• Due to periodicity, 𝑊𝑁𝑛+𝑁/2 (2𝑟)

= 𝑊𝑁2𝑟𝑛𝑊𝑁

𝑟𝑁 = 𝑊𝑁2𝑟𝑛

𝑋 2𝑟 =

𝑛=0

𝑁/2−1

𝑥 𝑛 + 𝑥[𝑛 + 𝑁 2] 𝑊𝑁/2𝑛𝑟

Page 37: Digital Signal Processing - Kocaeli Üniversitesiehm.kocaeli.edu.tr/dersnotlari_data/aerturk/Digital...Fast Fourier Transform (FFT) •The approaches that aim to provide a fast computation

FFT: Decimation in Frequency

𝑋 2𝑟 =

𝑛=0

𝑁/2−1

𝑥 𝑛 + 𝑥[𝑛 + 𝑁 2] 𝑊𝑁/2𝑛𝑟

• Using a similar approach, we obtain the odd samples as:

𝑋 2𝑟 + 1 =

𝑛=0

𝑁/2−1

𝑥 𝑛 − 𝑥[𝑛 + 𝑁 2] 𝑊𝑁𝑛𝑊𝑁/2𝑛𝑟

Page 38: Digital Signal Processing - Kocaeli Üniversitesiehm.kocaeli.edu.tr/dersnotlari_data/aerturk/Digital...Fast Fourier Transform (FFT) •The approaches that aim to provide a fast computation

FFT: Decimation in Frequency

Page 39: Digital Signal Processing - Kocaeli Üniversitesiehm.kocaeli.edu.tr/dersnotlari_data/aerturk/Digital...Fast Fourier Transform (FFT) •The approaches that aim to provide a fast computation

FFT: Decimation in Frequency

Page 40: Digital Signal Processing - Kocaeli Üniversitesiehm.kocaeli.edu.tr/dersnotlari_data/aerturk/Digital...Fast Fourier Transform (FFT) •The approaches that aim to provide a fast computation

FFT: Decimation in Frequency

Page 41: Digital Signal Processing - Kocaeli Üniversitesiehm.kocaeli.edu.tr/dersnotlari_data/aerturk/Digital...Fast Fourier Transform (FFT) •The approaches that aim to provide a fast computation

FFT: Decimation in Frequency

• Example: 𝑥 𝑛 = 1 3 0 2 4 1 0 2 ⇒ FFT freq.-decimation:

• N=8 DFT:

𝑋1 𝑘 = 𝑋 2𝑟 =

𝑛=0

𝑁/2−1

𝑥 𝑛 + 𝑥[𝑛 + 𝑁 2] 𝑊𝑁/2𝑛𝑟

=

𝑛=0

3

𝑥 𝑛 + 𝑥[𝑛 + 4] 𝑊4𝑛𝑟 , 𝑘 = 0, 1, 2, 3

𝑋2 𝑘 = 𝑋 2𝑟 + 1 =

𝑛=0

𝑁/2−1

𝑥 𝑛 − 𝑥[𝑛 + 𝑁 2] 𝑊𝑁𝑛𝑊𝑁/2𝑛𝑟

=

𝑛=0

3

𝑥 𝑛 − 𝑥[𝑛 + 4] 𝑊8𝑛𝑊4𝑛𝑟 , 𝑘 = 0, 1, 2, 3

Page 42: Digital Signal Processing - Kocaeli Üniversitesiehm.kocaeli.edu.tr/dersnotlari_data/aerturk/Digital...Fast Fourier Transform (FFT) •The approaches that aim to provide a fast computation

FFT: Decimation in Frequency

• Example (continued): 𝑥 𝑛 = 1 3 0 2 4 1 0 2

𝑥1[𝑛] = 𝑥 𝑛 + 𝑥 𝑛 + 4 = [5 4 0 4]

𝑥2[𝑛] = 𝑥 𝑛 − 𝑥 𝑛 + 4 𝑊8𝑛

= −3 2 0 0 𝑊8𝑛

= [−3𝑒−𝑗2𝜋8 0 2𝑒

−𝑗2𝜋8 1 0𝑒

−𝑗2𝜋8 2 0𝑒−𝑗 2𝜋/8 3]

= [−3 1.4142 − 𝑗1.4142 0 0]

Page 43: Digital Signal Processing - Kocaeli Üniversitesiehm.kocaeli.edu.tr/dersnotlari_data/aerturk/Digital...Fast Fourier Transform (FFT) •The approaches that aim to provide a fast computation

FFT: Decimation in Frequency

• Example (continued): 𝑥1[𝑛] = [5 4 0 4]

• N=4 DFT:

𝑋11 𝑘 = 𝑋1 2𝑘 =

𝑛=0

1

𝑥1 𝑛 + 𝑥1 𝑛 + 2 𝑊2𝑘𝑛 , 𝑘 = 0, 1

𝑋12 𝑘 = 𝑋1 2𝑘 + 1 =

𝑛=0

1

𝑥1 𝑛 − 𝑥1 𝑛 + 2 𝑊4𝑛𝑊2𝑘𝑛 , 𝑘 = 0, 1

𝑥11 𝑛 = 𝑥1 𝑛 + 𝑥1 𝑛 + 2 = 5 8

𝑥12 𝑛 = 𝑥1 𝑛 − 𝑥1 𝑛 + 2 𝑊4𝑛 = 5 0

Page 44: Digital Signal Processing - Kocaeli Üniversitesiehm.kocaeli.edu.tr/dersnotlari_data/aerturk/Digital...Fast Fourier Transform (FFT) •The approaches that aim to provide a fast computation

FFT: Decimation in Frequency

Example (continued): 𝑥2[𝑛] = [−3 1.4142 − 𝑗1.4142 0 0]

• N=4 DFT:

𝑋21 𝑘 = 𝑋2 2𝑘 =

𝑛=0

1

𝑥2 𝑛 + 𝑥2 𝑛 + 2 𝑊2𝑘𝑛 , 𝑘 = 0, 1

𝑋22 𝑘 = 𝑋2 2𝑘 + 1 =

𝑛=0

1

𝑥2 𝑛 − 𝑥2 𝑛 + 2 𝑊4𝑛𝑊2𝑘𝑛 , 𝑘 = 0, 1

𝑥21 𝑛 = 𝑥2 𝑛 + 𝑥2 𝑛 + 2 = [−3 1.4142 − 𝑗1.4142 ]

𝑥22 𝑛 = 𝑥2 𝑛 − 𝑥2 𝑛 + 2 𝑊4𝑛 = [−3 1.4142 − 𝑗1.4142 𝑒−𝑗2𝜋/4]

= [−3 −1.4142 − 𝑗1.4142 ]

Page 45: Digital Signal Processing - Kocaeli Üniversitesiehm.kocaeli.edu.tr/dersnotlari_data/aerturk/Digital...Fast Fourier Transform (FFT) •The approaches that aim to provide a fast computation

FFT: Decimation in Frequency

Example (continued):𝑥11 𝑛 = 5 8 ⇒ 𝑋11 𝑘 = [13 − 3]

𝑥12 𝑛 = 5 0 ⇒ 𝑋12 𝑘 = [5 5]

𝑥21 𝑛 = −3 1.4142 − 𝑗1.4142

⇒ 𝑋21 𝑘 = −1.5858 − 𝑗1.4142 −4.4142 − 𝑗1.4142

𝑥22 𝑛 = [−3 −1.4142 − 𝑗1.4142 ]

⇒ 𝑋22 𝑘 = [ −4.4142 − 𝑗1.4142 −1.5858 + 𝑗1.4142 ]

Page 46: Digital Signal Processing - Kocaeli Üniversitesiehm.kocaeli.edu.tr/dersnotlari_data/aerturk/Digital...Fast Fourier Transform (FFT) •The approaches that aim to provide a fast computation

FFT: Decimation in Frequency

Example (continued):𝑋11 𝑘 = 13 − 3 , 𝑋12 𝑘 = [5 5]

⇒ 𝑋1 𝑘 = 13 5 − 3 5

𝑋21 𝑘 = −1.5858 − 𝑗1.4142 −4.4142 − 𝑗1.4142

𝑋22 𝑘 = [ −4.4142 − 𝑗1.4142 −1.5858 + 𝑗1.4142 ]

⇒ 𝑋2 𝑘= −1.5858 − 𝑗1.4142 (−4.4142 − 𝑗1.4142 (−4.4142

Page 47: Digital Signal Processing - Kocaeli Üniversitesiehm.kocaeli.edu.tr/dersnotlari_data/aerturk/Digital...Fast Fourier Transform (FFT) •The approaches that aim to provide a fast computation

FFT: Decimation in Frequency

Example (continued):

𝑋1 𝑘 = 13 5 − 3 5

𝑋2 𝑘 = −1.5858 − 𝑗1.4142 (−4.4142 − 𝑗1.4142−4.4142𝑗1.4142 −1.5858 + 𝑗1.4142 ]

⇒ 𝑋 𝑘= [13 −1.5858 − 𝑗1.4142 5 −4.4142 − 𝑗1.4142−3 −4.4142𝑗1.4142 5 −1.5858 + 𝑗1.4142 ]