Generalized Hampel Filters
 Ronald K. Pearson^{1}Email authorView ORCID ID profile,
 Yrjö Neuvo^{2},
 Jaakko Astola^{3} and
 Moncef Gabbouj^{3}
https://doi.org/10.1186/s1363401603836
© The Author(s) 2016
Received: 20 April 2016
Accepted: 25 July 2016
Published: 5 August 2016
Abstract
The standard median filter based on a symmetric moving window has only one tuning parameter: the window width. Despite this limitation, this filter has proven extremely useful and has motivated a number of extensions: weighted median filters, recursive median filters, and various cascade structures. The Hampel filter is a member of the class of decsion filters that replaces the central value in the data window with the median if it lies far enough from the median to be deemed an outlier. This filter depends on both the window width and an additional tuning parameter t, reducing to the median filter when t=0, so it may be regarded as another median filter extension. This paper adopts this view, defining and exploring the class of generalized Hampel filters obtained by applying the median filter extensions listed above: weighted Hampel filters, recursive Hampel filters, and their cascades. An important concept introduced here is that of an implosion sequence, a signal for which generalized Hampel filter performance is independent of the threshold parameter t. These sequences are important because the added flexibility of the generalized Hampel filters offers no practical advantage for implosion sequences. Partial characterization results are presented for these sequences, as are useful relationships between root sequences for generalized Hampel filters and their medianbased counterparts. To illustrate the performance of this filter class, two examples are considered: one is simulationbased, providing a basis for quantitative evaluation of signal recovery performance as a function of t, while the other is a sequence of monthly Italian industrial production index values that exhibits glaring outliers.
1 Introduction
“The set of nonlinear filters is extremely large since their definition simply excludes the applicability of the linear superposition property on which the theory of linear filters is based. However, from the very beginning, attempts have been done to suitably classify nonlinear filters on the basis of some peculiar properties, leading to the identification of certain classes of nonlinear filters.”
This paper adopts a similar philosophy, restricting consideration to a class of nonlinear filters obtained by combining two previously studied filter classes: the Hampel filter described in Section 2, and the median filter extensions described in Sections 4 and 7. The result is a class of nonlinear filters we believe to be new, that includes all of these previously studied filters as special cases, but which exhibits a greater degree of design flexibility.
2 Standard median and Hampel filters
The only tuning parameter for this filter is the window halfwidth parameter K, which limits its flexibility, but the real strength of the median filter lies in its extreme resistance to local outliers or impulsive noise in the input data squence {x _{ k }}. Unfortunately, the median filter can also introduce significant distortion in the portion of the signal we wish to retain, making its utility strongly applicationdependent. These filter characteristics have led to the development of a number of median filter extensions, including the recursive median filter discussed in Section 4 and others described in Section 7.
The factor 1.4826 makes the MAD scale estimate an unbiased estimate of the standard deviation for Gaussian data.
It follows from this observation that we may regard the Hampel filter as a generalization of the median filter, with t as an additional tuning parameter. The central question explored in this paper is what the consequences of this generalization are when we combine it with other generalizations of the median filter that are wellknown in the literature, as described in Sections 4 and 7.
The practical implication of this result is that the Hampel filter may be viewed as a “less aggressive extension” of the median filter, generally becoming less aggressive with increasing threshold value t. In particular, for “most” sequences {x _{ k }}, the Hampel filter varies from the median filter at is most aggressive (i.e., for t=0) to an identity filter as t→∞. The important exception to this behavior is the class of implosion sequences described next.
3 Implosion sequences

Define the window \(\textbf {W}^{K}_{k}\) to be an implosion window if S _{ k }=0;

Define the sequence {x _{ k }} to be an implosion sequence if all windows are implosion windows (i.e., if S _{ k }=0 for all k);

