Sie sind auf Seite 1von 57

Chapter 4: Fast Fourier

Transforms

Content and Figures are from Discrete-Time Signal Processing, 2e by Oppenheim, Shafer, and Buck, ©1999-2000 Prentice Hall Inc.
Decimation-In-Time FFT Algorithms
• When the time domain sequence x(n) is decomposed in
to smaller subsequences to compute smaller DFT’s then
that algorithm is called as decimation-in-time(DIT)
algorithm.
• Makes use of both symmetry and periodicity.
• Consider special case of N an integer power of 2.
• Separate x[n] into two sequence of length N/2.
– Even indexed samples in the first sequence
– Odd indexed samples in the other sequence
N 1 N 1 N 1
X k    x[n]e  j  2 / N kn
  x[n]e  j  2 / N kn
  x[ n ]e  j  2 / N kn

n 0 n even n odd

• Substitute variables n=2r for n even and n=2r+1 for odd


20-09-2016 10:59 Dr. Mrs M R Patil 2
Decimation-In-Time FFT Algorithms contd..
N / 2 1 N / 2 1
 X k    x[2r ]W   x[2r  1]W  
2 rk
N N
2 r 1 k

r 0 r 0
N / 2 1 N / 2 1
 X [k ]   x[2r ]W
r 0
rk
N /2 W k
N  x[
r 0
2 r  1]W rk
N /2

 X [k]  Gk   WNk H k  for 0  k 


N
1
2
 X [0]  G0  H 0  X [1]  G1  W81H 1
• G[k] and H[k] are the N/2-point DFT’s of each
subsequence g(n)=x(2n) and h(n)=x(2n+1) and are N/2
periodic. k  
& X [k  2 ]  Gk   WN H k  2  N
N N N 2
2

k  N2 
X [k  ]  Gk   WN
N
2 H k  for 0  k  N2
i.e. X [5]  G1  W85 H 1  X [6]  G2  W86 H 2

• All N points are calculated likewise.


20-09-2016 10:59 Dr. Mrs M R Patil 3
Decimation-In-Time FFT Algorithms contd..
• 8-point DFT example using decimation-in-time

• Two N/2-point DFTs • Combining the DFT outputs


– 2(N/2)2 complex – N complex multiplications
multiplications
– N complex additions
– 2(N/2)2 complex additions
20-09-2016 10:59 Dr. Mrs M R Patil 4
Decimation-In-Time FFT Algorithms contd..
• Total complexity • Repeat same process
– (N2/2)+N complex – Divide N/2-point DFTs
multiplications into
– (N2/2)+N complex additions – Two N/4-point DFTs
– More efficient than direct – Combine outputs
DFT
N / 2 1 N / 4 1 N / 4 1
 Gk    g[r ]WN 2  rk
 g[2l ]WN 2  2 lk
 g [ 2l  1]WN
 2l 1k
2
r 0 l 0 r 0

N / 4 1 N / 4 1
 G[k ]   g[2l ]W
l 0
lk
N /4 W k
N /2  g
l 0
[ 2l  1]W lk
N /4

WNk / 2  WN2 k
N / 4 1 N / 4 1
 G[k ]   g[2l ]W
l 0
lk
N /4 W 2k
N  g [
l 0
2l  1]W lk
N /4

20-09-2016 10:59 Dr. Mrs M R Patil 5


Decimation-In-Time FFT Algorithms contd..
• These computations can be carried out as

• Similarly H(k) can be written as


N / 4 1 N / 4 1
 H [k ]   h[2l ]W
l 0
lk
N /4 W
2k
N  h[
l 0
2l  1]W lk
N /4

20-09-2016 10:59 Dr. Mrs M R Patil 6


Decimation in time FFT contd…
• After two steps of decimation in time

• Repeat until we’re left with two-point DFT’s


• The 2-point DFT flow graph is
20-09-2016 10:59 Dr. Mrs M R Patil 7
Decimation in time FFT contd…
• Final flow graph for 8-point decimation in time

• Complexity:
– Nlog2N complex multiplications and additions
20-09-2016 10:59 Dr. Mrs M R Patil 8
Butterfly Computation
• Flow graph constitutes of butterflies

WNr  N / 2  WNrWNN / 2  WNr

