Bài giảng Digital Signal Processing - Chapter 8: DFT/FFT Algorithms - Võ Trung Dũng
Applications: The discrete Fourier transform (DFT) and its fast implementation,
the fast Fourier transform (FFT), have three major uses in DSP:
(a) the numerical computation of the frequency spectrum of a signal;
(b) the efficient implementation of convolution by the FFT; and
(c) the coding of waveforms, such as speech or pictures, for efficient
transmission and storage.
The discrete cosine transform, which is a variant of the DFT, is especially useful for
coding applications
re between f1 and f2. How close to f1 could f3 be in order for the spectrum of the collected samples to exhibit three distinct peaks? How close to f2 could f3 be? Solution: The total number of samples collected is L = fsTL = 10×10 = 100. The frequency resolution of the rectangular window is ∆f = fs/L = 10/100 = 0.1 kHz. Thus, the closest f3 to f1 and f2 will be: DSP-Chapter 8-Dr. Dung Trung Vo DTFT Computation DTFT at a Single Frequency: this section’s attention is to the computational aspects of the DTFT. This expression may be computed at any desired value of ω in the Nyquist interval −π ≤ ω ≤ π Advantage of the periodicity: map the conventional symmetric Nyquist interval −π ≤ ω ≤ π onto the right-sided one 0 ≤ ω ≤ 2π (DFT Nyquist interval) DSP-Chapter 8-Dr. Dung Trung Vo DTFT Computation DTFT at a Single Frequency: can be thought of as the evaluation of the z- transform of the sequence x(n) on the unit circle X(ω) can be computed by evaluating the polynomial X(z) at z = ejω Horner’s rule of synthetic division: to evaluate the z-transform X(z) DSP-Chapter 8-Dr. Dung Trung Vo DTFT Computation Example with L = 4: Starting with X = 0 at n = L − 1 = 3, DSP-Chapter 8-Dr. Dung Trung Vo DTFT Computation DTFT routine implementation: DSP-Chapter 8-Dr. Dung Trung Vo DTFT Computation DTFT over Frequency Range: compute the DTFT over a frequency range, ωa≤ω<ωb, at N frequencies that are equally spaced over this interval Bin width: Routine: returns the N-dimensional complex-valued array X[k]= X(ωk) DSP-Chapter 8-Dr. Dung Trung Vo DTFT Computation DTFT Function: DSP-Chapter 8-Dr. Dung Trung Vo DTFT Computation DFT: N-point DFT of a length-L signal is defined to be the DTFT evaluated at N equally spaced frequencies over the full Nyquist interval, 0 ≤ ω ≤ 2π DFT frequencies: in radians per sample: in Hz: N-point DFT: N-point DFT of length-L signal for k = 0, 1, . . . , N − 1 Bin width: DSP-Chapter 8-Dr. Dung Trung Vo DTFT Computation Routine: The N-dimensional complex DFT array X[k]= X(ωk), k = 0, 1, . . . , N − 1 can be computed by calling the routine dtft over the frequency range [ωa, ωb)= [0, 2π) DSP-Chapter 8-Dr. Dung Trung Vo DTFT Computation dft vs dtftr: dft: has its N frequencies distributed evenly over the full Nyquist interval, [0, 2π), dtftr: has them distributed over any desired subinterval. N frequencies in the dtftr case are more closely spaced DSP-Chapter 8-Dr. Dung Trung Vo DTFT Computation dft with z transform: N computed values X(ωk) can also be thought of as the evaluation of the z transform X(z) at the following z-points on the unit circle Where Nth roots of unity: are evenly spaced around the unit circle DSP-Chapter 8-Dr. Dung Trung Vo DTFT Computation Sample length: two lengths L and N can be specified independently of each other L is the number of time samples in the data record and can even be infinite; N is the number of frequencies at which we choose to evaluate the DTFT Most discussions of the DFT assume that L = N Zero Padding: If L < N, we can pad N−L zeros at the end of the data record to make it of length N. Padding any number of zeros at the end of a signal has no effect on its DTFT. Wrapping: If L > N, the data record may be reduced to length N by wrapping it modulo-N DSP-Chapter 8-Dr. Dung Trung Vo Physical versus Computational Resolution Physical versus Computational Resolution: if the length L of the signal is not large enough to provide sufficient physical resolution, then there is no point increasing the length N of the DFT Example: The following analog signal consisting of three equal-strength sinusoids of frequencies f1 = 2 kHz, f2 = 2.5 kHz, and f3 = 3 kHz DSP-Chapter 8-Dr. Dung Trung Vo Matrix Form of DFT Linear matrix transformation: transform the L dimensional vector of time data into an N-dimensional vector of frequency data where Xk = X(ωk), k = 0, 1, . . . , N − 1. N×L matrix A: Component-wise: DSP-Chapter 8-Dr. Dung Trung Vo Matrix Form of DFT Matrix elements Akn Twiddle factor WN: Notes: First row (k = 0) and first column (n = 0) of A are always unity The matrix A can be built from its second row (k = 1), consisting of the successive powers of WN Exponents in Wkn N can be reduced modulo-N DSP-Chapter 8-Dr. Dung Trung Vo Matrix Form of DFT Some examples of twiddle factors: 2-point DFT matrices: 4-point DFT matrices: DSP-Chapter 8-Dr. Dung Trung Vo Matrix Form of DFT 2-point DFTs of a length-2 signal: 4-point DFTs of a length-4 signal: DSP-Chapter 8-Dr. Dung Trung Vo Modulo-N Reduction Modulo-N reduction or wrapping: is defined by dividing the signal x into contiguous non-overlapping blocks of length N, wrapping the blocks around to be time-aligned with the first block, and adding them up Zero padding: If L is not an integral multiple of N, then the last sub-block will have length less than N; in this case, we may pad enough zeros at the end of the last block to increase its length to N DSP-Chapter 8-Dr. Dung Trung Vo Modulo-N Reduction Example: determine the mod-4 and mod-3 reductions of the length-8 signal vector: For the N = 4 case: For the N = 3 case: where we padded a zero at the end of the third sub-block DSP-Chapter 8-Dr. Dung Trung Vo Modulo-N Reduction Periodic extension: of the signal x(n) with period N is defined: DSP-Chapter 8-Dr. Dung Trung Vo Modulo-N Reduction Periodic extension: of the signal x(n) with period N is defined: Connection of the mod-N reduction to the DFT: the length-N wrapped signal has the same N-point DFT as the original unwrapped signal x DSP-Chapter 8-Dr. Dung Trung Vo Modulo-N Reduction Example: Compute the 4-point DFT of the length-8 signal of Example 9.5.1 in two ways: (a) working with the full unwrapped vector x and (b) computing the DFT of its mod-4 reduction. Solution: The 4×8 DFT matrix was worked out above. The corresponding DFT is. The same DFT can be computed by the DFT matrix acting on the wrapped signal, DSP-Chapter 8-Dr. Dung Trung Vo Inverse DFT Task: recovering the original length-L signal x from its N-point DFT X, that is, inverting the relationship Issue: When L > N, the matrix A is not invertible. As we saw, there are in this case several possible solutions x and having the same mod-N reduction . Among these solutions, the only one that is uniquely obtainable from the knowledge of the DFT vector X is . inverse DFT: corresponding DFT matrix is an N×N square invertible matrix Or component-wise DSP-Chapter 8-Dr. Dung Trung Vo Inverse DFT Unitarity property of the DFT matrix: Matrix inverse: Inverse DFT: IDFT as a DFT: DSP-Chapter 8-Dr. Dung Trung Vo Discrete Fourier series (DFS) Discrete Fourier series (DFS): periodic signal x(n) may be represented by the discrete Fourier series (DFS) Fourier series coefficients: DSP-Chapter 8-Dr. Dung Trung Vo Fast Fourier transform (FFT) Complexity: if we compute the two (N/2)-DFTs directly, at a cost of (N/2)2 multiplications each, the total cost of rebuilding the full N-DFT will be: This amounts to 50 percent savings over computing the N-point DFT directly at a cost of N2 if the two (N/2)-DFTs were computed indirectly by rebuilding each of them from two (N/4)-DFTs, the total cost for rebuilding an N-DFT would be DSP-Chapter 8-Dr. Dung Trung Vo Fast Fourier transform (FFT) Complexity (cont.): if we start with (N/2m)-point DFTs and perform m successive merging steps, the total cost to rebuild the final N-DFT will be: The first term, N2/2m, corresponds to performing the initial (N/2m)-point DFTs directly. Because there are 2m of them, they will require a total cost of 2m(N/2m)2=N2/2m. If the subdivision process is continued for m = B stages, the final dimension will be N/2m = N/2B = 1, which requires no computation at all because the 1-point DFT of a 1-point signal is itself. In this case, the first term will be absent DSP-Chapter 8-Dr. Dung Trung Vo Fast Fourier transform (FFT) Decimation-in-time radix-2 FFT algorithm: By grouping the even-indexed and odd-indexed terms N-point DFT Two length-(N/2) subsequences: Their (N/2)-point DFTs: DSP-Chapter 8-Dr. Dung Trung Vo Fast Fourier transform (FFT) Relation between twiddle factors WN and WN/2: Basic merging result: DSP-Chapter 8-Dr. Dung Trung Vo Fast Fourier transform (FFT) Two groups of N/2 equations: Twiddle factor property: Butterfly merging equations: DSP-Chapter 8-Dr. Dung Trung Vo Fast Fourier transform (FFT) DSP-Chapter 8-Dr. Dung Trung Vo Fast Fourier transform (FFT) Typical FFT algorithm: 1. Shuffling the N-dimensional input into N one-dimensional signals. 2. Performing N one-point DFTs. 3. Merging the N one-point DFTs into one N-point DFT. Shuffling process: generates the smaller and smaller signals Merging process: rebuilds the corresponding DFTs DSP-Chapter 8-Dr. Dung Trung Vo Fast Fourier transform (FFT) Shuffling process: DSP-Chapter 8-Dr. Dung Trung Vo Fast Fourier transform (FFT) DFT merging: DSP-Chapter 8-Dr. Dung Trung Vo Fast Fourier transform (FFT) Bit-reversal process: shuffling process may also be understood as a bit-reversal process. If n is represented by three bits {b0, b1, b2}, its bit-reversed version is obtained by reversing the order of the bits DSP-Chapter 8-Dr. Dung Trung Vo Fast Fourier transform (FFT) Example: Using the FFT algorithm, compute the 8-point DFT of the following 8- point signal: Then, compute the inverse FFT of the result to recover the original time sequence Solution: the shuffling stages stop with 2-dimensional signals which are transformed into their 2-point DFTs by forming sums and differences DSP-Chapter 8-Dr. Dung Trung Vo Fast Fourier transform (FFT) Solution:
File đính kèm:
- bai_giang_digital_signal_processing_chapter_8_dftfft_algorit.pdf