selectedfiltrationmethodsofthestandardiso 16610
TRANSCRIPT
Selected Filtration Methods of the Standard ISO
16610
Dorothee Huser, 5 Precision Engineering, PTB
April 13, 2016
In ISO TC 213 / WG 15 a set of filtration methods and concepts have been standardized or will be
standardized soon to detrend surface topography with regard to form, waviness, and roughness and
with regard to recognize features on different scales referred to as
• detrending and
• multi scale analysis
respectively. The standards provide a variety of numerical methods for band pass filtration.
1. Averaging with a Gaussian kernel
2. Smoothing with cubic splines
3. Smoothing with regression polynomials (Savitzky-Golay)
4. Combined method employing Gaussian kernel together with regression polynomials
5. Combined method employing interpolating polynomials and regression polynomials
1 Filter for Detrending
Regarding an object at different scales, its form, its waviness, and finally its roughness determine the
geometry of the body respectively of its surface.
In roughness metrology, usually data have already been filtered with regard to high frequencies.
They are cut off to make statistical roughness parameters comparable with compatible band widths
of instrumental data, e.g. λ < λs = 2.5 µm. This low pass is carried out before any other high pass
filtration, since the instruments often deliver the data being filtered that way. Applying both filters
means applying a band pass filter.
1
Figure 1: Idea of detrending.
Pattern recognition is essentially the same filtration process, however, using a narrow band. The
convolution with a kernel is mathematically aequivalent to evaluating the cross correlation with a
template. Be s(x) the kernel, i.e. the template with zero mean and z(x) the signal to be analysed
the integration
w(x) =
∫
s(ξ) z(x − ξ) dξ (1)
is called convolution and
w(x) =
∫
s(ξ) (z(x − ξ) − z) dξ (2)
is called covariance and if it is normalized, it is called correlation, with z being the mean of the signal.
Convolution is weighted averaging. It is a low pass.
Calculating weighted averages for each signal value, i.e. its convolution, means to perform as many
integration processes as data points of the signal exist. For narrow kernels with only very few
positions this usually is the preferred procedure. However, for kernels covering a large number of
signal positions, it is more efficient to Fourier transform both the signal and the convolution kernel.
The Fourier transform of the kernel is called transfer function H(λ) and it then is multiplied to the
Fourier transform of the signal. The multiplication is element wise. An inverse Fourier transformation
delivers the smoothed signal (eg. waviness).
Fourier transformation presumes that the signal is periodically continued. Fig. 3 therefore gives the
signal once more to show the continuation on one side. The same applies for the kernel. Both are
[email protected] April 13, 2016 2
Figure 2: Convolution is weighted averaging. It is a low pass.
Figure 3: Prepare signal and kernel for appropriate usage in Fourier space.
displayed doubled to show the parts where the signal and kernel are continued. For calculation, it
is not doubled, just the gap is filled appropriately. The following routine in Matlab / Gnu-octave
illustrates the usage for a band pass
function z f = gaus s bandpas s pr f ( z , dx , lambda HP , lambda LP )
% with lambda HP < lambda LP
z = z ( : ) ;
n = s ize ( z , 1 ) ;
n l = f loor ( lambda LP/dx ) + 1 ;
nha l f = f loor ( ( n−1)/2) ;
x = [ 0 : nha l f+nl ] ’∗ dx ;nn = s ize (x , 1 ) ;
x2 = [ x;−x (nn : − 1 : 2 ) ] ;
n2 = s ize ( x2 , 1 ) ;
% f i l t e r cons tant
alpha = sqrt ( log (2)/ pi ) ;
% Gaussian k e rn e l s f o r low and high
[email protected] April 13, 2016 3
% pass r e s p e c t i v e l y , Fourier trans forms
% d e l i v e r t h e i r t r a n s f e r f unc t i on s
s = exp(−pi∗x2 . ˆ2/ ( alpha ∗ lambda LP )ˆ2 )/ ( alpha ∗ lambda LP ) ;
H LP = f f t ( s )∗dx ;s = exp(−pi∗x2 . ˆ2/ ( alpha ∗ lambda HP )ˆ2)/ ( alpha ∗ lambda HP ) ;
H HP = 1 .− f f t ( s )∗dx ;
% t r an s f e r f unc t i on f o r band pass
H = H HP .∗ H LP ;
% Fourier transform of s i g n a l
% with zero padded gap o f s i z e o f
% l a r g e r k e rne l ( k e rne l o f h igh pass )
z2 = [ z ; zeros ( n2−n , 1 ) ] ;
Fz = f f t ( z2 ) ;
% back tp s p a t i a l domain
z3 = real ( i f f t (Fz .∗H) ) ;
z f = z3 ( 1 : n ) ;
In case of this kind of kernel the evaluation of the kernels and their Fourier transformations
s = exp(−pi∗x2 . ˆ2/ ( alpha ∗ lambda LP )ˆ2 )/ ( alpha ∗ lambda LP ) ;
H LP = f f t ( s )∗dx ;
do not need to be performed, since the analytical solution of the Fourier transform of a Gaussian
exists.
The Gaussian kernel according to ISO 16610-21 is given by
s(ξ) =1
αλce−π
(
ξαλc
)2
(3)
with s normalized such that∫ ξ2ξ1
s(ξ)dξ = 1 if ξ1 = −∞ und ξ2 = +∞, but sufficiently well being 1
for ξ1 = −λc und ξ2 = +λc. Then the Fourier transform of s, i.e. the transfer function of the low
pass for α =
√
ln(2)π is
H(λ) = 2−(λcλ)2 = e−π(αλc
λ)2 (4)
such that it can be implemented as follows
f0 = lambda LP/(n2∗dx ) ;f = [ 0 : nha l f+nl ] ’∗ f 0 ;
Fw = 2.ˆ(− f .∗ f ) ;
H LP = [Fw; Fw(nn : − 1 : 2 ) ] ;
[email protected] April 13, 2016 4
instead.
Using the Spline filtration method as low pass according to ISO 16610-22 can either be obtained by
replacing the Gaussian kernel s by following function
s(ξ) =√2 sin(π
√2
1
λc|ξ| + π
4) exp(−π
√2
1
λc|ξ|) (5)
with following implementation example
Fb = 1/lambda LP ;
s = sqrt (2 ) ∗ sin (pi∗sqrt (2)∗Fb∗abs ( x)+pi /4) .∗ . . .
exp(−pi∗sqrt (2)∗abs (Fb∗x ) ) ;H LP = f f t ( s )∗dx ;
or by following equation:
(
E + α4Q)
zW = zP with α =1
2 sin(π∆x/λc)(6)
The relation between Eq. (5) and Eq. (6) cannot be derived straight forward. Terzopoulos at
Massechusetts Institute of Technology and Unser at the Biomedical Imaging Group, Swiss Federal
Institute of Technology Lausanne have investigated the relation between spline numerics and signal
theory, hence the transfer function of different spline filters [1, 2].
This writeup is restricted to only give an idea of what is a spline, in particular a smoothing spline.
Splines are polynomials to approximate a signal z(x) between its knots xi. The condition to be
fullfilled is its smoothness within each knot as in case of wooden beams fixed at distant positions.
The wooden splines can be described as cubic functions with natural constraints. The tension has
to be at minimum.
Within each interval between the fixes (the nails or knots) [xi, xi+1) the shape of the wood is described
by a polynomial pi(x) of degree 3 with the constraint
pi(xi) = z(xi) (7)
and the constraints
pi(xi+1) = pi+1(xi+1)∂
∂xpi(x)|xi+1 =
∂
∂xpi+1(x)|xi+1
∂2
∂x2pi(x)|xi+1 =
∂2
∂x2pi+1(x)|xi+1 (8)
with pi+1(x) being the polynomial of the successing interval [xi+1, xi+2).
As Hermite spline, for instance, it may look like:
p(x) =n−1∑
i=1
pi(x) pi(x) =
{
∑3ν=0 cν,i x
ν if x ∈ [xi, xi+1)
0 else(9)
[email protected] April 13, 2016 5
Figure 4: Principle of spline interpolation (left) and smoothing spline approximation (right).
Alternatively a representation of Splines by recursively employing Neville polynomials has been
proposed by Carl R. de Boor [3] in 1970 being more stable than the straight forward representation
in Eq. (9). Neville polynomials are described in Numerical Recipes [4], chapter 3.1, and in the Annex
of this write up.
For data points z(xi) that scatter significantly the polynomials are oscillating. A smoothing by a
sort of averaged passing the data points no longer fullfilling pi(xi) = z(xi) will be desired. That kind
of splines is referred to as smoothing splines s(x) that meet some points wi of the smoothed profile,
the so-called waviness, with
s(x) =n−1∑
i=1
si(x) si(x) =
{
∑3ν=0 cν,i x
ν if x ∈ [xi, xi+1)
0 elsesi(xi) = wi (10)
and
si(xi+1) = si+1(xi+1)∂
∂xsi(x)|xi+1 =
∂
∂xsi+1(x)|xi+1
∂2
∂x2si(x)|xi+1 =
∂2
∂x2si+1(x)|xi+1 (11)
The smoothing is based on a maximum likelihood optimization that minimizes the sum of least
squares of the differences between signal values and their partners being lifted for smoothing and of
the tension (Tikhonov regularisation):
E =n−1∑
i=1
(z(xi) − wi)2 + r
∫ L
0
(
∂2
∂x2s(x)
)2
dx → minwi
(12)
with r called regularisation parameter (r > 0). For r = 0 the spline would be a straight line. The
regularisation parameter determines the waviness, hence the wavelength of the spline filter. In ISO
16610-22, the polynomials are chosen such that after differentiation we obtain:
(E + rQ) zW = zP (13)
with zW being the column vector of the wi and zP of the primary signal values z(xi), furthermore
with E being the eye matrix and Q the pentagonal matrix as differential operator.
[email protected] April 13, 2016 6
Transforming the equation to Fourier space or Laplace space, it is possible to define a cut off wave-
length [1], i.e. to get the relation between a cut off wavelength and the regularisation parameter r.
The representation given in ISO 16610-22 has been suggested by Krystek in 1997 [5] as r = α4 with
α =1
2 sin(π∆x/λc)(14)
with ∆x being the (average of all) sampling interval sizes. The representation of Eq. (14) has to be
taken care of, if the sampling intervals are too many orders of magnitude smaller than the cut off
wavelength, i.e. if the ratio ∆x/λc will be very small such that 1/α4 get close to the resolution of the
representation of the floating points!
Including tension terms with a factor called tension parameter β makes its transfer characteristics
closer to that of the Gaussian filter:
(
E + βα2P + (1− β)α4Q)
zW = zP (15)
with zP := (z(x1), . . . , z(xn))T being the column vector of the original signal (height values of primary
profile) and zW := (w1, . . . , wn)T the resultant smoothed signal (waviness). Furthermore E is the eye
matrix, P the tridiagonal matrix of the differential quotiant for the first derivatives and Q the
pentadiagonal matrix for the second derivatives.
The applications regarded by ISO 16610-22 are those for aequidistantly sampled data, but Eq (15)
can as well be implemented if the band matrices are filled with the differing quotients.
Changing the parameter β, which may lie between 0 and 1, causes a change of the shape of the
waviness, i.e. its curvature. Chosing β = 0.625242 delivers a transfer function whose shape is close
to that of Eq. (4), which is the Fourier transform of the Gaussian kernel.
An extension of the profilometric spline of ISO 16610-22 for areas could be implemented as follows,
but a document with ISO-Number 16610-62 has not yet been projected:
function W = i s o16610 22 a r e a l (Z , d l a t e r a l , lambda , tbeta )
dx = d l a t e r a l ( 1 ) ;
dy = d l a t e r a l ( 2 ) ;
[ n , m] = s ize (Z ) ;
% n number o f rows , hence y−ax i s
% i . e . the number o f knots in a column vec to r
% m number o f columns , hence x−axis ,
% d . h . the number o f knots in a row vec to r
alphasquare = (0 . 5/ sin (pi∗dx/lambda ) ) ˆ 2 ;
p1 = tbeta ∗ alphasquare ;p2 = (1− tbeta )∗ alphasquare ˆ2 ;A = zeros (n , n ) ;
for k=3:n−2
[email protected] April 13, 2016 7
A(k , k+2)= p2 ;
A(k , k+1)=−4.0∗p2−p1 ;A(k , k ) = 1.0+6.0∗p2+2.0∗p1 ;A(k , k−1)=−4.0∗p2−p1 ;A(k , k−2)= p2 ;
end
A(1 , 1 ) = 1.0+p2+p1 ; A(1 , 2 ) = −2.0∗p2−p1 ;A(1 , 3 ) = p2 ;
A(2 , 1 ) = −2.0∗p2−p1 ; A(2 , 2 ) = 1.0+5.0∗p2+2.0∗p1 ;A(2 , 3 ) = −4.0∗p2−p1 ; A(2 , 4 ) = p2 ;
A(n−1,n) = −2.0∗p2−p1 ; A(n−1,n−1) = 1.0+5.0∗p2+2.0∗p1 ;A(n−1,n−2) = −4.0∗p2−p1 ; A(n−1,n−3) = p2 ;
A(n , n) = 1.0+p2+p1 ; A(n , n−1) = −2.0∗p2−p1 ;A(n , n−2) = p2 ;
Ainv = inv (A) ;
i f ( (n != m) | | ( dx != dy ) )
a lphasquare = (0 . 5/ sin (pi∗dy/lambda ) ) ˆ 2 ;
p1 = tbeta ∗ alphasquare ;p2 = (1− tbeta )∗ alphasquare ˆ2 ;B = zeros (m,m) ;
for k = 3 : n−2
B(k+2,k)= p2 ;
B(k+1,k)=−4.0∗p2−p1 ;B(k , k)= 1.0+6.0∗p2+2.0∗p1 ;B(k−1,k)=−4.0∗p2−p1 ;B(k−2,k)= p2 ;
end
B(1 , 1 ) = 1.0+p2+p1 ; B(2 , 1 ) = −2.0∗p2−p1 ;B(3 , 1 ) = p2 ;
B(1 , 2 ) = −2.0∗p2−p1 ; B(2 , 2 ) = 1.0+5.0∗p2+2.0∗p1 ;B(3 , 2 ) = −4.0∗p2−p1 ; B(4 , 2 ) = p2 ;
B(m,m−1) = −2.0∗p2−p1 ; B(m−1,m−1) = 1.0+5.0∗p2+2.0∗p1 ;B(m−2,m−1) = −4.0∗p2−p1 ; B(m−3,m−1) = p2 ;
B(m,m) = 1.0+p2+p1 ; B(m−1,m) = −2.0∗p2−p1 ;B(m−2,m) = p2 ;
Binv = inv (B) ;
else
Binv = Ainv ’ ;
end
W = Ainv ∗ Z ∗ Binv ;
[email protected] April 13, 2016 8
Figure 5: Different filter kernels having different shapes.
For larger matrices A and B a sparce matrix inversion procedure for band matrices is required.
2 Shape of Convolution Kernels
The various filters of ISO 16610 standards series allow different filter kernels having different shapes.
Therefore, the choice has to be taken thoroughly depending on the application and its sensitivity to
the curvature of the waviness.
If one of two waviness profiles of the same cut off wavelength has slightly higher amplitudes, which
means a greater curvature, then the remaining residuals of the one waviness has less values in the
tails of the amplitude density distribution than those of the other. The residuals, i.e. the differences
between the values of the primary signal and its waviness, are the roughness. Hence if an identical
primary profile is filtered with differently shaped kernels, the resultant waviness profiles differ as well,
consequently the residuals, i.e. the roughness as is illustrated for one example in Figs. 5 and 6.
Savitzky-Golay smoothing filters use regression polynomials to obtain appropriate weights for a kernel
to preserve statistical moments to a desired degree. Higher moments are preserved if the degree of
the polynomial is higher retaining the shape of a signal. A detailed derivation of Savitzky-Golay
filters is presented in Numerical Recipes [4], chapter 14.8, and in the Annex of this write up. For
[email protected] April 13, 2016 9
Figure 6: Different filter kernels having different shapes yield differently shaped waviness profiles:these plots shows the shapes of the waviness of one profile for the three different kernelsdisplayed in Fig. 5.
uniform sampling intervals of size ∆x the filter coefficients cν are only dependent on the kernel size
and the degree of the polynomial, thus can be tabulated in general independent of specific data. The
filter w = f(z) is a linear filter with coefficients (i.e. with a discrete kernel):
wk =
nR∑
ν=−nL
cνzk+ν (16)
with nL and nR for the number of neighboring data points contributing to the weighted averaging.
The polynomial of degree p be
wk =
p∑
j=0
βk,j(x − xk)j (17)
Regard sampling positions x for signal values z(x) at following aequidistantly given knots xk = k∆x
with k = 0, . . . , N − 1.
To obtain the filter coefficients cν a Maximum-Likelihood estimation for the coefficients ~β = (β0, ...βp)T
of the polynomial is performed
min~β
{R} with R =
nR∑
ν=−nL
(zk+ν − wk+ν(~β))2 (18)
With writing down wk+ν(~β) we want to express that w is a function of the polynomial coefficients β.
Differentiation with respect to ~βk to solve the optimization problem Eq. (18) means ∂R∂βk,l
= 0 with
[email protected] April 13, 2016 10
l = 0, . . . , p:
M~β =
...∑nR
ν=−nL(ν∆x)lzk+ν
...
(19)
with
M =
...
. . .∑nR
ν=−nL(ν∆x)l(ν∆x)j . . .
...
(20)
Introducing a new symbol G = M−1
~βk = G
...∑nR
ν=−nL(ν∆x)lzk+ν
...
(21)
with gjl being the elements of the (p+ 1)× (p+ 1) matrix. i.e. G = (gjl):
wk =
p∑
j=0
βk,j(x− xk)j =
p∑
j=0
p∑
j=0
gjl
nR∑
ν=−nL
(ν∆x)lzk+ν(xk − xk)j (22)
such that the desired filter coefficients are
cν =
p∑
j=0
p∑
l=0
gjl(ν∆x)l0j (23)
and with 0j = 0 for j 6= 0 and 00 = 1 it is:
cν =
p∑
l=0
gjl(ν∆x)l (24)
The ∆x cancel such that universal filter coefficients
cν =
p∑
l=0
gjl(ν)l (25)
can be obtained from matrix inversion.
M = M−1 =
...
. . .∑nR
ν=−nLνlνj . . .
...
−1
=(
XTX)−1
(26)
[email protected] April 13, 2016 11
Figure 7: Smoothing with combined Gaussian and Savitzky-Golay filter for parabola, i.e. polynomialdegree p = 2.
with
X =
1 −nL . . . (−nl)p
1 −nl + 1 . . . (−nL + 1)p
...... . . .
...
1 nR − 1 . . . (nR − 1)p
1 nR . . . (nR)p
(27)
ISO 16610-28 and 16610-31 employ a combination of the Savitzky-Golay filter coefficients and the
Gaussian kernel according to Seewig [6, 7]
sν =1
aλcexp
(
−π
(
ν∆x
aλc
)2)
a =
α =
√
ln(2)π if p = 0, 1
γ =
√
−1−W (−1/(2e))π if p = 2
(28)
by
min~β
{
nR∑
ν=−nL
sν (zk+ν − wk+ν(~β))2
}
(29)
yielding coefficients
cν = sν
p∑
l=0
gjlνl (30)
with
G−1 = M =
...
. . .∑nR
ν=−nLsνν
lνj . . ....
= XTSX and S =
s−nL0 . . . . . . 0
0 s−nL+1 . . . . . . 0...
. . ....
0. . . 0
0 . . . . . . 0 snR
(31)
[email protected] April 13, 2016 12
-8000
-6000
-4000
-2000
0
2000
4000
0 1 2 3 4 5 6
z (
nm
)
x (mm)
1
2
-0.8 -0.4 0 0.4 0.8
1
2
-0.8 -0.4 0 0.4 0.8
6000
b
L
Figure 8: Convolution with a partial Gaussian covering the interval ξ2 = b < λc mit b = (L− x).
Retaining the zeros and first moment means to reduce end effects, see section 4.3 of ISO 16610-28.
At the central part of the profile, the moments cancel for nL = nR, i.e. M becomes the eye matrix in
the central part, while at the borders XTSX it is no longer the eye matrix, such that the resultant
waviness and roughness profiles are identical to those obtained by the method of ISO 16610-21.
The polynomial of degree p = 0 denotes a constant, i.e. preserving the mean, which is given as
Eq. (15) in section 4.3 of ISO 16610-28. It does the same as spatial convolution with weighting
according to the kernel length giving rise to the effect at the borders of a profile. This is a weighted
averaging
f(rs) =
∫
ρ(r)rdr∫
ρ(r)dr(32)
The weight ρ in case of the Gaussian filter is the Gaussian kernel s:
w(x) =
∫ ξ2ξ1
s(ξ) z(x+ ξ)dξ∫ ξ2ξ1
s(ξ)dξ(33)
At the border regions [0, λc] und [L − λc, L] the kernel exceeds the profile, see Fig. 8 the partial
Gaussian covers the interval ξ2 = b < λc mit b = (L− x).
Eq. (33) delivers
w(x) =
∫ b−λc
s(ξ) z(x+ ξ)dξ∫ b−λc
s(ξ)dξ(34)
[email protected] April 13, 2016 13
0
0.5
1
1.5
2
2.5
3
-1 -0.8 -0.6 -0.4 -0.2 0 0.2 0.4 0.6 0.8 1
erf
gauss
(mm)
Figure 9: For weighting according to the kernel length the area of the Gaussian kernel, which is theGaussian error function erf, is used.
At the left border we obtain ξ1 = −b and b = x:
w(x) =
∫ λc
−b s(ξ)z(x+ ξ)dξ∫ λc
−b s(ξ)dξ(35)
Due to the symmetry of the Gaussian
∫ λc
−bs(ξ)dξ =
∫ b
−λc
s(ξ)dξ (36)
which approximates to the error function erf (Fig. 9)∫ λc
−λcs(ξ)dξ ≈ 1.
1
αλc
∫ b
−λc
e−π
(
ξ
αλc
)2
dξ ≈ 1
αλc
∫ b
−∞e−π
(
ξ
αλc
)2
dξ = erf
(
b
αλc
)
(37)
Using p = 1 preserves the straight line of the averaged signal part, which means that it minimizes
the end effect even better than p = 0, which is given as Eqn. (13) and (14) in section 4.3 of ISO
16610-28, as illustrated in Fig. 10.
That means that in the central part, p = 0 and p = 1 deliver identical results to the Gaussian of ISO
16610-21. Employing p = 2 preserves the variance, which means that it retains the widths of peaks
and pores. The shape retaining effect of the p = 2 choice is illustrated in Fig. 7.
3 Nested Filters - Filter Chain
In order to perform detrending within much smaller band widths and to detect structures or features
of various sizes, i.e. on different scales, topography signals are sieved like gravel stone to separate
different grain sizes. The ISO filter toolbox gives two different types of filtration methods, to perfom
[email protected] April 13, 2016 14
Figure 10: Minimizing end effects by Gaussian regressian. A regressian polynomial of order p = 0 isthe mean and the regressian polynomial of p = 1 is a straight line.
Figure 11: Copy of Fig. 2 of ISO 16610-49 showing the sieving concept for multi-scale analysis.
this
• a linear filter method using kernels similar to those described before (referred to as wavelets),
• and a morphological filter, which is non-linear.
The multi-scale analysis is realized as chain of filtration steps separating the low frequency part of
a signal (referred to as smoothed s) from the high frequency signal part of the signal (referred to
as residuals or differences d) as illustrated in Fig. 2 of ISO 16610-49 which we have copied to this
writeup shown in Fig. 11. The idea of discrete wavelet transformations and multiresolution scaling is
to split the data set half and half, the one half for the high passed and the other for the low passed
component.
[email protected] April 13, 2016 15
Unser has developed discrete wavelet transformation (DWT) algorithms to process medical data
[8, 9, 10]. ISO 16610-29 for geometrical product specification, refers to splines wavelets. Spline
wavelets are available as bisplines, biorthogonal wavelets to be found as BIOR, eg for Matlab or
Gnu-octave or for python. They differ according to the number of vanishing moments NR for the
number of vanishing moments of the reconstruction / synthesis filter and ND for the decomposition
/ analysis filter.
During the 1980s morphological filters have been developed as image processing tool for pattern
recognition purposes for a variety of biomedical and automated industrial inspectation applications.
They are nonlinear signal transformations that locally modify geometric features of the signal [11]. It
was Matheron and Serra in the 1970s who have introduced the mathematical morphology into image
processing [12]. A few years later they and others extended morphological filters to multilevel signals
by shrinking/ expanding operations on binary images to sieve structures of various sizes accordingly.
The science of analysing surface texture and topographies operates with images that have a continuous
height axis such that the mathematical morphology needs an appropriate modification. In the field of
scanning probe microscopy the nonlinear operation of Minkowski subtraction often has been referred
to as a deconvolution of a probe tip. Using the term deconvolution might be misleading for those
who specify the term convolution as being a linear operation. Keller and Franke call a dilation result
(being the consequence of probing with a finite tip size of a stylus insturment) envelope and the
erosion result envelope reconstruction introducing an algorithm on a continuous height space [13].
For geometric product specification the non-linear morphological filtration procedures are proposed
in the ISO standards series 16610-40ff. There are two different filters to remove structures
• for peaks on upper asperities called opening
• and for holes in valleys called closing.
They are realized by a successive application of the two elementary operations of morphology, namely
dilation which is as well called Minkowski sum and erosion, the Minkowski difference:
• For opening first erosion is applied then dilation.
• For closing first dilation is applied then erosion.
Fig. 12 illustrates the two elementary operations of morphology dilation (Minkowski sum) and erosion
(Minkowski difference). The signal on which the operations are applied is the black curve. The blue
curve represents the border of a geometry which is called structuring element and which serves to
remove geometry from data (like a cutting tool in surface finishing) resp. to add geometry onto data
(like the envelope by probing with finited sized stylii). For the algorithm, the set of border points of
the structuring element has one reference point or origin. For each of the signal coordinate pairs resp.
triples (i.e. for each point) the reference point of the structuring element is placed on the regarded
signal point. Then the borders are compared: for dilation the outward points are chosen, i.e. if the
[email protected] April 13, 2016 16
Figure 12: The two elementary operations of morphology are dilation (Minkowski sum) and erosion
(Minkowski difference).
signal points lie outside with respect to the structuring element, then they are chosen, if the points
of the border of the structuring element are outside, then they are chosen, see Fig. 13. For erosion
the points that lie inside are chosen.
If the procedure is applied to any contour, the direction to define inside vs. outside is needed. For to-
pography measurements, usually, there exists only one surface normal, which is referred to as height
or z-axis. Villarubia delivers a C implementation [14] of Keller and Franke’s envelope reconstruction
method [13] for scan signals with arbitrarily shaped probe tips, i.e. structuring elements. The sub-
sequent listing shows a simplified version of Villarubia’s procedure, here assuming the structuring
element having a circular shape with radius R:
function r = d i l a t e a e q u i d i s t a n t ( z , dx , R)
%
% z are he i gh t s , h e i g h t a x i s i s the d i r e c t i o n
% to de f i n e ou t s i d e and i n s i d e
%
% R rad ius o f s p h e r i c a l s t r u c t u r i n g element
%
z = z ( : ) ;
nd = s ize ( z , 1 ) ;
r = z ;
t ipwidth = 0.8∗R;
nt = 2∗ f loor ( 0 . 5∗ t ipwidth /dx ) ;
x = [−nt : nt ] ’ ∗ dx ;
t = R .− sqrt (Rˆ2 .− x . ˆ 2 ) ;
for l =2: nt
h = z ( l ) .− t ( nt+2− l : 2∗ nt+1);
iabove = find ( r ( 1 : l+nt)<h ) ;
r ( iabove ) = h( iabove ) ;
[email protected] April 13, 2016 17
Figure 13: Illustration of the operation of dilation (Minkowski sum).
end
for l=nt+1:nd−nt−1
h = z ( l ) .− t ;
iabove = find ( r ( l−nt : l+nt)<h ) ;
r ( l−nt−1+iabove ) = h( iabove ) ;
end
for l=nd−nt : nd
h = z ( l ) .− t ( 1 : nt+1+nd−l ) ;
iabove = find ( r ( l−nt : nd)<h ) ;
r ( l−nt−1+iabove ) = h( iabove ) ;
end
Erosion operates analogously by flipping the sign:
h = z ( l ) .+ t ;
ibe low = find ( r ( l−nt : l+nt)>h ) ;
The opening filter is carried out by
r = e r od e a equ i d i s t an t ( z , dx , R f i l t e r ) ;
o = d i l a t e a e q u i d i s t a n t ( r , dx , R f i l t e r ) ;
taking off all asperities that are smaller than the structuring element delivering a smoother signal
o(x) illustrated as green curve in Fig. 14. The black curve is the input signal z(x) and the red curve
the intermediate signal r(x) obtained after erosion.
[email protected] April 13, 2016 18
Figure 14: The opening filter is the successive application of erosion (Minkowski difference) and thendilation (Minkowski sum).
Figure 15: The closing filter is the successive application of dilation (Minkowski sum) and then erosion
(Minkowski difference).
[email protected] April 13, 2016 19
Then the closing is obtained by
d = d i l a t e a e q u i d i s t a n t ( z , dx , R f i l t e r ) ;
c = e r od e a equ i d i s t an t (d , dx , R f i l t e r ) ;
filling holes that are smaller than the structuring element delivering a smoother signal c(x) illustrated
as red curve in Fig. 15. The black curve is the input signal z(x) and the green curve the intermediate
signal d(x) obtained after dilation. ISO standard 16610-41 describes a circular and a linear structuring
element.
The filter chains start off with very small features / structures and succesively smooth the signal by
removing more and more details meaning enlarging the scale / shrinking the resolution. The sieving
is started with the smallest mesh size successively separating grains of growing size. The filtration
chain (ladder structure) is described in ISO 16610-49.
4 Robust Estimation for Low Pass Filters
If there is a bias to the distribution of residuals to a model whose parameters are to be estimated
with respect to the maximum likelihood (MLE) presumption of Gaussian distributed probabilities
showing up as long (sometimes even bumpy) tails, the estimation process needs to be changed.
Multiplication of the residuals respectivley their squares with weights that change their distribution
such that the tails are suppressed forces the parameters to be estimated without being influenced by
outliers (M-estimator). In ISO 16610-31 a filter [6] has been standardized that
1. uses Tuckey ’s biweight function for M-estimation to be insensitive to strong tails / outliers and
2. the Gaussian kernel function combined with Savitzky-Golay coefficients for polynomial degree
p = 2 to preserve the second statistical moment, i.e. the shape of peaks (shape retainment).
The effect of a weight function, here Tuckey ’s biweight function
δl =
(
1 −(
zPl−zW
l
cB
)2)2
if |zPl − zWl | ≤ cB
0 if |zPl − zWl | > cB
cB = 4, 4478 median( |zPk − zWk| ) (38)
has been shown with an example of a topography that has been eroded (numerically) on its top
asperities in Fig. 16.
The weights for the M-estimation are a function of the residuals known after estimation but are as
well needed in order to estimate, such that the optimization process has to be performed iteratively,
as shown in Fig. 17. Furthermore, the weights for the M-estimation are a function of the absolute
position of the height values thus they are convolved with the filter kernel of the Gaussian and
[email protected] April 13, 2016 20
Figure 16: Change of amplitude density (height) distribution by weighting to make it more Gaussianlike to be compatible with maximum likelihood estimation. Giving weights to residuals iscalled M-estimation.
Figure 17: M-estimation uses weights that are a function of the residuals such that the optimizationfunctional is implicit. The solution is searched iteratively.
[email protected] April 13, 2016 21
Savitzky-Golay coefficients:
zWsk = (1 0 0)(
XTk Sk Xk
)−1XT
k Sk zP (39)
with
XTk Sk Xk =
∑nl=1 ((l − k)∆x)2 sl,k δl
∑nl=1 ((l − k)∆x)3 sl,k δl
∑nl=1 ((l − k)∆x)4 sl,k δl
∑nl=1 ((l − k)∆x) sl,k δl
∑nl=1 ((l − k)∆x)2 sl,k δl
∑nl=1 ((l − k)∆x)3 sl,k δl
∑nl=1 sl,k δl
∑nl=1 ((l − k)∆x) sl,k δl
∑nl=1 ((l − k)∆x)2 sl,k δl
(40)
and with
XTk Sk z
P =
∑nl=1 ((l − k)∆x)2 sl,k δl z
P
l
∑nl=1 ((l − k)∆x) sl,k δl z
P
l
∑nl=1 sl,k δl z
P
l
(41)
The lateral position’s matrix X now is defined as
Xk =
1 (1− k)∆x ((1− k)∆x)2
1 (2− k)∆x ((2− k)∆x)2
......
...
1 (n− k)∆x ((n− k)∆x)2
(42)
Furthermore
Sk =
s1,kδ1 0 . . . . . . 0
0 s2,kδ2 . . . . . . 0...
. . ....
0. . . 0
0 . . . . . . 0 sn,kδn
and z =
z1
z2...
zn
(43)
[email protected] April 13, 2016 22
Each one of the coefficients of the 3× 3-matrix XTk SkXk and of the threedimensional vector XT
k Skz
represents a convolution of vector
~sν =
0
(∆x)ν e−( 1
2
(
∆xλcΛTP
)2)
(2∆x)ν e−( 1
2
(
2∆xλcΛTP
)2)
...
(m∆x)ν e−( 1
2
(
m∆xλcΛTP
)2)
((m− 1)∆x)ν e−( 1
2
(
(m−1)∆x
λcΛTP
)2)
...
(2∆x)ν e−( 1
2
(
2∆xλcΛTP
)2)
(∆x)ν e−( 1
2
(
∆xλcΛTP
)2)
ν = 0, 1, 2, 3, 4
m = (n+ λc/∆x)/2
(44)
with one of the following vectors accordingly
~δ =
δ1
δ2...
δn
0...
0
~Zδ =
δ1 zP
1
δ2 zP
2...
δn zP
n
0...
0
(45)
The Gaussian kernel as defined in Eq. (28) may be rewritten with factor 12 as known for normal
distributions rather than π
sν(x) = xν e−(π
(
xγ λc
)2)= xν e
−( 12
(
xλc ΛTP
)2)
(46)
with ΛTP = 0.2915922697, see Seewig [6].
[email protected] April 13, 2016 23
To optimize computing time we perform multiplications in Fourier domain rather than convolving in
spatial domain:
n∑
l=1
((l − k)∆x)νsl,kδl = Re(
F−1k ( ~Aν)
)
n∑
l=1
((l − k)∆x)νsl,kδl zl = Re(
F−1k ( ~Bν)
)
(47)
with
~Aν =
F0(~sν)F0(~δ)
F1(~sν)F1(~δ)
...
F2m(~sν)F2m(~δ)
~Bν =
F0(~sν)F0(~Z)
F1(~sν)F1(~Z)
...
F2m(~sν)F2m(~Z)
(48)
with
~F(a) =
F0(a)
F1(a)
F2(a)
...
F2m(a)
=
∑∞l=−∞ al
∑∞l=−∞ al e
−i 2π 1Ll∆x
∑∞l=−∞ al e
−i 2π 2Ll∆x
...
∑∞l=−∞ al e
−i 2π 2mL
l∆x
=
∫∞−∞ a(x) dx
∫∞−∞ a(x) e−i 2π 1
Lx dx
∫∞−∞ a(x) e−i 2π 2
Lx dx
...
∫∞−∞ a(x) e−i 2π 2m
Lx dx
(49)
~F−1(b) =
F−10 (b)
F−11 (b)
F−12 (b)
...
F−12m(n)
=
∑∞l=−∞ bl
∑∞l=−∞ bl e
i 2π lL∆x
∑∞l=−∞ bl e
i 2π lL2∆x
...
∑∞l=−∞ bl e
i 2π lL2m∆x
=
∫∞−∞ b(f) df
∫∞−∞ b(f) ei 2π f ∆x df
∫∞−∞ b(f) ei 2π f 2∆x df
...
∫∞−∞ b(f) ei 2π f 2m∆x df
(50)
The terms with the Gaussian kernel can be transformed to Fourier domain analytically and thus
implemented as terms that already exist as Fourier transforms without using any numerical Fourier
transformation for them:
Fl(~sν) ≡ Fν,l =1√
2π λc ΛTP
∫ ∞
−∞xν e
−( 12
(
xλc ΛTP
)2)e−i 2π l
Lx dx (51)
[email protected] April 13, 2016 24
To be short, we write a1 = λcΛTP for the constants of the Gaussian kernel:
s(x) = e−( 1
2
(
xa1
)2)
(52)
Be L the length of the profile, n the number of data points, and λc the cut off wave length as nesting
index, then the spatial frequencies f are given by
f = lf0 with l = 0, . . . , n− 1 (53)
with f0 =2πL .
Fν =
∫ ∞
−∞xν e
−( 12
(
xa1
)2)e−ilf0xdx; (54)
with d1 = a1f0
F0(x) =√2π a1 e
− 12(d1l)2
F1(x) = − i√2πa1 a1 d1 l e
− 12(d1l)2
F2(x) =√2π a1 a
21
(
1 − (d1l)2)
e−12(d1l)2
F3(x) = i√2π a1 a
31
(
(d1l)3 − 3 (d1l)
)
e−12(d1l)2
F4(x) =√2π a1 a
41
(
(d1l)4 − 6 (d1l)
2 + 3)
e−12(d1l)2
and with
d = λc ΛTP2π
L
F0,l = e−12(d l)2 ; F1,l = − i (λcΛTP) (d l) e
− 12(d l)2 ; F2,l = (λcΛTP)
2(
1 − (d l)2)
e−12(d l)2 ;
F3,l = i (λcΛTP)3(
(d l)3 − 3 (d l))
e−12(d l)2 ; F4,l = (λcΛTP)
4(
(d l)4 − 6 (d l)2 + 3)
e−12(d l)2
[email protected] April 13, 2016 25
As robust spline in ISO 16610-32 a version with L1-norm is proposed. Recalling Eq. (12) for the
tension parameter β = 0
E =n−1∑
i=1
(z(xi) − wi)2 + r
∫ L
0
(
∂2
∂x2s(x)
)2
dx → minwi
(55)
it could as well be modified to a robust version either by introducing an appropriate weighting
Ψ(z(xi) − wi) for an M-estimation
E =n−1∑
i=1
Ψ (z(xi) − wi)2 + r
∫ L
0
(
∂2
∂x2s(x)
)2
dx → minwi
(56)
or by choosing L1-norm either
E =n−1∑
i=1
|z(xi) − wi| + r
∫ L
0
∣
∣
∣
∣
∂2
∂x2s(x)
∣
∣
∣
∣
dx → minwi
(57)
which causes problems since the absolute value is not continous or
E =n−1∑
i=1
c |z(xi) − wi| + r
∫ L
0
(
∂2
∂x2s(x)
)2
dx → minwi
(58)
requiring an appropriate factor c to have both terms of the same physical dimension, here to carry
the dimension of a length. Seewig suggests in Leach Characterisation of Areal Surface Texture [15],
chapter 4.2, following definition of c interpreting roughness profiles being a superposition of sinusoidal
waves of various wavelengths (with random amplitudes and phases):
c =π
2
1
n
n∑
k=1
|z(xk) − wk| (59)
With tension term and analogously to the filter equation (15) we have
(
V + βα2P + (1− β)α4Q)
zWs = VzP (60)
with the column vectors for the waviness zW := (w1, . . . , wn)T respectively the robustly estimated
waviness zWs := (w1, . . . , wn)T and the primary profile zP := (z(x1), . . . , z(xn))
T :
V =
c|z(x1)−w1|
0 . . . . . . 0
0. . . 0
...... 0
. . . 0...
.... . . 0
0 . . . . . . 0 c|z(xn)−wn|
(61)
[email protected] April 13, 2016 26
Figure 18: Survey on standards on filtration.
As for the robust regression Gaussian, here again, we have an implicite equation that is solved
iteratively using the waviness values wk of the linear filter as start values included into the factor c
and the matrix V and then for each step the predicessor waviness.
5 The ISO Toolbox
Basic concepts of linear filters are given for profiles in ISO 16610-20 and for areal data in ISO 16610-
60. As specific filters, those with [Regressian]-Gaussian (16610-21 / -28 for profiles and 16610-61 for
areal data) are standardized and that with smoothing spline in 16610-22 for profiles.
Basics concepts of robust filters are given for profiles in ISO 16610-30 and for areal data in ISO
16610-70. As specific filters, those with Regressian-Gaussian (16610-31 for profiles and 16610-71 for
areal data) are standardized and that with smoothing spline in 16610-32 for profiles.
[email protected] April 13, 2016 27
The definitions of the basic operations for mathematical morphology are given in ISO 16610-40.
Specific suggestions for using a circular disk and a horizontal line segment are given in ISO 16610-41.
A segmentation procedure for areal topography maps is given in ISO 16610-85.
Filtration chains for hierarchically sieving of different sizes are specified is ISO 16610-29 (using
discrete wavelet transforms) and ISO 16610-49 (using morphological filters).
Fig. 18 displays the master plan of the ISO 16610 toolbox with the availability state by September
2015.
References
[1] D. Terzopoulos. Regularization of inverse visual problems involving discontinu-
ities. IEEE Trans. Pattern Analysis and Machine Intelligence, PAMI-8(4), 1986.
doi:10.1109/TPAMI.1986.4767807.
[2] M. Unser, A. Aldroubi, and M. Eden. Recursive regularization filters: Design, proper-
ties, and applications. IEEE Trans. Pattern Analysis and Machine Intelligence, 13(3), 1991.
doi:10.1109/34.75514.
[3] C. de Boor. On calculating with B-splines. J. Approx. Theory, 6:50–62, 1972.
[4] B. P. Flannery, W. H. Press, S. A. Teukolsky, and W. T. Vetterling. Numerical Recipes in C.
Cambridge University Press, 2. edition, 1992-2002.
[5] M. Krystek. Transfer functions of discrete spline filters. In Advanced Mathematical Tools in
Metrology III, number 45 in Series on Advances in Mathematics for Applied Sciences, pages
203–210, 1997. doi:10.1142/9789814530293.
[6] Jorg Seewig. Praxisgerechte Signalverarbeitung zur Trennung der Gestaltabweichungen technis-
cher Oberflachen. Shaker, 2000.
[7] J. Seewig. Linear and robust gaussian regression filters. Journal of Physics: Conference Series,
13(1):254, 2005. doi:10.1088/1742-6596/13/1/059.
[8] M. Unser, A. Aldroubi, and M. Eden. Polynomial spline signal approximations: filter design
and asymptotic equivalence with shannon’s sampling theorem. IEEE Trans. Information, 38(1),
1992. doi:10.1109/18.108253.
[9] M. Unser, A. Aldroubi, and M. Eden. A family of polynomial spline wavelet transforms. Signal
Processing, 30(2), 1993. doi:10.1016/0165-1684(93)90144-Y.
[10] M. Unser. Ten good reasons for using spline wavelets. In Wavelet Applications in Signal and
Image Processing V, number 422-431 in Proc. SPIE, 1997. doi:10.1117/12.292801.
[email protected] April 13, 2016 28
[11] P. Maragos and R. W. Schafer. Morphological filters - part 1: Their set-theoretic analysis
and relations to linear shift-invariant filters. IEEE Trans. Acoust, Speech, Signal Processing,
35:1153–1169, 1987.
[12] H. J. A. M. Heijmans. Mathematical morphology: A modern approach in image processing
based on algebra and geometry. SIAM Review, 37(1):1–36, 1995.
[13] D. J. Keller and F. S. Franke. Envelope reconstruction of probe microscope images. Surf. Sci.,
294:409–419, 1993.
[14] J.S. Villarrubia. Algorithms for scanned probe microscope image simulation, surface re-
construction, and tip estimation. J. Res. Natl. Inst. Stand. Technol, 102(4):425–454, 1997.
http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.42.4414.
[15] Richard Leach (Ed). Characterisation of Areal Surface Texture. Springer, 2013.
doi:10.1007/978-3-642-36458-7.
[16] G. Fernandez, S. Periaswamy, and W. Sweldens. Liftpack: A software package for wavelet
transforms using lifting. In Wavelet Applications in Signal and Image Processing IV, number
396 in Proc. SPIE, 1996. doi:10.1117/12.255250.
Annex
In order to interpolate between signal values of neighboring knots, often polynomials are chosen, such
as Neville polynomial as it is the case for Fernandez-Periaswamy-Sweldens lifting wavelets used in
Annex A of ISO 16610-29:
The interpolated value for some position xinterp between the knots of given values (zν , zν+1, . . . , zν+p)
be zinterp. The coefficients of the polynomial (β0, β1, . . . , βp) are to be estimated from the p+1 signal
values (zν , zν+1, . . . , zν+p). In ISO 16610-29 cubic polynomials are chosen, i.e. p = 3 and for knots
not directly at the border, the mid position is chosen for interpolation. Furthermore, the polynomial
degree is called p in ISO 16610-31 but N in ISO 16610-29, because Fernandez, Periaswamy and
Sweldens called it N , [16].
Once the coefficients (β0, β1, . . . , βp) are estimated, the interpolated signal would be
zinterp =
p∑
j=0
βj xjinterp (62)
and to obtain the (p + 1) coefficients, we solve the (p + 1) × (p + 1) linear equation system (this is
[email protected] April 13, 2016 29
Eq (5) in the liftpack paper [16]).
zν+k =
p∑
j=0
βjxjν+k k = 0, . . . p (63)
i.e.
zν...
zν+k
...
zν+p
=
x0ν+0 . . . xjν+0 . . . xpν+0...
......
x0ν+k . . . xjν+k . . . xpν+k...
......
x0ν+p . . . xjν+p . . . xpν+p
β0...
βj...
βp
(64)
inserting Eq. (64) into Eq. (62)
zinterp =(
x0interp . . . xjinterp . . . xpinterp
)
β0...
βj...
βp
delivers
zinterp =(
x0interp . . . xjinterp . . . xpinterp
)
...
. . . xjν+k . . ....
−1
zν...
zν+k
...
zν+p
(65)
The filter coefficients l0, . . . , lp to interpolate at position xinterp
zinterp = ~l T
zν...
zν+k
...
zν+p
(66)
with ~l T = (l0, . . . , lp) are the Neville’s polynomial coefficients and as well the Sweldens’ wavelet
[email protected] April 13, 2016 30
for the predict step to calculate the residual dodd = zsignal(xodd) − zinterp(xodd) with
zinterp(xodd) = ~l T
zeven−2∗(p+1)/2...
zeven−2=odd−1
zeven=odd+1
zeven+2=odd+3
...
zeven+2∗(p+1)/2
(67)
and furthermore for the update step to calculate the lifting residuals for smoothing zsmooth(xeven) =
zsignal(xeven) + dsmooth
dsmooth = ~l T
dodd−2∗(p+1)/2...
dodd−2
dodd
dodd+2
...
dodd+2∗(p+1)/2
(68)
The coefficients can be obtained generally for aequidistantly sampled signals, as the sampling interval
cancels when the fraction is reduced.
~l T =(
x0interp . . . xjinterp . . . xpinterp
)
...
. . . xjν+k . . ....
−1
(69)
where the xν+k are those at the even indexed positions, and xinterp the odd indexed one in the middle.
ISO 16610-29 proposes to use cubic polynomials, i.e. p = 3. Let’s set the x-value for the middle one
to be interpolated xinterp = 0 and those left and right of it at (−3, −1, 1, 3) not confusing x-positions
with indices. Rewriting Eq. 69 specifically, we obtain
~l T =(
00 01 02 03)
(−3)0 (−3)1 (−3)2 (−3)3
(−1)0 (−1)1 (−1)2 (−1)3
10 11 12 13
30 31 32 33
−1
(70)
i.e.
[email protected] April 13, 2016 31
~l T = (1 0 0 0)
1 −3 9 −27
1 −1 1 −1
1 1 1 1
1 3 9 27
−1
(71)
i.e.
~l T = (1 0 0 0)
− 116
916
916 − 1
16148 − 9
16916 − 1
48116 − 1
16 − 116
116
− 148
116 − 1
16148
=
(
− 1
16
9
16
9
16− 1
16
)
(72)
If the polynomial shall be a regression polynomial not just going exactly through the p + 1 (resp.
N + 1) but been fitted to N > p+ 1 signal values via LMS estimation, instead of a Neville polyno-
mial interpolation, it is called Savitzky-Golay filter. The coefficients of this filter are estimated by
minimizing the sum of squares of the residuals meaning that there are small finite differences between
the signal values zν and the polynomial wν . The Neville polynomial, however, takes the values of
the signal at the positions xν+k.
The LMS optimization problem for estimating Savitzky-Golay filter coefficients is
min~βν
{
N∑
k=0
(zν+k − wν+k)2
}
(73)
with wν+k for the approximation by an regression polynomial
wν+k =
p∑
j=0
βν,j (k∆x)j (74)
∂
∂βν,m
{
N∑
k=0
(zν+k − wν+k)2
}
= 0 (75)
i.e.
2N∑
k=0
(zν+k − wν+k)∂wν+k
∂βν,m= 0 (76)
i.e.N∑
k=0
(zν+k∂wν+k
∂βν,m) =
N∑
k=0
(wν+k∂wν+k
∂βν,m) (77)
with Eq. 74 and its derivative
∂wν+k
∂βν,m=
p∑
j=0
δj,m (k∆x)j = (k∆x)m (78)
[email protected] April 13, 2016 32
we obtainN∑
k=0
zν+k (k∆x)m =N∑
k=0
p∑
j=0
βν,j (k∆x)j (k∆x)m (79)
rearranging itp∑
j=0
(
N∑
k=0
(k∆x)j (k∆x)m
)
βν,j =
N∑
k=0
(k∆x)m zν+k (80)
and writing it in matrix notation
...
. . .∑N
k=0 (k∆x)j (k∆x)m . . ....
...
βν,j...
=
...∑N
k=0(k∆x)m zν+k
...
(81)
For the smoothed interpolated signal w(x), i.e. for w(x) =∑p
j=0 βν,j xj we use
...
βν,j...
=
...
. . .∑N
k=0 (k∆x)j (k∆x)m . . ....
−1
...∑N
k=0(k∆x)m zν+k
...
(82)
and choose k = N/2 for the position of which the smoothed signal is to be estimated. A symmetric
filtering around k is obtained for N being odd: N = 2n+ 1. Performing a shift of indices in Eq. 83
delivers
...
βν,j...
=
...
. . .∑n
k=−n (k∆x)j (k∆x)m . . ....
−1
...∑n
k=−n(k∆x)m zν+k
...
(83)
such that the desired mid position x is position at zν and x = 0 ·∆x and the smoothed signal will be
wν =
p∑
j=0
βν,j 0j = (00 01 . . . 0p)
...
βν,j...
(84)
i.e. with (00 01 . . . 0p) being the (p+ 1)-dimensional unity vector (1 0 . . . 0) we obtain
wν = (1 0 . . . 0)
...
. . .∑n
k=−n (k∆x)j (k∆x)m . . ....
−1
...∑n
k=−n(k∆x)m zν+k
...
(85)
for the final filter equation.
The Savitzky-Golay filter (or regressian polynomial filter) is moment preserving to the p-th moment.
[email protected] April 13, 2016 33
It is combined with the Gaussian filter by including the Gaussian kernel as weights. Here as well
it is the mid position where the smoothed signal is desired. Furthermore with indices chosen for a
symmetric filtering around k is chosen for N being odd N = 2n+ 1 as above:
min~βν
{
n∑
k=−n
sk (zν+k − wν+k)2
}
(86)
with
sk =1
αλe−π ( k∆x
αλ )2
(87)
the Savitzky-Golay filter modified by a weight function as Gaussian kernel is referred to as Regression-
Gaussian filter.n∑
k=−n
sk zν+k∂wν+k
∂βν,m=
n∑
k=−n
sk wν+k∂wν+k
∂βν,m(88)
i.e.
...
. . .∑n
k=−n sk (k∆x)j (k∆x)m . . ....
...
βν,j...
=
...∑n
k=−n sk (k∆x)m zν+k
...
(89)
wν = (1 0 . . . 0)
...
. . .∑n
k=−n sk (k∆x)j (k∆x)m . . ....
−1
...∑n
k=−n sk (k∆x)m zν+k
...
(90)
In ISO 16610-28 it is used to minimize end effects by preserving the mean, i.e. the first moment with
p = 1. In ISO 16610-31 it is used for shape retainment, preserving the width of peaks, i.e. second
moment with p = 2.
[email protected] April 13, 2016 34