Define the sequence {x _{ k }} to be implosionfree if it contains no implosion windows (i.e., if S _{ k }>0 for all k).
The practical consequence of these definitions is that if {x _{ k }} is an implosion sequence, the output of the Hampel filter reduces to that of the median filter for all t, so the added flexibility of the Hampel filter offers no practical advantage for these sequences. Similarly, since the Hampel filter root set contains the median filter root set for all threshold values t, the added flexibility of the Hampel filter offers no practical advantage for these sequences, either. Thus, the signals of greatest interest in characterizing Hampel filter performance are implosionfree sequences that are not median filter roots.
That is, if {x _{ k }} is an implosionfree sequence, the Hampel filter reduces to an identity filter for some sufficiently large but finite value of t. This result means that the practical characterization of Hampel filter performance can be restricted to the range 0≤t≤t ^{∗}, where t ^{∗} is this identity filter threshold value.
Theorem
The sequence {x _{ k }} is an implosion sequence for _{ K } if and only if, for all k, more than K elements of the window \(\textbf {W}^{K}_{k}\) have the same value.
Proof

Assume {x _{ k }} is an implosion sequence for _{ K }. This means:implying x _{ k }−m _{ k }=0 for at least K+1 values, implying x _{ k }=m _{ k } for at least K+1 values in \(\textbf {W}^{K}_{k}\).$$\text{median} \{ x_{k}  m_{k} \} = 0, $$

Conversely, suppose that at least K+1 values in \(\textbf {W}^{K}_{k}\) are equal to some constant c. It follows immediately that the median value in this window is m _{ k }=c, implying x _{ k }−m _{ k }=0 for at least K+1 values, implying S _{ k }=0 so that {x _{ k }} is an implosion sequence for _{ K }.

Aconstant neighborhood is a sequence of at least K+1 consequtive identical values;

An edge is a monotonically increasing or decreasing sequence, preceeded and followed by constant neighborhoods of different values;

An impulse is a sequence of at most K values, preceeded and followed by constant neighborhoods having the same value, with the values of the intermediate points distinct from those of the surrounding constant neighborhoods;

An oscillation is any sequence of values not contained in a constant neighborhood, an edge, or an impulse.
Based on these definitions, it can be shown that {x _{ k }} is a root sequence for the median filter _{ K } if and only if it consists entirely of constant neighborhoods and edges [6].
for any a≠b. Since at any k, the moving window \(\textbf {W}^{K}_{k}\) will have K of one of these values and K+1 of the other value, it follows immediately from the above theorem that {x _{ k }} is an implosion sequence for _{ K }.
An interesting open question is whether there are other classes of implosion sequences for _{ K } besides the three just described. Since any root sequence for the median filter _{ K } is also a root for all Hampel filters _{ K }, regardless of threshold, the important implosion sequences are those that are not median filter roots: these sequences are modified by the median filter and also modified in exactly the same way by the Hampel filter, independent of the threshold parameter t.
4 Recursive median and Hampel filters
where m _{ k−j } represents the output at prior time k−j of the standard median filter applied to the input sequence {x _{ k }}. This extension exhibits a number of interesting properties, including idempotence [7], i.e., a single application of the recursive median filter maps {x _{ k }} into the filter’s root set. Further, it has also been shown that the root set for the recursive median filter is identical to that for the standard median filter.
where \(H^{t}_{kj}\) represents the output at prior time k−j of the Hampel filter with threshold parameter t applied to the input sequence {x _{ k }}.

The recursive and nonrecursive Hampel root sets are identical for every threshold parameter: \(\tilde {{\cal R}}_{t} = {\cal R}_{t}\) for all t;

The recursive Hampel root sets nest: for all 0≤s≤t, it follows that \(\tilde {{\cal R}}_{s} \subset \tilde {{\cal R}}_{t}\).

The recursive median filter is idempotent—does this behavior extend to recursive Hampel filters for arbitrary t? If not, is the recursive median filter the only idempotent member of this family? More generally, how does idempotence depend on t?