• We can implement each butterfly with one multiplication

• Final complexity for decimation-in-time FFT


– (N/2)log2N complex multiplications and additions
20-09-2016 10:59 Dr. Mrs M R Patil 9
Decimation in time FFT contd…
• The flow graph of 8-point DFT using butterfly computation

20-09-2016 10:59 10
Dr. Mrs M R Patil
In place computation
• Decimation-in-time flow graphs require two sets of
registers
– Input and output for each stage
• Each stage computes N sets of complex numbers
from N complex inputs through basic butterfly.
• Suppose the mth stage computation results in Xm(l)
where l=0,1,…N-1 and m=1,2,..v. Let us think Xm(l) as
output array and Xm-1(l) the input array.

20-09-2016 10:59 Dr. Mrs M R Patil 11


In place computation
• For convenience we define the input samples as X0[l]
• Thus for N=8 note the arrangement of the input indices
– Bit reversed indexing
X 0 0  x0  X 0 000  x000
X 0 1  x4  X 0 001  x100
X 0 2  x2  X 0 010  x010
X 0 3  x6  X 0 011  x110
X 0 4  x1  X 0 100  x001
X 0 5  x5  X 0 101  x101
X 0 6  x3  X 0 110  x011
X 0 7  x7  X 0 111  x111

• Only one array of N storage registers can be physically


used to implement the complete computation.
• The output is stored in place of input representing in place
computation.
20-09-2016 10:59 Dr. Mrs M R Patil 12
P1:Given x(n)={0,1,2,3,4,5,6,7}, find X[k] using DITFFT algorithm
• Here length of FFT=8, the flow graph can be drawn as

20-09-2016 10:59 Dr. Mrs M R Patil 13


• Substituting the values of twiddle factor and computing the
out of each stage. For first stage value of twiddle factor is 1
4

-4

-4
6

-4

10

20-09-2016 10:59
-4 Dr. Mrs M R Patil 14
• Substituting the values of twiddle factor in second stage
and computing the out of second 12 stage.

-4+4j

-4

-4-4j

16
W80
-4+4j
W81
-4
W82
-4-4j
W83
20-09-2016 10:59 Dr. Mrs M R Patil 15
• Substituting the values of twiddle factor and computing
the out of third stage.
12 = 28
12

-4+4j = -4+9.656j
-4+4j

-4 = -4+4j
-4
-4-4j
-4-4j = -4+1.656j

W80  1
16 =-4
16
W81  1
 j

-4+4j 2 2
= -4-1.656j
4 2j
W82   j
-4 = -4-4j
4j
W83   1
 j
-4-4j 2 2
= -4-9.656j
4 2j
20-09-2016 10:59 Dr. Mrs M R Patil 16
P2.Given x(n)={1,2,-1,2,4,2,-1,2}, find X[k] using DITFFT algorithm
• Here length of FFT=8, the flow graph can be drawn as

20-09-2016 10:59 Dr. Mrs M R Patil 17


• Substituting the values of twiddle factor and computing the
out of each stage. For first stage value of twiddle factor is 1
5

-3

-2

0
4

0
20-09-2016 10:59 Dr. Mrs M R Patil 18
• Substituting the values of twiddle factor in second stage
and computing the out of second 3stage.

-3

-3

20-09-2016 10:59 Dr. Mrs M R Patil 19


• Substituting the values of twiddle factor and computing
the out of third stage.
3 = 11
3

-3 = -3
-3

7 =7
7

-3 -3 = -3

W80  1
8 =-5
8
W81  1
 j

0
2 2
= -3
0
W82   j
0 =7
0
W83   1
 j

0 2 2
= -3
0
20-09-2016 10:59 Dr. Mrs M R Patil 20
A Flow graph for 16 point DITFFT: I/P bit reversed and O/P in order
x(0)
x(8)
-1
x(4) W160 -1
x(12)
-1 W164 -1
x(2)
W160 -1
x(10) -1 W162 -1
x(6) W164
W160 -1 -1
x(14) -1 W164 W166 -1
-1
x(1) W160 -1
x(9) -1 W161 -1
x(5) W160 -1 W162 -1
x(13)
-1 W164 -1 W163 -1
x(3)
W160 -1 W164 -1
x(11) -1 -1
W162 W165 -1
x(7) W160 -1 W164 -1 W166 -1
x(15) -1 6
20-09-2016 10:59 W164 W16graph!!!!-1
Write-1O/P of the flow W167 -121
Twiddle factor values used in flow graph for N=16
W  0.924  j 0.3827
1
16
W162  1
2
 j
