[Ifeffit] rbkg

Matt Newville newville at cars.uchicago.edu
Mon Jul 11 22:36:47 CDT 2005


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

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,


More information about the Ifeffit mailing list