What is the relationship between implosion sequences for the recursive and nonrecursive Hampel filters?
5 The influence of t on filter performance
To provide quantitative filter performance results, the following section presents a brief case study that examines the influence of the Hampel filter tuning parameter t on the performance of both the standard Hampel filter and the recursive Hampel filter. Since the primary question of interest is the influence of the tuning parameter t, this example considers a fixed window halfwidth parameter (specifically, K=5, yielding an 11point moving window filter) and examines filter performance over a range of t values. The basis for these performance comparisons is a simulated data example described in Section 5.1: the advantage of considering a simulationbased example is that we can be explicit about the signal components we wish to recover and can therefore quantify signal recovery performance. More specifically, this example considers two possible signal recovery problems described in detail in Section 5.1 and characterizes performance in terms of two metrics: the root mean square signal recovery error (RMSE) and the mean absolute signal recovery error (MAE).
5.1 A simulated data example

Stepandramp sequence (median filter root) for k=1,2,…,420;

Lowlevel Gaussian noise (partial: nonzero only for k=1,2,…,240);

Sinusoid (partial: nonzero only for k=101,102,…,420);

Impulsive noise, randomly distributed throughout the sequence.

y _{ k }=0 for k=1 to k=40;

a linear increase from y _{ k }=0 to y _{ k }=1 from k=41 to k=100;

y _{ k }=1 for k=101 to k=140;

y _{ k }=2 for k=141 to k=220;

a linear decrease from y _{ k }=2 to y _{ k }=0 from k=221 to k=300;

y _{ k }=0 for k=301 to k=320;

y _{ k }=−1 for k=321 to k=400;

y _{ k }=0 for k=401 to k=420.
The Gaussian noise component has mean zero and standard deviation σ=0.1, and the sinusoid has period 29 and amplitude 0.3. The impulsive noise component is an additive term that is zero everywhere except for the following eight values of k, where it takes the nonzero values indicated in parentheses: k=20 (+1), k=35 (−1), k=120 (+1), k=190 (−1.5), k=220 (−2.5), k=300 (+1), k=350 (+2.5), and k=410 (+1.5).
The primary question of interest here is how well the different filters considered eliminate the isolated spikes in this signal while preserving the lowlevel details, especially the sinusoidal component. The presence of the lowlevel noise in approximately the first half of the signal raises a subtle practical issue, however: is a “good” filter one that simply removes the impulsive spikes from the data sequence, or should it also address the lowlevel noise? Given that median filters and their extensions are much better suited to the removal of impulsive noise than the smoothing of lowlevel noise, the first formulation seems the more reasonable here, but the question is raised to emphasize that filter performance criteria are generally problemspecific.
Additional insights can be obained from this example by considering filter performance for the three qualitatively distinct signal subsequenes separated by dashed vertical lines in Fig. 1. Specifically, the first 100 points of the sequence—denoted “Noise Only” in Fig. 1—consists of a median filter root sequence, contaminated with both lowlevel Gaussian noise and impulsive noise spikes. The second subsequence, from k=100 to k=240 and labelled “Noise + Sine,” contains all four of the signal components listed above, while the third subsequence, from k=240 to k=420 and labelled “Sine Only,” consists of a median filter root sequence with a superimposed sinusoid and isolated spikes, but no lowlevel noise.

the impulsive noise removal problem, where the signal to be recovered consists of the sum of the first three components listed above;