2
W163  0.3827  j 0.924
W164   j W165  0.3827  j 0.924 W 6
16
1
2
 j
2
W167  0.924  j 0.3827
P3.Find DFT of a sequence x(n)={1,2,3,4,4,3,2,1}using
DITFFT algorithm
X(k)={20,-5.827-j2.414,0,-0.173-j0.414,0,
-0.173+j0.414,0,-5.827+j2.414}
P4. Let a 8-point sequence x(n) = 2n using DITFFT
algorithm computing 8 point DFT

X(k)={255,48.64-j166.07,-51+j102,-78.64+j46.07,-85,
-78.64-j46.07 ,-51-j102 ,48.64+j166.07
20-09-2016 10:59 Dr. Mrs M R Patil 22
P5 : Let x(n) be the following 8 - point sequence
x(n)   1
2
,1, 1
2
,0, -1
2
,1, -1
2

,0
Use DITFFT algorithm to compute DFT.

X [k ]  0,2.8284  j 2.8284,0,0,0,0,0,2.8284  j 2.8284

20-09-2016 10:59 Dr. Mrs M R Patil 23


Decimation-In-Frequency FFT Algorithms
• When the output sequence X(k) is decomposed in to
smaller subsequences to compute smaller DFT’s then
that algorithm is called as decimation-in-frequency
(DIF) algorithm.
• Split the DFT equation into even and odd frequency
indexes
N 1 N / 2 1 N 1

• X 2r    x[n]WN   x[n]WN   x[n]WNn 2 r


n2r n 2r

n 0 n 0 n N / 2

N / 2 1 N 1
X 2r  1   x[n]W n  2 r 1
N /2   x[ n ]W n  2 r 1
N /2
n 0 n N / 2

• In the second part of summations replace n by n+N/2


N / 2 1 N / 2 1 N/ 2 1
 X 2r    x[n]WNn 2r   N n  N2 2 r 
x[n  2 ]WN   x[ n ]  x[ n  N/ 2]W nr
N/ 2
n 0 n 0 n 0

20-09-2016 10:59 Dr. Mrs M R Patil 24


Decimation-In-Frequency FFT Algorithm
Similarly for odd frequency indexed DFT
N / 2 1 N / 2 1
n  N2 2 r 1
 X 2r  1   x[n]W n  2 r 1
N   x[n  N2 ]WN
n 0 n 0

n  N2 2 r 1 n  2 r 1 N N


WN W N
rN
W WN W
N
2 rN
N  1 & WN  1 2

n  N2 2 r 1
WN  WNn 2 r 1
N / 2 1
 X 2r  1   x[n]  x[n  N / 2]W n  2 r 1
N
n 0

 x[n]  x[n  N / 2]W W


N / 2 1
 X 2r  1  n
N
nr
N /2
n 0

Let us define p(n)  x[n]  x[n  N / 2] and 


q(n)  x[n]  x[n  N / 2]WNn 

20-09-2016 10:59 Dr. Mrs M R Patil 25


Decimation-In-Frequency FFT Algorithm

P[k] the N/2 point DFT of p[n] and Q[k] the N/2 point DFT of q[n] shall be
find out by splitting these into N/4 point DFT’s .
20-09-2016 10:59 Dr. Mrs M R Patil 26
Decimation-In-Frequency FFT Algorithm
• Decimating the N/2 point DFT into even index and odd index
2 1 4 1 2 1
N N N

P2l    p[n]WNn22l   p[n]WNn22l   p[n]WNn22l


n 0 n 0 n N 4

4 1 2 1
N N

P2l  1   p[n]WNn22l 1   p[n]WNn22l 1


n 0 n N 4

• In the second part of both equations replace n by n + N/4


4 1 4 1 4 1
N N N

 P2l    p[n]WN 2   p[n  ]WN 2 WN 2    p[n]  p[n  N4 ]WNnl4


n 2l n 2l N 2l
N 4
4
n 0 n 0 n 0

4 1 2 1
N N

 P2l  1   p[n]WN 2
4 1
n  2l 1
  p[n]WN 2 n  2l 1
 
N

   p[n]  p[n  N4 ]WN2 n WNnl4


n 0 n N 4 n 0

4 1 4 1

 
N N

and Q[2l ]   q[n]  q[n  N4 ]WN 4 nl


Q[2l  1]   q[n]  q[n  N4 ]WN2 n WNnl4
n 0 n 0

• Continuing this process till we remain with 2-point DFT at the end.
20-09-2016 10:59 Dr. Mrs M R Patil 27
Decimation-In-Frequency FFT Algorithm
• Final flow graph for 8-point decimation in frequency

20-09-2016 10:59 Dr. Mrs M R Patil 28


P6.Find 8-point DFT of a sequence x(n)={2,1,2,1}using DIFFFT
algorithm. Draw flow graph for N=8 with intermediate values.
2 2
2
1
1 1

2 2
2
1
1 1

0 2 W80  1 2
-1
1 W81  1
2
 j
2
0 0.707-j0.707
-1
2 W8   j
2
0 -2j
-1
1W83  1
2
 j
2 -0.707-j0.707
0
20-09-2016 10:59
-1 Dr. Mrs M R Patil 29
Second stage computation
2 4

1 2

2 0 W80  1
-1
1 0 W82   j
-1
2 2-2j

0.707-j0.707 -j1.414

-2j 2+2j W80  1


-1
-0.707-j0.707 W82   j
-1 1.414 -j1.414
20-09-2016 10:59 Dr. Mrs M R Patil 30
Third stage computation
4 6
2
-1 2

0
0

0
0
-1
2-2j
2-j3.414

-j1.414 -1 2-j0.586

2+2j
2+j0.586

-j1.414 -1 2+j3.414
20-09-2016 10:59 Dr. Mrs M R Patil 31
31
P7.Find DFT of a sequence x(n)={1,2,3,4,4,3,2,1}using
DIFFFT algorithm 10
5 5
1 20
5 5 10
2 -1 0

3 5 5 0 W80
0
-1
5 5 0 W82 -j
4 0
-1 0 -1
-3 W80 -3 -3-j -5.827-j2.414
4
-1
1 -2.827-j1.414
-1 W8 -0.707+j0.707 -1
3 -1 -0.173+j0.414

1 W82 -j -3+j W80 -0.173-j0.414


2
-1 3
-1
-2.12-j2.12
3W8 W82 -j -1
1
20-09-2016 10:59
-1 2.827-j1.414 -5.827+j2.414
-1 1.414+j2.827
Dr. Mrs M R Patil 32
P8:Let x(n) be the following 8-point sequence.
x(n)   1
2
,1, 1
2
,0 , -1
2
,  1, -1
2

,0
Use DIF FFT to find X[k].

X [k ]  0,2.8284  j 2.8284,0,0,0,0,0,2.8284  j 2.8284

20-09-2016 10:59 Dr. Mrs M R Patil 33


Inverse DFT using FFT algorithm
• By definition of DFT and IDFT we have
N 1 N 1
X [k ]   x(n)W nk
N
1
x(n)   X [k ]W - nk
N
n 0 N k 0

• If we observe the two equations the difference


is that the twiddle factors are conjugate.
• The IDFT equation has multiplier 1/N.
• Therefore using the existing flow graph we can
compute the IDFT by interchanging I/p and O/p,
replacing the twiddle factors by its conjugate
pairs and finally multiplying by 1/N

20-09-2016 10:59 Dr. Mrs M R Patil 34


P9.Find the circular convolution of x(n)={1,1,1,1} and
h(n)={1,0,1,0} using DIF-FFT algorithm.
• Lets us first find 4 point DFTs of x(n) and h(n)
1 2 4

1 2 0
X[k]={4,0,0,0}
W40
1 0 0

0 W41
1 0

1 2 2

0 0 2
0 H[k]={2,2,0,0}
1 0 W4 0
1

0 0 W4 0
20-09-2016 10:59 35
Dr. Mrs M R Patil
Y[k]= X[k].H[k] Y[k]={8,0,0,0}
• To find y(n)=x(n)⊛h(n), we shall compute IDFT of Y[k]

8 8 1/4
8 2

0 1/4 2
0 8
W40 1/4
0 2
8 8
W41 1/4
0 2
0 8

y(n)=x(n)⊛h(n)={2,2,2,2}

20-09-2016 10:59 Dr. Mrs M R Patil 36


A flow graph for 16 point DIFFFT: I/P in order and O/P bit reversed

W160

W164

W160
W162

W164 W160

W166 W164
W160
W161

W162 W160

W163 W164
W164 W160
W165 W162

W166 W164 W160

W167 W166 W164


20-09-2016 10:59 Dr. Mrs M R Patil 37
Write I/P and O/P of the flow graph!!!!
P10.Find 8-point IDFT of a sequence
X[k]={4,1-j2.414,0,1-j0.414,0, 1+j0.414,0,1+j2.414} using DIFFFT
algorithm.4 4
4
2-2j
1-j2.414 2-2j

0 0
0
2+2j
1-j0.414 2+2j

0 4 W80  1 4
-1
1
-j2.828 W 8  1
2
 j
2
1+j0.414 2-j2
-1
2
0 0 W8  j 0
-1
1+j2.414 -j2.828W83  1
2
 j
2 2+2j
20-09-2016 10:59
-1 Dr. Mrs M R Patil 38
Second stage computation
4 4

2-2j 4

0 4 W80  1
-1
2
2+2j -4j W8  j
4
-1
4 4

2-2j 4

0 4 W80  1
-1
2+2j W82  j
-1 -4j 4
20-09-2016 10:59 Dr. Mrs M R Patil 39
Third stage computation
4 8 1/8 1

4 1/8
-1 0 0

4
8 1/8 1
4 1/8
-1 0 0

4 8 1/8 1

4 -1 1/8
0 0
4 8 1/8 1
x(n)={1,1,1,1,0,0,0,0} 4 -1 1/8 0
20-09-2016 10:59 Dr. Mrs M R Patil
0 40
40
P11.Find 8-point IDFT of a sequence
X[k]={36,-4+j9.7,-4+j4,-4+j1.7,-4, -4-j1.7,-4-4j,-4-j9.7} using DIFFFT algorithm.
36 32 32
-8+8j
-4+j9.7 -8+8j

-4+j4 -8
-8
-8-8j
-4+j1.7 -8-8j

-4 40 W80  1 40
-1
1
11.4j W 8  1
2
 j
2
-4-j1.7 -8.061+8.061j
-1
2

-4-4j
8j W8  j -8
-1
-4-j9.7 11.4j W83  1
2
 j
2 -8.061-8.061j
20-09-2016 10:59
-1 Dr. Mrs M R Patil 41
Second stage computation
32 24

-8+8j -16

-8 40 W80  1
-1
2
-8-8j 16j W8  j
-16
-1
40 32

-8.061+8.061j -16.121

-8 48 W80  1
-1
-8.061-8.061j W82  j
-1 16.121j -16.121
20-09-2016 10:59 Dr. Mrs M R Patil 42
Third stage computation
24 8 1/8 1

-16 1/8
-1 40 5

40 24 1/8 3
-16 1/8
-1 56 7

15.879 1/8
32 1.9848  2

-16.121 -1 1/8
48.121 6.0151  6
48 31.879 1/8 3.98  4
-16.121 -1 64.121 1/8 8.0151  8
x(n)={1,1.984,3,3.98,5,6.0151,7,8.0151}  {1,2,3,4,5,6,7,8}
43
20-09-2016 10:59 Dr. Mrs M R Patil
43
P12. Consider x1(n)={1,0.5,0.25,0.125}, x2(n)={1,1,1,1}. Determine
X1[k] using DITFFT algorithm and X2[k] using DIFFFT algorithm.
Hence find circular convolution of x1(n)⊛x2(n).
Let us first determine X1[k] using DITFFT algorithm and then
X2[k] using DIFFFT algorithm. Then find IDFT of X1[k] . X2[k]
to findx1(n)⊛x2(n).
1.25 1.875
1
0.75
0.25
0.75-j0.375
0.625
0.5
0.625
-j
0.125
0.375 -j0.375 0.75+j0.375
20-09-2016 10:59 X1[k]={1.875,0.75-j0.375,0.625,0.75+j0.375}
Dr. Mrs M R Patil 44
X2[k] using DIFFFT algorithm
1 2 4 4
2 0
1 0
W40
1 0 0
0
W41
1 0
0 0

Y[k]= X1[k].X2[k] Y[k]={7.5,0,0,0} IDFT of Y[k]


7.5 7.5 1/4
7.5 1.875
0 1/4 1.875
0 7.5
W40 1/4
0 7.5 7.5 1.875
W41 1/4
0 7.5 1.875
0
20-09-2016 10:59
y(n)={1.875, 1.875, 1.875, 1.875}
Dr. Mrs M R Patil 45
P13.Find 8-point IDFT of a sequence
X[k]={0,2+j2,-j4,2-j2,0, 2+2j,4j,2-j2} using DITFFT
algorithm. 0 0 8 1/8
0 1

0 0 8 8 1/8
1

-4j 0 0 -8 1/8 -1

4j -8 -8 1/8
-1
-8j 8

2+2j 4+4j 8 -8 1/8


-1

2+2j 0 0 8 1/8 1

4-4j 8 1/8
2-2j 1
8j -8

2-2j 0 -8 1/8 -1
20-09-2016 10:59
x(n)={1,1,-1,-1,-1,1,1,-1}
Dr. Mrs M R Patil
0
46
P14.Find 8-point IDFT of a sequence
X[k]={4,1-j2.414,0,1-j0.414,0,1+j0.414,0,1+j2.414}
using DITFFT algorithm.

P15: Determine 8-point DFT of a continuous time signal


x(t)= sin(2πft) with f=50Hz. Use DIFFFT algorithm.

20-09-2016 10:59 Dr. Mrs M R Patil 47


The Goertzel Algorithm
• Makes use of the periodicity
e j 2 / N Nk  e j 2k  1
• Multiply DFT equation with this factor
N 1 N 1
X k   e j  2 / N kN
 x[r ]e  j  2 / N rk
  x[r ]e j 2 / N k  N  r 
r 0 r 0

• Define y n  
un  r  

un  r 
k  x[r ]e
r  
j  2 / N k  n  r 
 x[ r
r  
]W  k n  r 
N

• With this definition and using x[n]=0 for n<0 and n>N-1
X k   yk n n  N

• X[k] can be viewed as the output of a filter to the input x[n]


– Impulse response of filter:
hk (n)  e j 2 / N kn un  WN kn u (n)
– X[k] is the output of the filter at time n=N
Copyright (C) 2005 Güner Arslan 351M Digital Signal Processing 48
The Goertzel Filter
• Goertzel Filter
H k z  
1
 yk n   WN k yk n  1  x(n)
1  WN k z 1

• Computational complexity
– 4N real multiplications
– 2N real additions
– Slightly less efficient than the direct method
– It avoids storage of twiddle factor.
Copyright (C) 2005 Güner Arslan 351M Digital Signal Processing 49
P16.For sequence x(n)={2,0,2,0} determine X(2) using
Geortzel Filter. Assume the zero initial conditions.
• According to Geortzel algorithm X(k)=yk(n)|n=N.
• Where yk(n) is found using the following recursive
formula. yk n  WNk yk n  1  x(n)
• In this equation k=2 and N=4, we get X(2)=y2(4)
 y2 n  W42 y2 n 1  x(n)

• Consider y2(-1)=0  y2 0  x(0)  W42 y2 1  2


 y2 1  x(1)  W42 y2 0  0  2  2

 y2 2  x(2)  W42 y2 1  2  2  4

 y2 3  x(3)  W42 y2 2  0  4  4

 y2 4  x(4)  W42 y2 3  0  4  4


20-09-2016 10:59 Dr. Mrs M R Patil 50
Second Order Goertzel Filter
• Multiply both numerator and denominator by the
factor(1-WkNZ-1)
1 1  WNk z 1
1W z k
 H k ( z) 
H k z   2k 1  2
  
N
1  WN k z 1 1  WNk z 1 1  2 cos z z
N

2k
 vk n   2 cos vk n  1  vk n  2  x(n)
N

 X [k ]  yk (n) n  N  vk N   WNk vk N  1

Copyright (C) 2005 Güner Arslan 351M Digital Signal Processing 51


Second Order Goertzel Filter
• Complexity for one DFT coefficient
– Poles: 2N real multiplications and 4N real additions
– Zeros: Need to be implement only once
• 4 real multiplications and 4 real additions
• Complexity for all DFT coefficients
– Each pole is used for two DFT coefficients
• Approximately N2 real multiplications and 2N2 real
additions
• Do not need to evaluate all N DFT coefficients
– Goertzel Algorithm is more efficient than FFT if
• less than M DFT coefficients are needed
• M < log2N

20-09-2016 10:59 Dr. Mrs M R Patil 52


Chirp Z-transform
• Evaluation of z-transform on other contours in the z-
plane including unit circle. N 1
• The ZT of x(n) at a set points of zk X ( zk )   x(n) zkn
n 0
• Where zk =re (j2πk/N)
N 1
 X ( z k )   x ( n) r e
 n
 j 2 kn
N

n 0
• Suppose the points zk in the z-plane fall on an arc
which starts at some point z0=r0ej0.which spirals
towards origin r out away from origin such that the
points are defined as
zk r 0 e j0 ( R0e j0 ) k
• Note that for R0<1 contour spirals in and for R0>1
spiral out. If R0=1 the contour is a circular arc with
radius r0 and for R0=1, r0=1 the contour is unit circle.
20-09-2016 10:59 Dr. Mrs M R Patil 53
Chirp Z-transform

20-09-2016 10:59 Dr. Mrs M R Patil 54


Chirp Z-transform
• Substituting the value of zk in ZT equation
 
N 1
X ( z k ) r e j0 ( R e j0 ) k   x(n) r 0 e j 0 ( R0 e j0 ) k
n

0 0
n 0
• Let R0ej0=V, then
 
N 1
 X ( zk ) r e j0 ( R e j0 ) k   x(n) r 0 e j 0  n
V  nk
0 0
n 0

• nk can be written as nk=1/2[n2+k2-(k-n)2]


   
N 1
 X ( zk ) r e j0 ( R e j0 ) k   x(n) r 0 e j 0  n  12 n 2  k 2  ( k  n ) 2
V
0 0
n 0

 
N 1
 X ( zk ) r e j0 ( R e j0 ) k   x(n) r 0 e j 0  n  12 n 2  12 k 2 1 ( k n)2
V V V 2

0 0
n 0

• Let us define new sequence g (n)  x(n)r 0 e j 0  n


  12 n 2
V
N 1
 X ( zk ) r e j0 ( R e j0 ) k   g (n)V
 12 k 2 1 ( k n)2
V 2

0 0
n 0
N 1

 g (n)V
 12 k 2 1 ( k n)2
 X ( zk ) r j 0
( R0 e j0 ) k
V 2

0e
20-09-2016 10:59 Dr. Mrs M R Patil 55
n 0
Chirp Z-transform
N 1
 12 k 2
 X ( zk ) r e j0 ( R e j0 )k  V y (k )   g (n)V
1 ( k n)2
y (k ) where 2
0 0
n 0

• y(k) can be interpreted as a convolution


k 2/2
between g(k) and V .
• Linear convolution can be computed by FFT
algorithms.
• If n and k variables are replaced with each
other then  n
 X ( zn ) r e j0 ( R e j0 )( n)n  V
n
0 0
1 2
2
g(n) V 
1 2
2

2/2
• The complex signal similar signal used in n
V is
radar systems and is called as chirp signal.
Hence known as chirp Z-transform
20-09-2016 10:59 Dr. Mrs M R Patil 56
Chirp Z-transform
• The block diagram representation of chirp z
transformer can be shown as
g(n)
1 n2
g ( n)  V 2
x(n) Filter impulse response X(Zn)
1 n2
Impulse response  V 2

r e 
0
j 0  n
V
 12 n 2 V
 12 n 2

• Such transformers are commercially available.


• But these implementations may not be 100%
efficient.
• CZT algorithm can be used in spectral analysis, high
resolution analysis and many other applications.

20-09-2016 10:59 Dr. Mrs M R Patil 57

Das könnte Ihnen auch gefallen