Preface |
|
ix | |
Authors |
|
xiii | |
|
|
1 | (26) |
|
1.1 Linear versus nonlinear filters: an example |
|
|
2 | (8) |
|
1.2 Why nonlinearity? Data cleaning filters |
|
|
10 | (4) |
|
1.3 The many forms of nonlinearity |
|
|
14 | (5) |
|
1.3.1 A simple nonlinear filter taxonomy |
|
|
15 | (2) |
|
1.3.2 Recursive filters: instability and chaos |
|
|
17 | (2) |
|
1.4 Python and reproducible research |
|
|
19 | (6) |
|
1.4.1 A very brief introduction to Python |
|
|
20 | (1) |
|
1.4.2 Reproducible research |
|
|
21 | (3) |
|
1.4.3 How this book was developed |
|
|
24 | (1) |
|
1.5 Organization of this book |
|
|
25 | (2) |
|
|
27 | (50) |
|
2.1 A high-level overview of the language |
|
|
27 | (6) |
|
2.1.1 How Python programs work |
|
|
28 | (1) |
|
2.1.2 Using Python interactively |
|
|
28 | (4) |
|
2.1.3 Using Python from the command prompt |
|
|
32 | (1) |
|
2.2 Key language elements |
|
|
33 | (25) |
|
2.2.1 The general structure of Python |
|
|
34 | (1) |
|
|
35 | (2) |
|
|
37 | (2) |
|
2.2.4 Lists: a key data type |
|
|
39 | (2) |
|
2.2.5 Tuples: immutable lists |
|
|
41 | (1) |
|
|
42 | (3) |
|
2.2.7 Dictionaries: another key data type |
|
|
45 | (2) |
|
|
47 | (2) |
|
|
49 | (4) |
|
|
53 | (5) |
|
2.3 Caveat emptor: a few Python quirks |
|
|
58 | (4) |
|
2.3.1 In-place operations, side-effects, and None returns |
|
|
58 | (1) |
|
2.3.2 Deep versus shallow copies |
|
|
59 | (2) |
|
2.3.3 Default values for function parameters |
|
|
61 | (1) |
|
2.4 A few filtering examples |
|
|
62 | (9) |
|
2.4.1 The SymmetricFilter function |
|
|
62 | (2) |
|
2.4.2 Moving window end effects and the Extend function |
|
|
64 | (2) |
|
2.4.3 The SMfilter function |
|
|
66 | (3) |
|
2.4.4 The LinearFIRfilter function |
|
|
69 | (2) |
|
2.5 Learning more about Python |
|
|
71 | (6) |
|
3 Linear and Volterra Filters |
|
|
77 | (28) |
|
3.1 Linear digital filters |
|
|
78 | (8) |
|
3.1.1 Linear filter representations |
|
|
78 | (4) |
|
3.1.2 Ideal filters and idempotence |
|
|
82 | (2) |
|
3.1.3 Positive-linear filters |
|
|
84 | (2) |
|
3.2 Linearity, smoothness, and harmonics |
|
|
86 | (7) |
|
|
93 | (9) |
|
3.3.1 The Volterra filter structure |
|
|
94 | (1) |
|
3.3.2 Some important special cases |
|
|
94 | (7) |
|
3.3.3 General block-oriented structures |
|
|
101 | (1) |
|
3.4 Universal approximations |
|
|
102 | (3) |
|
|
102 | (2) |
|
3.4.2 Limitations of universal approximation |
|
|
104 | (1) |
|
4 Median Filters and Some Extensions |
|
|
105 | (44) |
|
4.1 The standard median filter |
|
|
105 | (8) |
|
4.1.1 The problem of edge jitter |
|
|
106 | (3) |
|
4.1.2 Median filter root sequences |
|
|
109 | (4) |
|
4.2 Median filter cascades |
|
|
113 | (3) |
|
4.2.1 Median filter convergence |
|
|
113 | (1) |
|
|
114 | (2) |
|
4.3 Order statistic filters |
|
|
116 | (1) |
|
4.4 The recursive median filter |
|
|
117 | (2) |
|
4.4.1 Definition of the recursive median filter |
|
|
117 | (1) |
|
4.4.2 Root sequences and idempotence |
|
|
118 | (1) |
|
|
119 | (1) |
|
4.5 Weighted median filters |
|
|
119 | (15) |
|
|
121 | (3) |
|
4.5.2 The weighted median filter |
|
|
124 | (4) |
|
4.5.3 A weighted median filter example |
|
|
128 | (1) |
|
4.5.4 Weighted median filter root sequences |
|
|
129 | (1) |
|
4.5.5 Center-weighted median filters |
|
|
130 | (1) |
|
4.5.6 Recursive weighted median filters |
|
|
131 | (2) |
|
4.5.7 Weighted median filter cascades |
|
|
133 | (1) |
|
4.6 Threshold decompositions and stack filters |
|
|
134 | (3) |
|
|
137 | (5) |
|
4.7.1 Decision-theoretic filters |
|
|
137 | (2) |
|
4.7.2 Relation to the median filter |
|
|
139 | (1) |
|
4.7.3 MADM implosion: a cautionary note |
|
|
139 | (1) |
|
4.7.4 A Hampel filter example |
|
|
140 | (2) |
|
4.8 Python implementations |
|
|
142 | (6) |
|
|
148 | (1) |
|
5 Forms of Nonlinear Behavior |
|
|
149 | (20) |
|
5.1 Linearity versus additivity |
|
|
150 | (2) |
|
5.2 Homogeneity and positive homogeneity |
|
|
152 | (5) |
|
|
152 | (2) |
|
5.2.2 Positive homogeneity |
|
|
154 | (2) |
|
|
156 | (1) |
|
5.3 Generalized homogeneity |
|
|
157 | (6) |
|
5.3.1 Homogeneity of order zero |
|
|
159 | (2) |
|
5.3.2 Ranks are positive homogeneous of order zero |
|
|
161 | (1) |
|
5.3.3 Generalized combination filters |
|
|
162 | (1) |
|
|
163 | (3) |
|
5.4.1 The Gastwirth filter |
|
|
164 | (1) |
|
5.4.2 Mallows' class of nonlinear smoothers |
|
|
165 | (1) |
|
|
166 | (2) |
|
5.6 Nonlinear structure versus behavior |
|
|
168 | (1) |
|
6 Composite Structures: Bottom-up Design |
|
|
169 | (52) |
|
|
169 | (4) |
|
6.1.1 Cascades, categories, and LULU filters |
|
|
169 | (1) |
|
6.1.2 Parallel combinations, groups, and MMD filters |
|
|
170 | (2) |
|
6.1.3 Algebraic clones and the FMH filter |
|
|
172 | (1) |
|
6.2 Cascade interconnections and categories |
|
|
173 | (16) |
|
6.2.1 A brief introduction to category theory |
|
|
173 | (3) |
|
|
176 | (9) |
|
6.2.3 The LULU filter category |
|
|
185 | (4) |
|
6.3 Parallel interconnections and groupoids |
|
|
189 | (7) |
|
6.3.1 Two illustrative examples |
|
|
189 | (1) |
|
6.3.2 Groups, monoids, semigroups, and groupoids |
|
|
190 | (2) |
|
6.3.3 Parallel combinations of K-linear filters |
|
|
192 | (2) |
|
6.3.4 Associative binary operators |
|
|
194 | (1) |
|
6.3.5 Positive homogeneous associative binary operators |
|
|
195 | (1) |
|
6.4 Clones: more general interconnections |
|
|
196 | (8) |
|
6.4.1 Basic concepts of clones |
|
|
196 | (2) |
|
6.4.2 General filter clone characteristics |
|
|
198 | (1) |
|
6.4.3 Clone representation of the Hampel filter |
|
|
199 | (1) |
|
|
200 | (4) |
|
6.5 Python implementations |
|
|
204 | (15) |
|
6.6 Extensions to more general settings |
|
|
219 | (2) |
|
7 Recursive Structures and Stability |
|
|
221 | (52) |
|
7.1 What is different about recursive filters? |
|
|
222 | (2) |
|
7.2 Recursive filter classes |
|
|
224 | (2) |
|
7.3 Initializing recursive filters |
|
|
226 | (2) |
|
|
228 | (4) |
|
7.4.1 The concept of BIBO stability |
|
|
228 | (1) |
|
7.4.2 BIBO stability of non-recursive filters |
|
|
229 | (1) |
|
7.4.3 A rational filter counterexample |
|
|
230 | (1) |
|
7.4.4 BIBO stability of recursive filters |
|
|
230 | (1) |
|
|
231 | (1) |
|
7.5 Steady-state responses |
|
|
232 | (4) |
|
7.5.1 Steady-state characterizations |
|
|
232 | (2) |
|
7.5.2 Consequences of ouput multiplicity |
|
|
234 | (2) |
|
|
236 | (11) |
|
7.6.1 General formulation of the problem |
|
|
236 | (2) |
|
7.6.2 Asymptotic stability of linear recursive filters |
|
|
238 | (4) |
|
7.6.3 Asymptotic and BIBO stability are different |
|
|
242 | (3) |
|
7.6.4 Input-dependent stability |
|
|
245 | (1) |
|
7.6.5 PAC for nonrecursive filters |
|
|
246 | (1) |
|
7.7 Inherently nonlinear behavior |
|
|
247 | (4) |
|
7.7.1 Subharmonic generation |
|
|
248 | (2) |
|
|
250 | (1) |
|
7.8 Fading memory filters |
|
|
251 | (2) |
|
7.9 Structured Lipschitz filters |
|
|
253 | (4) |
|
|
254 | (1) |
|
|
255 | (1) |
|
7.9.3 Examples of structured Lipschitz filters |
|
|
256 | (1) |
|
7.10 Behavior of key nonlinear filter classes |
|
|
257 | (8) |
|
7.10.1 Linear recursive filters |
|
|
257 | (1) |
|
|
258 | (1) |
|
7.10.3 The recursive median filter |
|
|
259 | (1) |
|
7.10.4 Block-oriented filters |
|
|
260 | (1) |
|
|
261 | (1) |
|
|
262 | (1) |
|
7.10.7 Output-affine filters |
|
|
263 | (2) |
|
7.10.8 Polynomial recursive filters |
|
|
265 | (1) |
|
7.11 Stability of interconnected systems |
|
|
265 | (5) |
|
7.12 Challenges and potential of recursive filters |
|
|
270 | (3) |
|
7.12.1 Block-oriented designs |
|
|
271 | (1) |
|
7.12.2 Output affine filters |
|
|
271 | (1) |
|
|
272 | (1) |
Bibliography |
|
273 | (10) |
Index |
|
283 | |