the complete noise removal problem, where the signal to be recovered consists of the sum of the two deterministic components (i.e., the median filter root plus the sinusoid), without either lowlevel or impulsive noise.
As noted above, these signal recovery problems have different characters, with the first being more suitable for the filter class considered here, but the second problem is of considerable practical significance. Two performance measures are considered for both problems: the rootmeansquare recovery error (RMSE) is more widely used, but may be less appropriate than the mean absolute recovery error (MAE) in the presence of impulsive noise.
Finally, it is important to note that, for the filter window width considered here (K=5), the signal sequence shown in Fig. 1 is implosionfree and is not a median filter root sequence. Thus, it follows that filter performance should depend on the threshold parameter t, and the objective of the following discussions is to illuminate the nature of this dependence.
5.2 Results for the Hampel filter
For the complete noise removal problem (the lower two plots), the dependence of filter performance on the threshold parameter is very different. In particular, performance degrades uniformly with increasing t for both the RMSE and MAE measures. Since the complete noise removal objective requires removal of both the impulsive noise and the lowlevel noise, these results suggest that as t increases, the Hampel filter allows more of the lowlevel noise to pass through the filter unmodified, offsetting the performance advantage of lower distortion of the sinusoidal signal components. In particular, since the filter removes all of the impulsive noise spikes for t between 0 and 6.5, it follows that the poorer performance seen for the complete noise removal problem over the impulsive noise removal optimal performance range (t=3.5 to t=6.0) relative to the median filter limit t=0 is caused by the filter’s allowing more lowlevel noise into the output signal. These results emphasize the point made earlier that these filters are not wellsuited to lowlevel noise removal problems.
The frequency of the sinusoidal component in this example is important. Specifically, the maximum possible frequency is that of the binary implosion sequence described in Section 3, implying that in this limit, the Hampel filter offers no advantage over the median filter. At the other extreme, if the sinusoidal frequency is low enough, the Npoint finite signal sequence will be monotonic, and thus a root sequence for the median filter and all Hampel filters. For intermediate frequencies; however, sinusoidal components are neither implosion sequences nor roots, and as this example illustrates, the response of the Hampel filter to these components generally varies strongly with t.
5.3 Results for the recursive Hampel filter
Overall, these results—particularly those for the complete noise removal performance of the recursive Hampel filter—show that the performance of these filters depends strongly on the threshold value t, but very differently for different signal extraction problems and different signal characteristics. For example, for Segment 3 (“Sine only”), the performance of the recursive and standard Hampel filters are almost identical, both for the impulse noise removal problem and for the complete noise removal problem: distortion is observed for t less than 1.0, excellent performance is observed for t between 1.0 and 6.5, with consistent performance degradation as t is increased beyond this value. In contrast, for Segment 1 (“Noise only”), these performance curves are very different: for the impulsive noise removal problem with the standard Hampel filter, performance is worst in the median filter limit, improves uniformly as t increases to 3.5 where it remains nearoptimal as t increases to 8.5; optimal performance—only slightly better—is achieved for t between 8.5 and 9.0, after which performance becomes discontinuously worse, but never approaches the level of poor performance seen for the median filter. In contrast, for the complete noise removal problem with the recursive Hampel filter for this data segment, a sharp optimum is observed at t=1.0, with increasingly poorer performance as t increases, exhibiting worse performance than the recursive median filter for all t>2. Finally, as noted, the complete noise removal performance for the recursive Hampel filter for Segment 2 (“Noise + sine”) is even more complicated, exhibiting local optima in its MAE vs. t performance curve.
6 A real data example
The final result presented here considers a filter that is not a member of the generalized Hampel family, but is conceptually similar in an important sense. Specificallly, recall that the basic idea behind the Hampel filter is to consider the central point in the moving data window and determine whether it is “anomalous:” if so, it is replaced with the “more reasonable” median value computed from the data window; otherwise, it is left unmodified. The A _{ n } filter described by Rohwer ([12] p. 37) is based on a similar idea, but with a different definition of “anomalous” and a different replacement value for these points. This filter belongs to the LULU family, described briefly here; for a more detailed introduction, refer to Rohwer’s book [12]. A less detailed introduction to these filters is also given in the book by Pearson and Gabbouj ([13] Section 6.2.3), which also provides Python implementations in the NonlinearDigitalFilters module.
In fact, these filter responses are also lower and upper bounds on the response of the recursive median filter ([12] p. 36). These observations motivate the definition of the A _{ n } filter considered here, defined in a very similar spirit to the Hampel filter ([12] p. 37): if the central point x _{ k } in the data window falls between the U _{ K } L _{ K } and L _{ K } U _{ K } bounds, the filter output is simply x _{ k }, unmodified; otherwise, the filter output is the average of the upper and lower bounds.
7 Other generalizations of the Hampel filter
7.1 Weighted filters
where the operator ◇ denotes replication (m◇x _{ j } creates a set with the data value x _{ j } replicated m times), and {w _{−K },…,w _{0},…,w _{ K }} represents a sequence of positive integer weights. This extension greatly increases the median filter’s flexibility, but it also greatly complicates the analysis of filter characteristics; for example, no complete characterization of the root sequences of arbitrarily weighted median filters is known. For a more detailed discussion of this filter class and what is known about it, refer to the survey paper by Yin et al. [14].
where m _{ k }(Q) is the median of the weighted window Q _{ k } and S _{ k }(Q) is the corresponding MAD scale estimator. As with the standard Hampel filter, note that the weighted Hampel filter reduces to the weighted median filter for t=0, and the root sequence nesting condition for these filters—for fixed weights—follows as before: s≤t implies _{ s }⊂_{ t }. Similarly, the concept of implosion sequences introduced in Section 3 also applies to the weighted Hampel filters, but the conditions for {x _{ k }} to be an implosion sequence now depend on the filter weights {w _{ k }}. Given the lack of a general characterization for weighted median filter root sequences noted above and the strong connection between standard Hampel filter implosion sequences and standard median filter roots shown in Section 3, it is likely that a complete characterization of weighted Hampel filter implosion sequences will be challenging.
7.2 Weighted recursive filters
where y _{ k−j } is the output of the weighted median filter at prior sample k−j. Since this median filter generalization includes both of the previous ones as proper subsets, the flexibility of this class is even greater, as is the complexity of its analysis. The survey paper by Yin et al. also includes a discussion of these filters [14].
where m _{ k }(Z) is the median of the recursive weighted window Z _{ k } and S _{ k }(Z) is the corresponding MAD scale estimator. It follows by the reasoning presented in Section 4 that the recursive weighted Hampel filter root sets are identical with the nonrecursive weighted Hampel filter root sets, and that the recursive weighted Hampel filter root sets nest for increasing threshold parameters t. Again, it is likely that complete characterizations of the weighted recursive Hampel filter root sequences and implosion sequences will be challenging.
7.3 Extensions to image processing
A detailed discussion of the extension of the onedimensional generalized Hampel filters discussed here to image processing applications is beyond the scope of this paper, but this extension is important enough to warrant a brief discussion. All of the filters defined in this paper can be extended to twodimensional images in at least two different ways. The first and simpler is analogous to that described in Section 1.3.3 of the book by Astola and Kuosmanen [3]: the onedimensional moving window considered here can be replaced by a square (2K+1)×(2K+1) twodimensional window that is moved across the image. The median and MAD scale estimate can then be computed from these (2K+1)^{2} pixel intensities exactly as in the onedimensional case, and the same logic applied as before: if the central point in the data window lies more than t times the MAD scale estimate from the median value, the filter’s output is the median value; otherwise, the filter’s output is the unmodified central value. As in the onedimensional case, setting t=0 reduces this filter to the twodimensional median filter, and increasing t makes the filter less aggressive.
Twodimensional recursive filters are also possible, generalizing the twodimensional recursive median filter, although as noted by Astola and Kuosmanen, the results obtained with this filter will depend on the order in which the pixels are processed ([3] p. 203). That is, since there is no unique total order on the points in an image, it is necessary to impose such an order for the “prior filter outputs” required in a recursive filter implementation to be welldefined. This can be done in different ways (e.g., lefttoright lexical order, toptobottom lexical order, etc.), generally yielding different results.
Finally, an alternative approach is to construct multistage Hampel image processing filters that combine the outputs of subfilters like those discussed by Nieminen and Neuvo [15], corresponding to vertical, horizontal, diagonal, cross or xshaped subwindows applied to the image. This general construction is described in Section 3.7 of the book by Astola and Kuosmanen [3], and it can also be readily extended to generalized Hampel filters by simply replacing the median filters defined on these subwindows with the corresponding Hampel filters.
8 Conclusions
The Hampel filter introduced in Section 2 is effectively a moving window outlier detector that replaces the original signal value with the median filter response if that value is deemed an outlier. This determination is based on a threshold parameter t chosen by the user and the MAD scale estimate for the moving window, and the filter reduces to the standard median filter if t=0. The central idea of this paper was to view the Hampel filter as a generalization of the median filter and ask what the consequences of this generalization are, first for the standard Hampel filter and then for novel extensions like the recursive Hampel filter. One important aspect of this investigation was the partial characterization in Section 3 of implosion sequences, for which this generalization has no effect: these are sequences for which the response of the Hampel filter is independent of t. In addition, it was shown that Hampel filter root sequences nest, with the median filter root set included in all Hampel filter root sets. Thus, the input sequences of greatest interest here are neither implosion sequences nor root sequences, where the Hampel filter may be tuned from its most aggressive limit (t=0, corresponding to the median filter) to an identity filter for sufficiently large t.
A detailed description of the recursive Hampel filter was given in Section 4, where it was shown that this filter’s root set for each t is the same as the standard Hampel filter root set for the same value of t, generalizing the wellknown result for the recursive median filter [7]. One of the interesting characteristics of the recursive median filter is its idempotence—the fact that it reduces any input sequence to a root sequence in a single pass—and an intriguing question is whether this behavior extends to the recursive Hampel filter for any t>0.
Section 5 presented a brief simulationbased case study exploring the performance of the standard and recursive Hampel filters as a function of t for a simulated signal sequence that was neither a median filter root sequence nor an implosion sequence. More specifically, this signal consisted of a median filter root sequence with three additional components superimposed on it: lowlevel Gaussian noise for one part of the signal, a sinusoid for another part of the signal, and impulsive noise spikes. Two performance measures were considered—RMSE and MAE—for two signal recovery problems: impulsive noise removal, and a complete noise removal problem that also attempted to remove lowlevel Gaussian noise from the signal. Not surprisingly, performance was much better for the impulsive noise removal problem, but the real point of this example was to provide specific illustrations of how much performance does depend on t, and how strongly this dependence varies between different problem formulations and signal characteristics (e.g., different signal subsequences exhibiting different combinations of the components listed above).
To provide a more representative illustration of the performance of generalized Hampel filters, Section 6 applied several members of this filter class to a monthly Italian industrial production index series that contains glaring outliers every 12 months (seasonal outliers [9]). The filters applied to this example included the standard and recursive median filters for two different window halfwidth parameters, both standard and recursive Hampel filters, and four cascade interconnections of filters from the generalized Hampel family. If our objective is simply the removal of the seasonal outliers, it appears that the standard Hampel filter with a sufficiently large threshold parameter t is the optimum choice here, but one of the points illustrated by these filtering results was that cascade interconnections of Hampel and recursive Hampel filters exhibit smoothing behavior that is much less extreme than that of the recursive median filter and which may be advantageous in some applications. For comparison, results were also presented for a promising data cleaning filter that is not a member of the generalized Hampel family: the A _{ n } filter defined by Rohwer ([12] p. 37) from the LULU filter family. For this example, the A _{ n } filter was not sufficiently aggressive, failing to eliminate the least extreme of the seasonal outliers in the data sequence, but again, it is important to emphasize that the “best” filter can be expected to depend strongly on the details of the application.
Finally, three other generalizations of the Hampel filter were described briefly in Section 7: the weighted Hampel filter, the recursive weighted Hampel filter, and extensions to twodimensional image processing applications. The first two of these filters are generalizations of the weighted median filter and the recursive weighted median filter, respectively, which are more difficult to characterize than their nonweighted counterparts. For this reason, characterizations of roots, implosion sequences, and other performance characteristics of these generalized Hampel filters appears likely to be much more challenging than the corresponding characterizations of the standard and Hampel recursive filters. Finally, while a detailed treatment of image processing applications is beyond the scope of this paper, the onedimensional filters described here can all be extended to these applications in much the same way as median filters have been.
Declarations
Competing interests
The authors declare they have no competing interests.
Open Access This article is distributed under the terms of the Creative Commons Attribution 4.0 International License (http://creativecommons.org/licenses/by/4.0/), which permits unrestricted use, distribution, and reproduction in any medium, provided you give appropriate credit to the original author(s) and the source, provide a link to the Creative Commons license, and indicate if changes were made.
Authors’ Affiliations
References
 GL Sicuranza, A Carini, in Festschrift in Honor of Jaakko Astola on the Occasion of his 60th Birthday, ed. by I Tabus, K Egiazarian, and M Gabbouj. On a class of nonlinear filters (Tampere International Center for Signal Processing, TampereFinland, 2009), pp. 115–143.Google Scholar
 JW Tukey, Nonlinear (nonsuperposable) methods for smoothing data. Abstracts, Cong. Rec. EASCON74, 673 (1974).Google Scholar
 J Astola, P Kuosmanen, Fundamentals of nonlinear digital filtering (CRC Press, Boca Raton, FL, USA, 1997).MATHGoogle Scholar
 L Davies, U Gather, The identification of multiple outliers. J. Am. Stat. Assoc. 88:, 782–801 (1993).MathSciNetView ArticleMATHGoogle Scholar
 J Astola, P Heinonen, Y Nuevo, On root structures of median and mediantype filters. IEEE Trans. Acoustics Speech Signal Proc. 35:, 1199–1201 (1987).View ArticleGoogle Scholar
 NC Gallagher, GL Wise, A theoretical analysis of the properties of median filters. IEEE Trans. Acoustics, Speech, Signal Proc. 29:, 1136–1141 (1981).View ArticleGoogle Scholar
 TA Nodes, NC Gallagher, Median filters: some modifications and their properties. IEEE Trans. Acoust. Speech Signal Proc. 30:, 739–746 (1982).View ArticleGoogle Scholar
 LópezdeLacalle J, tsoutliers: Detection of Outliers in Time Series. R package version 0.6 (2015). https://CRAN.Rproject.org/package=tsoutliers.
 R Kaiser, A Maravall, Seasonal outliers in time series, Banco de Espana, Servicio de Estudios. Working paper number, 9915 (1999). http://www.bde.es/f/webbde/SES/Secciones/Publicaciones/PublicacionesSeriadas/DocumentosTrabajo/99/Fic/dt9915e.pdf.
 RD Martin, VJ Yohai, Influence Functionals for time series. Ann. Stat. 14:, 781–818 (1986).MathSciNetView ArticleMATHGoogle Scholar
 RD Martin, DJ Thomson, Robustresistant spectrum estimation. Proc. IEEE. 70:, 1097–1114 (1982).View ArticleGoogle Scholar
 Rohwer C, Nonlinear smoothing and multiresolution Analysis. (Birkhäuser), (Basel, CH, 2005).Google Scholar
 RK Pearson, M Gabbouj, Nonlinear digital filtering with Python (CRC Press, Boca Raton, FL, USA, 2016).Google Scholar
 L Yin, R Yang, M Gabbouj, Y Neuvo, Weighted median filters: a tutorial. IEEE Trans. Circ. Syst. II: Analog Digital Signal Process. 43:, 157–192 (1996).View ArticleGoogle Scholar
 A Nieminen, Y Neuvo, Comments of theoretical anaysis of the max/median filter. IEEE Trans. Acoust. Speech Signal Proc. 36:, 826–827 (1988).View ArticleMATHGoogle Scholar