[Ifeffit] rbkg
Matt Newville
newville at cars.uchicago.edu
Mon Jul 11 22:36:47 CDT 2005
Silvio,
How Autobk / spline() works:
First, the definition of a spline: A spline is a flexible
function that is made up from a series of polynomial segments.
Each polynomial is 4th order (ie, a 'cubic polynomial' a + b*x +
c*x*x + d*x*x*x). The polynomial segments are joined together
such that the value are first two derivatives are continuous
across the joint (also known as a 'knot'). With this
definition, and a few constraints about the endpoints, a
flexible, smooth function can be defined simply defining the y
values at the knots, and the flexibility of the function is
determined by the number and placement of the knots.
Autobk / spline() uses such a spline with Nbkg knots evenly
spaced in k-space to approximate mu0(E), where
Nbkg = 1 + (2*Delta K * Rbkg )/ pi .
where Delta_K is the k-range of the data (or to be considered,
as using kmin=~0.5 is common and sometimes you specify kmax).
In ifeffit, Nbkg is truncated, not rounded.
That gives the *number* of variables, quantifying the
flexibility of mu0(E).. The values of the mu0(E) spline at the
Nbkg knots are then optimized in a fitting procedure. The
criteria for "best values" is that
chi(R) = FT{chi(k)=[mu(k)-mu0(k)]/step}
be "as small as possible" between 0 and Rbkg.
[When using a standard spectra, 'as small as possible' is
replaced with 'as close to the the standard as possible'].
The fit procedure goes something like this:
guess values of mu0(E_i) for i = 1, N_bkg knots
subtract this background
FT this result
generate sum of squares chi(R) between 0 and R_bkg
refine values of mu0(E_i) and start over
So, Rbkg has two purposes:
a) set the flexibility of mu0(E)
b) set the highest R component to consider in the optimization.
In signal processing, Rbkg is commonly called a Nyquist
frequency. You can also think of it as the frequencey of a
high-pass filter It isn't perfectly sharp, so there can be
changes in spectral content around R=Rbkg with small tweaks to
Rbkg.
I highly recommend playing wtih Rbkg with some decent model
compound data (where you know the first shell species). Try
setting Rbkg=0.2, 1.0, 2.0, and 5.0. With Athena, you can
nicely clone a group and plot all the results together in E, k,
and R-spaces. You'll see that you're removing low frequency
components, that Rbkg really is (roughly) the cutoff, and why
you don't want to use Rbkg=5.0!
Hope that clears up most questions,
--Matt
More information about the Ifeffit
mailing list