Hi, I'm a new reader of the list. Thanks for all this very useful software and impressive documentation. I'm having trouble understanding the role of rbkg in spline (or autobk). Ravel's Exafs Analysis with FEFF and FEFFIT describes it as "the cutoff between the portion of the Fourier transformed spectrum dominated by the background function and the portion containing information about the local structure". This would seem to imply that after removal of the background spline, the signal will have NO frequencies below rbkg -- that is, in the R domain, it would be 0 (or close to 0) for R < Rbkg. But this is not quite what I see; varying Rbkg has a large effect throughout the plot of chir_mag versus R. In particular I observe sometimes that with Rbkg = 1.3 (say) I get a very different R-plot than with either Rbkg = .9 or 1.5 -- not just at low R but throughout. And yet the Rbkg = .9 and 1.5 R-plots look similar to one another, much more than to R-plot for the intermediate value of R. Moreover changing Rbkg shifts the peaks in the R-plot noticeably. What does the algorithm actually do with this parameter? It would be nice to understand that without having to decipher the code. Forgive me if this information is given somewhere, but I couldn't find it. Note: I'm working with compounds for which I don't yet have a good theoretical model, so I don't know how to choose between Rbkg values based on the position of the peaks. Thanks Silvio Levy
On Monday 11 July 2005 17:28, Silvio Levy wrote:
Hi, I'm a new reader of the list. Thanks for all this very useful software and impressive documentation.
Thanks for the kind words.
I'm having trouble understanding the role of rbkg in spline (or autobk). Ravel's Exafs Analysis with FEFF and FEFFIT describes it as "the cutoff between the portion of the Fourier transformed spectrum dominated by the background function and the portion containing information about the local structure".
This would seem to imply that after removal of the background spline, the signal will have NO frequencies below rbkg -- that is, in the R domain, it would be 0 (or close to 0) for R < Rbkg.
That would be true if an infinite Fourier transform were possible. Alas, our FT is finite (no negative values of k and positive values only go out to 12 or so). Since the FT is finite, the Fourier components leak to the left and to the right. In practice, this means that our signal has non-zero spectral weight below Rbkg and our background has non-zero spectral weight above that value. Thus, in practice, the background spline and the parameters we eventually use to fit the data are correlated. Although there are many things in that document that I would state differently today, the language I used to describe Rbkg is valid. Rbkg *is* the frequency we choose as that cutoff, but the cutoff is never as clear as you anticipated. All the details of the Autobk algorithm are in Physical Review B47:21 (1993) p. 14126. See page 30 in this PDF file http://cars9.uchicago.edu/xafs/NSLS_2003/Kelly.pdf for a nice graphical demonstration of what Rbkg means. (The rest of that document is pretty useful, as well.) HTH, B -- Bruce Ravel ----------------------------------- bravel@anl.gov -or- ravel@phys.washington.edu *** My cell phone number has changed. Please ask if you need the new number Environmental Research Division, Building 203, Room E-165 Argonne National Laboratory phone and voice mail: (1) 630 252 5033 Argonne IL 60439, USA fax: (1) 630 252 9793 My homepage: http://feff.phys.washington.edu/~ravel EXAFS software: http://feff.phys.washington.edu/~ravel/software/exafs/
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
participants (3)
-
Bruce Ravel
-
Matt Newville
-
Silvio Levy