FFT Queries
FFT Queries
FFT Queries
DSP
1. What is FFT? What is the computational efficiency of FFT radix-2 DIT algorithm for an N-point sequence? Compare it with that of direct DFT computations.
FFT: Fast Fourier Transform(FFT) is an algorithm used for computing the discrete fourier transform.FFT algorithm reduces the number of computations .For efficient computation of DFT, Fast Fourier Transform is used. RADIX-2 FFT ALGORITHMS The N -point DFT of an N -point sequence s(n) is
Because x(n) may be either real or complex, evaluating X(k) requires on the order of N complex multiplications and N complex additions for each value of k. Therefore, because there are N values of X(k), computing an N-point DFT requires N2 complex multiplications and additions. The basic strategy that is used in the FFT algorithm is one of "divide and conquer."which involves decomposing an N-point DFT into successively smaller DFTs. To see how this works, suppose that the length of x(n) is even (i.e., N is divisible by 2). If x(n) is decimated into two sequences of length N/2, computing the N/2-point DFT of each of these sequences requires approximately (N/2)2 multiplications and the same number of additions. Thus, the two DFTs require 2(N/2)2 =1/2N2 multiplies and adds. Therefore, if it is possible to find the N-point DFT of s(n) from these two N/2-point DFTS in fewer than N2/2 operations, a savings has been realized.
2. Give the steps involved in implementing radix-2, DIT-FFT algorithm. Decimation-in-Time FFT algorithm:
The decimation-in-time FFT algorithm is based on splitting (decimating) x(n) into smaller sequences and finding X(k) from the DFTs of these decimated sequences. Let x(n) be a sequence of length N = 2", and suppose that x(n) is split (decimated) into two subsequences, each of length N/2. As illustrated in Fig. 7-1, the first sequence, g(n) is formed from the even-index terms, and the second, h(n), is formed from the odd-index terms, and the second, h(n), is formed from the odd-index terms, in terms of these sequences, the N -point DFT of x(n) is
..3.1
GRIETECE
UNIT3
DSP
Fig.2.1 Decimating a sequence of length N=8 by factor of 2 Because Eq. (3.1) may be written as
note that the first term is the N/2-point DFT of g(n), and the second is the N/2-point DFT of h(n): 3.2 Although the N/2-point DFTs of g(n) and h(n) are sequences of length NL2, the periodicity of the complex exponentials allows us to write
Therefore, X(k) may be computed from the N/2-point DFTs G(k) and H(k). Note that because Then and it is only necessary to form the products W; H(k) for k = 0. 1. . , N/2-1. The complex exponentials multiplying H(k) in Eq. (7.2) are called twiddle factors. A block diagram showing the computations that are necessary for the first stage of an eight-point decimation-intime FFT is shown in Fig. 7-2. If N/2 is even, g(n) and h(n) may again be decimated. For example, G (k) may be evaluated as follows:
GRIETECE
UNIT3
DSP
Fig. 2.2 An eight-point decimation-in-time FFT algorithm after the first decimation. As before, this leads to
where the first term is the N /4-point DFT of the even samples of g(n), and the second is the N/4-point DFT of the odd samples. A block diagram illustrating this decomposition is shown in Fig. 2-3. If N is a power of 2, the decimation may be continued until there are only two-point DFTs of the form shown in Fig. 2-4
Fig.2.3. Decimation of the four-point DFT into two-point DFTs in the decimation-in-time FFT.
GRIETECE
UNIT3
DSP
The basic computational unit of the FFT, shown in Fig. 2-5(a), is called a butterfly. This structure may be simplified by factoring out a term from the lower branch as illustrated in Fig. 2-5(b). The factor that remains is time FFT is shown in Fig. 2-6. =-1. A complete eight-point radix-2 decimation-in-
Fig. 2-5. (a) The butterfly, which is the basic computational element of the FFT algorithm (b) A simplified butterfly. With only one complex multiplication.
3. Give the steps involved in implementing radix-2, DIF-FFT algorithm. Decimation-in- Frequency FFT algorithm:
FFT algorithms may be derived by decimating the output sequence X(k) into smaller and smaller subsequences. These algorithms are called decimation-in-frequency FFTs and may be derived as follows. Let N be a power of 2, N=2n. and consider separately evaluating the evenindex and odd-index samples of X(k). The even samples are
Separating this sum into the first N/2 points and the last N/2 points, and using the fact this becomes
GRIETECE
UNIT3
DSP
Finally, because
which is the N /2-point DFT of the sequence that is formed by adding the first N/2 points of x(n) to the last N/2. Proceeding in the same way for the odd samples of X(k) leads to .3.1
..3.2 A flow graph illustrating this first stage of decimation is shown in Fig. 7-7. As with the decimation-in-time FFT, the decimation may be continued until only two-point DFTs remain. A complete eight-point decimation-in-frequency FFT is shown in Fig. 7-8. The complexity of the decimation-in-frequency FFT is the same as the decimation-in-time, and the computations may be performed in place. Finally, note that although the input sequence x(n) is in normal order, the frequency samples X(k) are in bit-reversed order.
Fig.3.1 An eight-point decimation-in-frequency FFT algorithm after the first stage of decimation.
GRIETECE
UNIT3
DSP
4. Assume that a complex multiply takes 1s and that the amounts of time to compute a DFT is determined by the amount of time it takes to perform all of the multiplications. (a) How much time does it take to compute a 1024-point DFT directly? (b) How much time is required if an FFT is used? (c) Repeat parts (a) and (b) for a 4096-point DFT.
(a) Including possible multiplications by I, computing an N-point DFT directly requires N2 complex multiplications. If it takes 1s per complex multiply, the direct evaluation of a 1024point DFT requires (b) With a radix-2 FFT, the number of complex multiplications is approximately (N/2) log2N which, for N=1024, is equal to 5 120. Therefore, the amount of time to compute a 1024-point DFT using an FFT is (c) If the length of the DFT is increased by a factor of 4 to N = 4096, the number of multiplications necessary to compute the DFT directly increases by a factor of 16. Therefore, the time required to evaluate the DFT directly is If, on the other hand, an FFT is used, the number of multiplications is and the amount of time to evaluate the DFT is
GRIETECE
UNIT3
DSP
5. Let x(n) be a sequence of length N with where N is an even integer. (a) Show that the N-point DFT of x(n) has only odd harmonics. That is X(k) =0..k even (b) Show how to find the N-point DFT of x(n) by finding the N/2-point DFT of an appropriately modified sequence.
(a) The N-point DFT of x(n) is
Because x(n)=-x(n + N/2), if k iseven,each term in the sum is zero, and X(k)=0 for k=0,2,4, . . (b) In the first stage of a decimation-in-frequency FFT algorithm, we separately evaluate the even-index and odd-index samples of X(k). If X (k) has only odd harmonics, the even samples are zero, and we need only evaluate the odd samples. From Eq. (3.1) we see that the odd samples are given by
which is the N/2-point DFT of the sequence DFT of x(n), we multiply the first N/2 points of x(n) by
and then compute the N/2-point DFT of y(nh The N/2-point DFT of x(n) is then given by
GRIETECE
UNIT3
DSP
6. When the number of points in the DFT is a power of 4, we can use a radix-2 FFT algorithm. However, when N=4v, it is more efficient to use a radix-4 FFT algorithm. (a) Derive the radix4 decimation-in-time FFT algorithm when N=4v. (b) Draw the structure for the butterfly in the radix-4 FFT, and compare the number of complex multiplies and adds with a radix-4 FFT to a radix-2 FFT.
(a) To derive a decimation-in-time radix-4 FFT. let NI = N/4 and N2 = 4. and define the index maps
We then express X(k) using the decomposition given in Eq. (3.2) with N1=N/4 and N2=4,
is the N/4-point DFT of the sequence x(4n1+n2),and the outer summation is a 4-point DFT,
for kl= 0. 1, 2.3, and n2=0,1.(N/4) - 1.If N2= N/4 is divisible by 4,then the process is repeated. In this way, we generate V = Iog4 N stages with N/4 butterflies in each stage. (b) The 4-point butterflies in the radix-4 FFT perform operations of the form
GRIETECE
UNIT3
DSP
With
Since multiplications by j only requires interchanging real and imaginary parts and possibly changing a sign bit, then each 4-point butterfly only requires 3 complex multiplications. With V= log, N stages, and N/4 butterflies per stage, the number of complex multiplies for a DFT of length N=4v is For a radix-2 decimation-in-time FFT, on the other hand, the number of multiplications is
Therefore, the number of multiplications in a radix-4 FFT is & times the number in a radix-2 FFT.
7. To find the N-point DFT of a sequence where N is a power of 3, N = 3v. (a) Develop a radix-3 decimation-in-time FFT algorithm, and draw the corresponding flow graph for N=9. (h) How many multiplications are required for a radix-3 FFT? (c) Can the computations be performed in place?
(a) A radix-3 decimation-in-time FFT may be derived in exactly the same way as a radix-2 FFT. First, x(n) is decimated by a factor of 3 to form three sequences of length N/3
GRIETECE
UNIT3
DSP
Since
then
Note that the first term is the N/3-point DFT of f (n), the second is of g(n), and the third is times the N/3-point DFT of h(n),
We may continue decimating by factors of 3 until we are left with only 3-point DFTs. The flow graph for a 9-point decimation-in-time FFT is shown in Fig. 7- 1 I. Only one of the 3-point butterflies is shown in the second stage in order to allow for the labeling of the branches. The complete flow graph is formed by replicating this 3-point butterfly up by one node, and down by one node, and changing the branch multiplies to their appropriate values. (b) If N=3v then there are v stages in the radix-3 FFT. The general form of each 3-point butterfly, shown in the second stage of the flow graph in Fig.7-1, requires six multiplies (some require fewer if we do not consider multiplications by 1). Since there are N/3 butterflies in each stage, then the total number of multiplications is 6N log3N
Fig. 7-1. Flow graph for a 9-point decimation-in-time FFT (only one butterfly in the second stage is shown).
GRIETECE
UNIT3
DSP
8. Derive a radix-3 decimation-in-frequency FFT for N=3v and draw the corresponding flow graph for N =9.
As with the radix-2 decimation-in-frequency FFT, with N =3", we separately evaluate the indices for which ((k))3=0, ((k))3 =1, and ((k))3=2. For ((k))3=0 (i.e., k is a multiple of 3),
Separating this sum into the first N/3 points, the second N/3 points, and the last N/3 points, and using the fact that this becomes
With a change in the indexing in the second and third sums, we have
Finally, because
which is the N/3-point DFT of the sequence in brackets. Proceeding in the same way for the samples X(3k + I), we have
GRIETECE
UNIT3
DSP
9. Suppose that we have a number of eight-point decimation-in-time FFT chips. How could these chips be used to compute a 24-point DFT?
A 24-point DFT is defined by
Decimating x(n) by a factor of 3, we may decompose this DFT into three 8 point DFTs as follows:
and use the 8-point FFT chips to find the DFTs F(k), G(k), and H(k), the 24-point DFT of x(n) may be found by combining the outputs of the 8-point FFTs as follows:
GRIETECE