Preface |
|
xxi | |
|
1 Discrete-time signals and systems |
|
|
1 | (62) |
|
|
1 | (1) |
|
1.1 Two signal processing paradigms |
|
|
1 | (2) |
|
1.2 Advantages of digital signal processing |
|
|
3 | (2) |
|
|
5 | (1) |
|
|
6 | (4) |
|
1.4.1 Signal classification |
|
|
7 | (1) |
|
1.4.2 Discrete-time signals |
|
|
8 | (2) |
|
1.5 Basic operations on signals |
|
|
10 | (5) |
|
|
10 | (1) |
|
|
11 | (1) |
|
|
12 | (1) |
|
|
13 | (1) |
|
|
14 | (1) |
|
1.5.6 Operation on multiple sequences |
|
|
14 | (1) |
|
|
15 | (17) |
|
|
15 | (4) |
|
|
19 | (2) |
|
|
21 | (1) |
|
1.6.4 Power-law sequences |
|
|
22 | (1) |
|
1.6.5 Sinusoidal sequences |
|
|
22 | (4) |
|
1.6.6 Complex exponential sequences |
|
|
26 | (2) |
|
1.6.7 Sequence classification |
|
|
28 | (4) |
|
|
32 | (7) |
|
1.7.1 Discrete-time scalar multiplier |
|
|
32 | (2) |
|
|
34 | (1) |
|
|
34 | (1) |
|
|
35 | (1) |
|
1.7.5 Moving-window average |
|
|
36 | (1) |
|
|
37 | (1) |
|
|
38 | (1) |
|
1.7.8 Linear constant-coefficient difference equation (LCCDE) |
|
|
38 | (1) |
|
|
39 | (7) |
|
1.8.1 The additivity property |
|
|
39 | (1) |
|
1.8.2 The scaling property |
|
|
40 | (1) |
|
1.8.3 Discrete-time scalar multiplier |
|
|
41 | (1) |
|
|
41 | (1) |
|
|
42 | (1) |
|
|
42 | (1) |
|
1.8.7 Moving-window average |
|
|
43 | (1) |
|
|
43 | (1) |
|
|
44 | (1) |
|
1.8.10 Linear constant-coefficient difference equation |
|
|
44 | (2) |
|
1.8.11 The "zero-in, zero-out" property of linear systems |
|
|
46 | (1) |
|
|
46 | (3) |
|
1.9.1 Discrete-time scalar multiplier |
|
|
47 | (1) |
|
|
47 | (1) |
|
|
47 | (1) |
|
|
47 | (1) |
|
1.9.5 Moving-window average |
|
|
47 | (1) |
|
|
48 | (1) |
|
|
48 | (1) |
|
1.9.8 Linear constant-coefficient difference equation (LCCDE) |
|
|
49 | (1) |
|
|
49 | (2) |
|
1.10.1 Discrete-time scalar multiplier |
|
|
50 | (1) |
|
|
50 | (1) |
|
|
50 | (1) |
|
|
50 | (1) |
|
1.10.5 Moving-window average |
|
|
50 | (1) |
|
|
50 | (1) |
|
|
51 | (1) |
|
1.10.8 Linear constant-coefficient difference equation (LCCDE) |
|
|
51 | (1) |
|
|
51 | (12) |
|
1.11.1 Discrete-time scalar multiplier |
|
|
51 | (1) |
|
|
51 | (1) |
|
|
51 | (1) |
|
|
52 | (1) |
|
1.11.5 Moving-window average |
|
|
52 | (1) |
|
|
52 | (1) |
|
|
52 | (1) |
|
1.11.8 Linear constant-coefficient difference equation (LCCDE) |
|
|
52 | (1) |
|
|
52 | (1) |
|
|
53 | (10) |
|
|
63 | (50) |
|
|
63 | (1) |
|
|
63 | (5) |
|
2.1.1 Finite impulse response (FIR) systems |
|
|
63 | (2) |
|
2.1.2 Infinite impulse response (IIR) systems |
|
|
65 | (1) |
|
2.1.3 Response of a system to a flipped and shifted impulse |
|
|
66 | (2) |
|
|
68 | (10) |
|
2.2.1 Direct-summation method |
|
|
69 | (2) |
|
2.2.2 Flip-and-shift method |
|
|
71 | (1) |
|
2.2.3 Convolution examples |
|
|
72 | (6) |
|
2.3 Properties of convolution |
|
|
78 | (5) |
|
2.3.1 The commutative property |
|
|
78 | (3) |
|
2.3.2 The associative property |
|
|
81 | (1) |
|
2.3.3 The distributive property |
|
|
82 | (1) |
|
2.4 Stability and causality |
|
|
83 | (6) |
|
|
84 | (4) |
|
|
88 | (1) |
|
2.5 *Convolution reinterpreted |
|
|
89 | (4) |
|
2.5.1 Convolution as polynomial multiplication |
|
|
89 | (1) |
|
2.5.2 Convolution using Matlab |
|
|
90 | (1) |
|
2.5.3 Convolution as matrix multiplication |
|
|
91 | (2) |
|
|
93 | (4) |
|
2.7 * Convolution oflong sequences |
|
|
97 | (3) |
|
|
97 | (2) |
|
2.7.2 Overlap-save method |
|
|
99 | (1) |
|
2.8 Implementation issues |
|
|
100 | (13) |
|
|
101 | (1) |
|
|
101 | (12) |
|
3 Discrete-time Fourier transform |
|
|
113 | (98) |
|
|
113 | (1) |
|
3.1 Complex exponentials and sinusoids |
|
|
113 | (5) |
|
3.1.1 Response of LTI systems to complex exponentials |
|
|
113 | (3) |
|
3.1.2 Response of linear time-invariant systems to sinusoids |
|
|
116 | (2) |
|
3.2 Discrete-time Fourier transform (DTFT) |
|
|
118 | (11) |
|
3.2.1 Orthogonality of complex exponential sequences |
|
|
118 | (1) |
|
3.2.2 Definition and derivation |
|
|
119 | (1) |
|
3.2.3 Notation of the DTFT |
|
|
120 | (1) |
|
3.2.4 Existence of the DTFT |
|
|
121 | (1) |
|
3.2.5 The system function (again) |
|
|
122 | (1) |
|
3.2.6 Periodicity of the DTFT |
|
|
122 | (1) |
|
3.2.7 DTFT of finite-length sequences |
|
|
122 | (5) |
|
3.2.8 DTFT of infinite-length sequences |
|
|
127 | (2) |
|
3.3 Magnitude and phase description of the DTFT |
|
|
129 | (6) |
|
3.3.1 Magnitude and phase of the DTFT of an impulse |
|
|
129 | (2) |
|
3.3.2 Essential phase discontinuities |
|
|
131 | (4) |
|
3.4 Important sequences and their transforms |
|
|
135 | (1) |
|
3.5 Symmetry properties of the DTFT |
|
|
135 | (8) |
|
|
136 | (1) |
|
3.5.2 Conjugate symmetry and antisymmetry |
|
|
136 | (2) |
|
3.5.3 Even and odd symmetry |
|
|
138 | (1) |
|
3.5.4 Consequences of symmetry |
|
|
139 | (1) |
|
3.5.5 * Complex sequences |
|
|
140 | (2) |
|
|
142 | (1) |
|
3.6 Response of a system to sinusoidal input |
|
|
143 | (2) |
|
|
145 | (7) |
|
3.7.1 Causal symmetric sequences |
|
|
145 | (2) |
|
3.7.2 Causal antisymmetric sequences |
|
|
147 | (1) |
|
3.7.3 Time delay and group delay |
|
|
148 | (4) |
|
3.8 The inverse discrete-time Fourier transform |
|
|
152 | (4) |
|
3.9 Using Matlab to compute and plot the DTFT |
|
|
156 | (1) |
|
|
157 | (32) |
|
|
157 | (1) |
|
3.10.2 Delay (shifting) property |
|
|
158 | (1) |
|
3.10.3 Complex modulation (frequency shift) property |
|
|
159 | (7) |
|
|
166 | (1) |
|
3.10.5 Using the convolution property of the DTFT to do filtering |
|
|
167 | (3) |
|
3.10.6 Deconvolution and system identification using the convolution property |
|
|
170 | (2) |
|
3.10.7 Convolution properties |
|
|
172 | (1) |
|
3.10.8 Understanding filtering in the frequency domain |
|
|
173 | (5) |
|
3.10.9 Multiplication (windowing) property |
|
|
178 | (3) |
|
3.10.10 * Time- and band-limited systems |
|
|
181 | (2) |
|
3.10.11 * Spectral and temporal ambiguity |
|
|
183 | (1) |
|
3.10.12 Time-reversal property |
|
|
184 | (2) |
|
3.10.13 Differentiation property |
|
|
186 | (1) |
|
3.10.14 Parseval's theorem |
|
|
186 | (1) |
|
3.10.15 DC-and 7i-value properties |
|
|
187 | (1) |
|
3.10.16 * Using the DTFT to solve linear constant-coefficient difference equations |
|
|
187 | (2) |
|
3.10.17 Summary of DTFT properties |
|
|
189 | (1) |
|
3.11 * The relation between the DTFT and the Fourier series |
|
|
189 | (22) |
|
|
190 | (1) |
|
|
190 | (21) |
|
|
211 | (76) |
|
|
211 | (1) |
|
|
212 | (1) |
|
4.2 The singularities of H(z) |
|
|
213 | (21) |
|
|
214 | (3) |
|
4.2.2 Left-sided sequences |
|
|
217 | (1) |
|
4.2.3 Relation between the z-transform and DTFT |
|
|
218 | (1) |
|
4.2.4 Multiple poles and zeros |
|
|
219 | (8) |
|
4.2.5 Finding the z-transform from the pole-zero plot |
|
|
227 | (1) |
|
4.2.6 Complex poles and zeros |
|
|
227 | (4) |
|
4.2.7 Some important transforms |
|
|
231 | (1) |
|
4.2.8 Finite-length sequences |
|
|
231 | (3) |
|
4.2.9 Plotting pole-zero plots with Matlab |
|
|
234 | (1) |
|
4.3 * Linear-phase FIR systems |
|
|
234 | (6) |
|
|
237 | (1) |
|
|
237 | (3) |
|
4.4 The inverse z-transform |
|
|
240 | (14) |
|
|
240 | (1) |
|
4.4.2 Distinct real poles |
|
|
241 | (3) |
|
|
244 | (1) |
|
4.4.4 Multiple (repeated) poles |
|
|
245 | (2) |
|
4.4.5 Improper rational functions |
|
|
247 | (3) |
|
4.4.6 Using Matlab to compute the inverse z-transform |
|
|
250 | (4) |
|
4.5 Properties of the z-transform |
|
|
254 | (11) |
|
|
255 | (1) |
|
|
255 | (1) |
|
4.5.3 Differentiation property |
|
|
256 | (1) |
|
4.5.4 Time reversal property |
|
|
257 | (2) |
|
4.5.5 Convolution property |
|
|
259 | (3) |
|
4.5.6 Applications of convolution |
|
|
262 | (1) |
|
4.5.7 Initial-value theorem |
|
|
263 | (1) |
|
4.5.8 Final-value theorem |
|
|
263 | (2) |
|
4.6 Linear constant-coefficient difference equations (LCCDE) |
|
|
265 | (9) |
|
4.6.1 LCCDE of FIR systems |
|
|
265 | (1) |
|
4.6.2 LCCDE of IIR systems |
|
|
265 | (1) |
|
4.6.3 Relation between LCCDE and H(z) |
|
|
266 | (1) |
|
4.6.4 Using Matlab to solve LCCDEs |
|
|
267 | (1) |
|
|
268 | (6) |
|
4.7 * The unilateral r-transform |
|
|
274 | (13) |
|
|
274 | (1) |
|
|
275 | (12) |
|
|
287 | (44) |
|
|
287 | (1) |
|
5.1 The computation of H(co) from H(z) |
|
|
287 | (1) |
|
5.2 Systems with a single real zero |
|
|
287 | (8) |
|
|
288 | (1) |
|
|
288 | (7) |
|
5.3 Systems with a single real pole |
|
|
295 | (8) |
|
5.4 Multiple real poles and zeros |
|
|
303 | (3) |
|
5.5 Complex poles and zeros |
|
|
306 | (2) |
|
5.6 *3-D visualization of H(co) from H(z) |
|
|
308 | (2) |
|
|
310 | (11) |
|
5.7.1 Real allpass filter |
|
|
311 | (2) |
|
5.7.2 Multiple poles and zeros |
|
|
313 | (1) |
|
5.7.3 Allpass filters with complex poles and zeros |
|
|
314 | (1) |
|
5.7.4 General allpass filter |
|
|
315 | (1) |
|
5.7.5 Systems with the same magnitude |
|
|
316 | (4) |
|
5.7.6 Practical applications of allpass filters |
|
|
320 | (1) |
|
5.8 Minimum-phase-lag systems |
|
|
321 | (10) |
|
|
323 | (1) |
|
|
323 | (8) |
|
|
331 | (78) |
|
|
331 | (1) |
|
6.1 Overview of A/D and D/A conversion |
|
|
331 | (2) |
|
6.2 Analog sampling and reconstruction |
|
|
333 | (19) |
|
|
334 | (1) |
|
6.2.2 The sampling theorem |
|
|
335 | (7) |
|
6.2.3 The Nyquist sampling criterion |
|
|
342 | (1) |
|
6.2.4 Oversampling, undersampling and critical sampling |
|
|
343 | (5) |
|
6.2.5 * Sampling a cosine |
|
|
348 | (4) |
|
6.3 Conversion from continuous time to discrete time and back |
|
|
352 | (5) |
|
6.3.1 The continuous-to-discrete (C/D) converter |
|
|
352 | (1) |
|
6.3.2 Spectrum of the discrete-time sequence |
|
|
353 | (2) |
|
6.3.3 The discrete-to-continuous (D/C) converter |
|
|
355 | (1) |
|
|
356 | (1) |
|
6.4 Anti-aliasing and reconstruction filters |
|
|
357 | (7) |
|
6.4.1 The anti-aliasing filter |
|
|
357 | (2) |
|
6.4.2 A digital recording application |
|
|
359 | (2) |
|
6.4.3 Reconstruction filter |
|
|
361 | (1) |
|
6.4.4 Revised model of D/A conversion |
|
|
361 | (3) |
|
6.5 Downsampling and upsampling |
|
|
364 | (17) |
|
|
364 | (4) |
|
6.5.2 Decimation and aliasing |
|
|
368 | (3) |
|
6.5.3 Oversampling A/D converter in a digital recording application |
|
|
371 | (1) |
|
|
372 | (3) |
|
6.5.5 * Upsampling a cosine |
|
|
375 | (2) |
|
6.5.6 Upsampling D/A converter in a digital recording application |
|
|
377 | (1) |
|
|
378 | (3) |
|
6.6 Matlab functions for sample-rate conversion |
|
|
381 | (1) |
|
|
382 | (19) |
|
6.7.1 Model of quantization |
|
|
383 | (3) |
|
|
386 | (2) |
|
6.7.3 Noise reduction by oversampling |
|
|
388 | (3) |
|
6.7.4 * Noise-shaping A/D converters |
|
|
391 | (7) |
|
6.7.5 * Sigma-delta A/D converters |
|
|
398 | (3) |
|
6.8 * A/D converter architecture |
|
|
401 | (1) |
|
6.9 * D/A converter architecture |
|
|
401 | (8) |
|
|
402 | (1) |
|
|
402 | (7) |
|
7 Finite impulse response filters |
|
|
409 | (90) |
|
|
409 | (1) |
|
7.1 Linear-phase FIR filters |
|
|
410 | (5) |
|
7.1.1 Types of linear-phase filters |
|
|
410 | (3) |
|
7.1.2 Basic properties of linear-phase filters |
|
|
413 | (2) |
|
7.1.3 * Time-aligned and zero-phase FIR filters |
|
|
415 | (1) |
|
7.2 Preliminaries of filter design |
|
|
415 | (5) |
|
7.2.1 Specification of filter characteristics |
|
|
415 | (2) |
|
7.2.2 The ideal lowpass filter |
|
|
417 | (1) |
|
7.2.3 The optimum least-square-error FIR filter |
|
|
417 | (2) |
|
7.2.4 Even- and odd-length causal filters |
|
|
419 | (1) |
|
7.3 Window-based FIR filter design |
|
|
420 | (17) |
|
7.3.1 Rectangular window filter |
|
|
420 | (6) |
|
7.3.2 Raised cosine window niters |
|
|
426 | (10) |
|
|
436 | (1) |
|
7.4 Highpass, bandpass and bandstop FIR niters |
|
|
437 | (7) |
|
7.5 Matlab implementation of window-based FIR niters |
|
|
444 | (5) |
|
7.5.1 Matlab functions that implement FIR filtering |
|
|
446 | (3) |
|
7.6 * Spline and raised-cosine FIR filters |
|
|
449 | (4) |
|
7.6.1 FIR filters designed using splines |
|
|
449 | (2) |
|
7.6.2 FIR filters designed using raised cosines |
|
|
451 | (2) |
|
7.7 * Frequency-sampled FIR filter design |
|
|
453 | (10) |
|
|
454 | (4) |
|
7.7.2 Frequency sampling as interpolation |
|
|
458 | (2) |
|
|
460 | (1) |
|
7.7.4 Simultaneous equations |
|
|
460 | (3) |
|
7.7.5 Matlab implementation of frequency-sampled filters |
|
|
463 | (1) |
|
7.8 * Least-square-error FIR filter design |
|
|
463 | (7) |
|
7.8.1 Discrete least-square-error FIR filters |
|
|
464 | (6) |
|
7.8.2 * Integral least-square-error FIR filter design |
|
|
470 | (1) |
|
7.9 * Optimal lowpass filter design |
|
|
470 | (1) |
|
|
471 | (1) |
|
|
472 | (2) |
|
7.12 * Hilbert transformer |
|
|
474 | (25) |
|
7.12.1 Derivation of the Hilbert transformer |
|
|
474 | (3) |
|
7.12.2 FIR implementation of a Hilbert transformer |
|
|
477 | (2) |
|
7.12.3 FFT implementation of a Hilbert transformer |
|
|
479 | (1) |
|
7.12.4 Applications of the Hilbert transformer |
|
|
479 | (2) |
|
|
481 | (1) |
|
|
482 | (17) |
|
8 Infinite impulse response filters |
|
|
499 | (98) |
|
|
499 | (1) |
|
8.1 Definition of the IIR filter |
|
|
500 | (1) |
|
8.2 Overview of analog filter design |
|
|
501 | (32) |
|
8.2.1 Parameter definitions |
|
|
502 | (2) |
|
|
504 | (8) |
|
|
512 | (8) |
|
8.2.4 * Inverse Chebyshev filter |
|
|
520 | (5) |
|
|
525 | (7) |
|
|
532 | (1) |
|
|
533 | (11) |
|
8.3.1 Impulse-invariance approach |
|
|
533 | (2) |
|
8.3.2 Impulse-invariance design procedure |
|
|
535 | (6) |
|
8.3.3 Mapping of s-plane to z-plane |
|
|
541 | (3) |
|
8.4 Bilinear transformation |
|
|
544 | (18) |
|
8.4.1 Forward-difference approximation |
|
|
546 | (1) |
|
8.4.2 Backward-difference approximation |
|
|
547 | (1) |
|
8.4.3 Bilinear transformation |
|
|
548 | (1) |
|
8.4.4 Bilinear-transformation procedure |
|
|
549 | (7) |
|
8.4.5 Cascade of second-order sections |
|
|
556 | (6) |
|
8.5 * Spectral transformations of IIR niters |
|
|
562 | (13) |
|
8.5.1 Lowpass-to-lowpass transformation |
|
|
563 | (4) |
|
8.5.2 Lowpass-to-highpass transformation |
|
|
567 | (3) |
|
8.5.3 Lowpass-to-bandpass transformation |
|
|
570 | (3) |
|
8.5.4 Lowpass-to-bandstop transformation |
|
|
573 | (2) |
|
8.6 * Zero-phase IIR filtering |
|
|
575 | (22) |
|
|
578 | (1) |
|
|
578 | (19) |
|
|
597 | (60) |
|
|
597 | (1) |
|
|
597 | (2) |
|
9.2 Canonical filter architecture |
|
|
599 | (4) |
|
9.2.1 First-order filters |
|
|
600 | (2) |
|
9.2.2 Canonical filter architecture |
|
|
602 | (1) |
|
|
603 | (3) |
|
|
606 | (5) |
|
|
609 | (1) |
|
9.4.2 Using Matlab to design cascade filters |
|
|
610 | (1) |
|
9.5 Parallel architecture |
|
|
611 | (2) |
|
9.5.1 Using Matlab to design parallel filters |
|
|
612 | (1) |
|
|
613 | (1) |
|
9.7 * Lattice and lattice-ladder filters |
|
|
614 | (16) |
|
9.7.1 FIR lattice filters |
|
|
615 | (5) |
|
9.7.2 Specialized FIR lattice filters |
|
|
620 | (1) |
|
9.7.3 IIR lattice filters |
|
|
621 | (4) |
|
9.7.4 Allpass lattice filters |
|
|
625 | (1) |
|
9.7.5 Lattice-ladder IIR filters |
|
|
625 | (3) |
|
9.7.6 Stability of IIR filters revisited |
|
|
628 | (2) |
|
9.8 * Coefficient quantization |
|
|
630 | (12) |
|
|
630 | (6) |
|
|
636 | (2) |
|
9.8.3 Systems with poles and zeros |
|
|
638 | (2) |
|
9.8.4 Pairing poles and zeros |
|
|
640 | (1) |
|
9.8.5 Coefficient quantization of lattice filters |
|
|
641 | (1) |
|
9.9 * Implementation issues |
|
|
642 | (15) |
|
9.9.1 Software implementation |
|
|
642 | (5) |
|
9.9.2 Hardware implementation |
|
|
647 | (5) |
|
|
652 | (1) |
|
|
652 | (5) |
|
10 Discrete Fourier transform (DFT) |
|
|
657 | (50) |
|
|
657 | (1) |
|
10.1 Derivation of the DFT |
|
|
658 | (7) |
|
10.1.1 The inverse discrete Fourier transform (IDFT) |
|
|
662 | (2) |
|
10.1.2 Orthogonality of complex exponential sequences |
|
|
664 | (1) |
|
10.1.3 Periodicity of the DFT |
|
|
665 | (1) |
|
10.1.4 * Conditions for the reconstruction of a sequence from the DFT |
|
|
665 | (1) |
|
10.2 DFT of basic signals |
|
|
665 | (5) |
|
|
665 | (1) |
|
|
666 | (1) |
|
|
667 | (1) |
|
10.2.4 DFT of a complex exponential sequence |
|
|
667 | (1) |
|
|
667 | (2) |
|
10.2.6 Resolution and frequency mapping of the DFT |
|
|
669 | (1) |
|
|
670 | (1) |
|
10.3 Properties of the DFT |
|
|
670 | (20) |
|
|
671 | (1) |
|
10.3.2 Complex conjugation |
|
|
671 | (1) |
|
10.3.3 Symmetry properties of the DFT |
|
|
671 | (5) |
|
10.3.4 Circular time shifting |
|
|
676 | (4) |
|
10.3.5 Circular time reversal |
|
|
680 | (2) |
|
10.3.6 Circular frequency shift |
|
|
682 | (1) |
|
10.3.7 Circular convolution |
|
|
682 | (5) |
|
|
687 | (2) |
|
10.3.9 Parseval's theorem |
|
|
689 | (1) |
|
10.3.10 Summary of DFT properties |
|
|
690 | (1) |
|
10.4 * Matrix representation of the DFT |
|
|
690 | (2) |
|
10.5 * Using the DFT to increase resolution in the time and frequency domains |
|
|
692 | (15) |
|
10.5.1 Increasing frequency resolution by zero-padding in the time domain |
|
|
692 | (2) |
|
10.5.2 Upsampling in the time domain by zero-padding in the frequency domain |
|
|
694 | (3) |
|
10.5.3 * Recovery of the DTFT from the DFT |
|
|
697 | (1) |
|
|
697 | (1) |
|
|
697 | (10) |
|
11 Fast Fourier transform (FFT) |
|
|
707 | (54) |
|
|
707 | (1) |
|
11.1 Radix-2 FFT transforms |
|
|
708 | (13) |
|
11.1.1 Decimation-in-time FFT |
|
|
709 | (6) |
|
11.1.2 Computational gain |
|
|
715 | (2) |
|
|
717 | (2) |
|
11.1.4 * Decimation-in-frequency FFT |
|
|
719 | (2) |
|
|
721 | (4) |
|
11.2.1 The radix-4 decomposition |
|
|
721 | (2) |
|
11.2.2 The radix-4 transform as a combination of radix-2 transforms |
|
|
723 | (2) |
|
11.3 * Composite (mixed-radix) FFT |
|
|
725 | (5) |
|
11.3.1 FFTs of composite size |
|
|
726 | (3) |
|
11.3.2 Mixed radix-2 and radix-4 transform |
|
|
729 | (1) |
|
11.3.3 Transposed and split-radix transforms |
|
|
729 | (1) |
|
|
730 | (1) |
|
11.5 Matlab implementation |
|
|
731 | (1) |
|
11.6 FFT of real sequences |
|
|
732 | (7) |
|
11.6.1 Properties of DFTs (revisited) |
|
|
732 | (1) |
|
11.6.2 TV-point FFT of two real A-point sequences |
|
|
733 | (2) |
|
11.6.3 Appoint IFFT of two Appoint transforms |
|
|
735 | (1) |
|
11.6.4 * A/2-point FFT of a real A-point sequence |
|
|
736 | (1) |
|
11.6.5 * A/2-point IFFT of an A-point transform |
|
|
737 | (2) |
|
|
739 | (2) |
|
11.7.1 Increasing the resolution of the FFT |
|
|
740 | (1) |
|
11.7.2 Decreasing the resolution of the FFT |
|
|
740 | (1) |
|
11.8 Fast convolution using the FFT |
|
|
741 | (6) |
|
11.8.1 Convolution of fixed-length input sequences |
|
|
741 | (2) |
|
11.8.2 Block convolution using the FFT |
|
|
743 | (3) |
|
11.8.3 ? Using both DIT and DIF transforms |
|
|
746 | (1) |
|
11.8.4 Matlab support for convolution using the FFT |
|
|
747 | (1) |
|
11.9 ? The Goertzel algorithm |
|
|
747 | (4) |
|
11.10 Iterative and recursive implementations |
|
|
751 | (4) |
|
11.10.1 Iterative implementation |
|
|
751 | (2) |
|
11.10.2 Recursive implementation |
|
|
753 | (2) |
|
11.11 Implementation issues |
|
|
755 | (6) |
|
|
757 | (1) |
|
|
757 | (4) |
|
12 Discrete cosine transform (DCT) |
|
|
761 | (54) |
|
|
761 | (1) |
|
|
761 | (17) |
|
12.1.1 * Periodically extended sequences |
|
|
762 | (2) |
|
12.1.2 "The" discrete cosine transform (DCT-II) |
|
|
764 | (2) |
|
12.1.3 The inverse discrete cosine transform (IDCT) |
|
|
766 | (3) |
|
12.1.4 The four principal DCT variants |
|
|
769 | (1) |
|
12.1.5 Properties of the DCT |
|
|
770 | (1) |
|
12.1.6 * Matrix form of the DCT and IDCT |
|
|
771 | (2) |
|
12.1.7 * Energy compaction of the DCT |
|
|
773 | (1) |
|
12.1.8 * Implementation of the DCT-II and IDCT-II |
|
|
774 | (2) |
|
12.1.9 * The modified discrete cosine transform (MDCT) |
|
|
776 | (2) |
|
12.2 MPEG audio compression |
|
|
778 | (14) |
|
|
780 | (1) |
|
12.2.2 Hybrid filter bank and MDCT |
|
|
781 | (1) |
|
12.2.3 The psychoacoustic model |
|
|
781 | (6) |
|
12.2.4 Bit allocation and quantization |
|
|
787 | (1) |
|
12.2.5 Minimum entropy coding |
|
|
788 | (4) |
|
12.3 JPEG image compression |
|
|
792 | (23) |
|
|
793 | (3) |
|
12.3.2 DCT transformation and quantization |
|
|
796 | (5) |
|
12.3.3 Coefficient encoding |
|
|
801 | (1) |
|
12.3.4 Implementation of 2D-DCT |
|
|
802 | (1) |
|
|
802 | (1) |
|
|
803 | (12) |
|
|
815 | (68) |
|
|
815 | (1) |
|
13.1 Polyphase downsampling |
|
|
816 | (10) |
|
13.1.1 Review of downsampling |
|
|
816 | (2) |
|
13.1.2 Polyphase implementation of downsampling |
|
|
818 | (4) |
|
13.1.3 Downsampling summary |
|
|
822 | (4) |
|
13.2 Polyphase upsampling |
|
|
826 | (7) |
|
13.2.1 Review of upsampling |
|
|
826 | (2) |
|
13.2.2 Polyphase implementation of upsampling |
|
|
828 | (4) |
|
13.2.3 Upsampling summary |
|
|
832 | (1) |
|
13.3 * Polyphase resampling |
|
|
833 | (1) |
|
13.4 Transform analysis of polyphase systems |
|
|
833 | (15) |
|
13.4.1 Basic decimation and expansion identities |
|
|
833 | (2) |
|
13.4.2 Multirate identities of downsampling and upsampling |
|
|
835 | (5) |
|
13.4.3 Transform analysis of polyphase downsampling |
|
|
840 | (1) |
|
13.4.4 Transform analysis of polyphase upsampling |
|
|
841 | (1) |
|
13.4.5 Transform analysis of polyphase resampling |
|
|
842 | (6) |
|
13.4.6 * Matlab implementation of polyphase sample-rate conversion algorithms |
|
|
848 | (1) |
|
13.5 Multistage systems for downsampling and upsampling |
|
|
848 | (10) |
|
13.5.1 Multistage downsampling |
|
|
849 | (6) |
|
13.5.2 Multistage upsampling |
|
|
855 | (3) |
|
13.6 Multistage and multirate filtering |
|
|
858 | (7) |
|
13.6.1 Multistage interpolated FIR (IFIR) filters |
|
|
858 | (5) |
|
13.6.2 Multirate lowpass filtering |
|
|
863 | (2) |
|
13.7 Special filters for multirate applications |
|
|
865 | (10) |
|
|
865 | (5) |
|
13.7.2 Polyphase downsampling and upsampling using half-band filters |
|
|
870 | (3) |
|
13.7.3 L-band (Nyquist) filters |
|
|
873 | (2) |
|
13.8 ? Multirate filter banks |
|
|
875 | (8) |
|
|
875 | (1) |
|
|
875 | (8) |
|
|
883 | (60) |
|
|
883 | (1) |
|
14.1 Basics of spectral analysis |
|
|
884 | (11) |
|
14.1.1 Spectral effects of windowing |
|
|
884 | (2) |
|
14.1.2 Effect of window choice |
|
|
886 | (2) |
|
14.1.3 Spectral spread and leakage |
|
|
888 | (4) |
|
14.1.4 Spectral effect of sampling |
|
|
892 | (3) |
|
14.2 The short-time Fourier transform (STFT) |
|
|
895 | (8) |
|
14.2.1 Constant overlap-add criterion |
|
|
896 | (1) |
|
|
897 | (4) |
|
14.2.3 * Implementation of the discrete STFT in Matlab |
|
|
901 | (2) |
|
14.3 * Nonparametric methods of spectral estimation |
|
|
903 | (14) |
|
|
903 | (5) |
|
|
908 | (4) |
|
14.3.3 The modified periodogram |
|
|
912 | (1) |
|
14.3.4 Averaged modified periodogram |
|
|
913 | (1) |
|
|
914 | (1) |
|
14.3.6 Discrete-time periodograms |
|
|
915 | (1) |
|
14.3.7 Matlab implementation of the periodogram functions |
|
|
915 | (2) |
|
14.4 * Parametric methods of spectral estimation |
|
|
917 | (11) |
|
|
917 | (4) |
|
14.4.2 The Levinson-Durbin algorithm |
|
|
921 | (4) |
|
14.4.3 Matlab implementation of the Levinson-Durbin algorithm |
|
|
925 | (3) |
|
|
928 | (15) |
|
14.5.1 Predictor error and the estimation of model order |
|
|
930 | (2) |
|
14.5.2 Linear predictive coding (LPC) |
|
|
932 | (1) |
|
14.5.3 The source-filter model |
|
|
933 | (1) |
|
14.5.4 Linear predictive coding architecture |
|
|
933 | (3) |
|
14.5.5 * Alternate formulations of linear prediction equations |
|
|
936 | (1) |
|
|
936 | (1) |
|
|
937 | (6) |
|
Appendix A Linear algebra |
|
|
943 | (12) |
|
A.1 Systems of linear equations |
|
|
943 | (1) |
|
A.2 Solution of an inhomogeneous system of equations |
|
|
944 | (4) |
|
|
944 | (3) |
|
A.2.2 Infinite number of solutions |
|
|
947 | (1) |
|
|
948 | (1) |
|
A.3 Solution of a homogeneous system of equations |
|
|
948 | (1) |
|
|
948 | (1) |
|
A.3.2 Infinite number of solutions |
|
|
949 | (1) |
|
A.4 Least-square-error optimization |
|
|
949 | (6) |
|
Appendix B Numeric representations |
|
|
955 | (14) |
|
B.1 Integer representation |
|
|
955 | (4) |
|
|
955 | (1) |
|
B.1.2 Signed-magnitude binary |
|
|
956 | (1) |
|
B.1.3 Two's-complement binary |
|
|
956 | (2) |
|
|
958 | (1) |
|
B.1.5 Converting between binary formats |
|
|
959 | (1) |
|
B.2 Fixed-point (fractional) representation |
|
|
959 | (5) |
|
B.2.1 Rounding and truncation |
|
|
961 | (3) |
|
B.2.2 Arithmetic of fractional numbers |
|
|
964 | (1) |
|
B.3 Floating-point representation |
|
|
964 | (2) |
|
B.4 Computer representation of numbers |
|
|
966 | (3) |
|
Appendix C Matlab tutorial |
|
|
969 | (22) |
|
C.1 Introduction to Matlab |
|
|
969 | (1) |
|
|
969 | (1) |
|
C.1.2 What is Matlab not? |
|
|
970 | (1) |
|
C.2 The elements of Matlab |
|
|
970 | (11) |
|
C.2.1 Calculator functions |
|
|
970 | (1) |
|
|
970 | (6) |
|
|
976 | (5) |
|
C.3 Programming in Matlab |
|
|
981 | (6) |
|
|
981 | (1) |
|
|
982 | (2) |
|
C.3.3 Conditionals and loops |
|
|
984 | (1) |
|
|
984 | (3) |
|
|
987 | (1) |
|
|
988 | (1) |
|
C.6 The Matlab environment |
|
|
989 | (2) |
|
C.6.1 Command window and editor |
|
|
989 | (1) |
|
C.6.2 Debugging and writing "clean" code |
|
|
990 | (1) |
|
Appendix D Probability and random processes |
|
|
991 | (23) |
|
D.1 Probability distribution and density functions |
|
|
991 | (1) |
|
D.1.1 Discrete probability density function |
|
|
991 | (1) |
|
D.1.2 Continuous probability density function |
|
|
992 | (2) |
|
D.1.3 Joint, marginal and conditional probability distributions |
|
|
994 | (2) |
|
D.1.4 Expected value and moments |
|
|
996 | (1) |
|
D.1.5 Covariance and correlation |
|
|
997 | (2) |
|
|
999 | (13) |
|
D.2.1 Statistics of a random process |
|
|
1000 | (2) |
|
D.2.2 Stationary random processes |
|
|
1002 | (2) |
|
|
1004 | (1) |
|
D.2.4 Filtered random processes |
|
|
1005 | (2) |
|
D.2.5 The Wold decomposition |
|
|
1007 | (1) |
|
|
1008 | (2) |
|
|
1010 | (2) |
|
D.3 Power spectral density |
|
|
1012 | (1) |
|
|
1012 | (1) |
|
D.3.2 Power spectral density of a filtered random process |
|
|
1013 | (1) |
|
D.3.3 Power spectral density of noise |
|
|
1013 | (1) |
|
|
1013 | (1) |
|
D.4.1 Random number generators |
|
|
1013 | (1) |
|
D.4.2 Autocorrelation and crosscorrelation |
|
|
1014 | (1) |
Problems |
|
1014 | (3) |
References |
|
1017 | (4) |
Index |
|
1021 | |