[Ifeffit] more fun with FFTs

Grant Bunker bunker at biocat1.phys.iit.edu
Wed Jun 9 23:51:12 CDT 2004


....to clarify my earlier remarks...

The experimental chi is the amplitude times the sine of the phase, and is
of course a real number. However, if you determine the amplitude and
phase, you do it by separating the real chi into two complex
functions
Amplitude*Sin(phase) = (Amplitude*(Exp(I phase) - Exp(- I phase))/(2 I)
which have most of their spectral power at distinct locations in
the r-space transform. This is done by k->r transform,  zeroing one of
terms, multiplying by 2I, and backtransforming r->k. The amplitude
and phase are easily determined from the real and imaginary parts of the
complex result.

When using Fourier methods it is most useful to look at chi as the
imaginary part of this "complex chi"= Amplitude Exp(I phase), and that was
what I meant. It's just like saying the "scattering amplitude" F(k) and
phase are two components of the complex scattering ampltude:
scattering amplitude  = |scattering amplitude| * Exp(I scattering phase).
This mathematics is implicit in all of scattering theory and XAFS in
particular.

Regarding window effects, I think the most useful way to think about
them is to realize the Fourier transform of windowed weighted chi is the
convolution of the fourier transforms of the k-window and the unwindowed
weighted chi (convolution theorem). What the window does is give an
r-space transform that is the convolution of a scraggly function (~ sin(x)/x
for a sharp k-space cutoff) with the nice peak you (probably) would have had
if you had an infinite range of chi. The width of the r-space peaks and the
structure of the side lobes is principally due to the fourier transform of
the k-space window. If the k-window doesn't have sharp corners (like a box
does) its  fourier transform will be smoother and there will be less
truncation ripple in r-space. That's why tapered windows are helpful.

One is free to use arrays of other lengths, or to eschew zero padding
altogether, but I don't think the transforms would be very useful at a
quarter angstrom sampling, certainly not in the sense they normally are.

thanks - grant


On Wed, 9 Jun 2004 ifeffit-request at millenia.cars.aps.anl.gov wrote:

> Send Ifeffit mailing list submissions to
> 	ifeffit at millenia.cars.aps.anl.gov
>
> To subscribe or unsubscribe via the World Wide Web, visit
> 	http://millenia.cars.aps.anl.gov/mailman/listinfo/ifeffit
> or, via email, send a message with subject or body 'help' to
> 	ifeffit-request at millenia.cars.aps.anl.gov
>
> You can reach the person managing the list at
> 	ifeffit-owner at millenia.cars.aps.anl.gov
>
> When replying, please edit your Subject line so it is more specific
> than "Re: Contents of Ifeffit digest..."
>
>
> Today's Topics:
>
>    1. Re: E0 correction in EXAFS fitting (Matt Newville)
>    2. more fun with FFT's (Grant Bunker)
>    3. Re: more fun with FFT's (Scott Calvin)
>
>
> ----------------------------------------------------------------------
>
> Message: 1
> Date: Wed, 9 Jun 2004 13:19:22 -0500 (CDT)
> From: Matt Newville <newville at cars.uchicago.edu>
> Subject: Re: [Ifeffit] E0 correction in EXAFS fitting
> To: XAFS Analysis using Ifeffit <ifeffit at millenia.cars.aps.anl.gov>
> Message-ID:
> 	<Pine.LNX.4.44.0406082306500.28025-100000 at millenia.cars.aps.anl.gov>
> Content-Type: TEXT/PLAIN; charset=US-ASCII
>
> Dear Wojciech,
>
> It seems like this question has been asked many times, possibly in
> slightly different form.
>
> Feff's choice of E0 can be off by several eV. Also, Feff is not
> good at distinguishing formal oxidation state.  So believing
> Feff's E0 may not be the best idea.  In my experience, Feff tends
> to pick an E0 that is relatively far up the main absorption edge,
> generally several eV above the maximum of the first derivative.
> That's consistent with the traditional lore that says the max of
> the first derivative is the Fermi level, not E0 (lowest unoccupied
> orbital).
>
> If athena/autobk pick E0 to be on a sharp pre-edge peak, you
> probably want to move it.  But the best placement for E0 is not
> easy to make when there is a large pre-edge peak.
>
> One camp says that since there is absorption, then it's at E_0,
> and the pre-edge peak is really the absorption edge, followed by a
> large negative EXAFS 'black line' oscillation that nearly sends
> mu(E) to zero. The other camp invokes localized states (either
> excitons or empty molecular orbitals) to say the pre-edge peaks
> are really quasi-bound transitions, but below the real continuum.
> I'll try to avoid that debate.
>
> I couldn't tell whether there was a large pre-edge peak followed
> by the main absorption edge or a very large white line. If I
> understand, it sounds like Feff is trying to put E0 at the
> pre-edge peak... is that correct?
>
> I'm sure that leaves unanswered questions, but I hope it helps
> show the general level of confusion about E0.
>
> --Matt
>
> On Tue, 8 Jun 2004, it was written:
>
> > Dear Bruce and other mailing list users,
> >
> > I have a very basic question concerning the choice of E0 in EXAFS data
> > analysis. Recently I have been working on Ru solvated complex. I don?t
> > go into too many details but I can say it?s a pretty large molecule in
> > aqueous solution with 3 ligands containing 6 N atoms and 30 C atoms in
> > D3 symmetry. Now, we have measured the L3 edge XANES and EXAFS of this
> > molecule and I have recently tried to analyze it. Now, what bothers me a
> > lot is the following observation: once I start processing the data
> > (meaning background removal, pre-edge subtraction etc.) AUTOBK in both
> > Ifeffit and Athena ?proposes? to place the edge energy E0 at the
> > inflection point of the spectrum which lies at about 2838-2839 eV (which
> > corresponds to atomic Ru L3 edge absorption energy). You might say it?s
> > ok but I cannot accept this value. The inflection point lies on a huge
> > pre-edge peak which is the 4d bound-to-bound transition (white line)
> > which in principle I don?t want to include in my chi(k) because it?s
> > still below the ionization energy as I understand it. I guess the
> > continuum states should start higher in energy and actually from other
> > spectroscopies one would suspect the E0 to be around 2847 eV (so about
> > 7-8 eV higher in energy space). Now I set my E0 to this value and I
> > started fitting the spectrum with FEFF calculation performed on
> > crystalline structure of the same complex. What I end up with is always
> > E0 correction for the first shell of neighbors (meaning N atoms) between
> > -6 to -7.5 eV. I check in chi.dat and xmu.dat files that in my FEFF
> > calculation the k=0 value was assigned to approx. 2839 eV so it?s the
> > same atomic value again. However I know it shouldn?t be like that (apart
> > from a simple fact that Ru in my compound is in its 2+ oxidation state
> > which surely moves the E0 toward higher energies, doesn?t it?).  So, I
> > tried to fool FEFF and make some tricks like shift my data in energy
> > space or fit the white line and subtract it form the data but it always
> > consistently converges to place the E0 value at the first inflection
> > point meaning between 2839-2842 eV. I thought that when fitting the
> > experimental data with FEFF scattering paths one can choose E0 and then
> > refine its value by shifting the FEFF-calculated E0 by the amount which
> > comes out of the fit. So if I have some value of E0 coming out of my fit
> > then I just shift the initial k=0 value as estimated by FEFF using k? ->
> > sqrt( k-E0(2m/h_bar^2) ) (in other words the negative E0 correction
> > would always shift the origin in k-space towards larger k values which
> > means lower values in energy space). Ok, so now my question is the
> > following: is there an explicit way to set E0 value before letting FEFF
> > to do its job or it will always use the tabulated atomic value? So, if I
> > don?t know my E0 a priori how can I refine it for a complex or molecule
> > which has different oxidation state than 0? I mean it?s a serious
> > question in my opinion and I wish I could get some feedback from people
> > who have been doing it for so many years.
> > I hope I made my point clear enough to you. Let me know if you need any
> > more feedback in order to answer my question. I?ll be glad to give more
> > details.
> > Best regards,
> >
> > Wojciech
> >
> > *********************************************************************
> > Wojciech Gawelda
> >
> > Laboratoire de Spectroscopie Ultrarapide (LSU)
> > Institut des Sciences et Ing?nierie Chimiques (ISIC),
> > Facult? des Sciences de Base (SB-BSP)
> > Ecole Polytechnique F?d?rale de Lausanne (EPFL)
> >
> > CH-1015 Lausanne-Dorigny, Switzerland
> > Tel.:  +41 (21) 693 0452
> > Fax.: +41 (21) 693 0422
> > E-mail:  <mailto:wojciech.gawelda at epfl.ch> wojciech.gawelda at epfl.ch
> > WWW:  <http://lsu.epfl.ch> http://lsu.epfl.ch
> > *********************************************************************
> >
> > -------------- next part --------------
> > An HTML attachment was scrubbed...
> > URL: http://millenia.cars.aps.anl.gov/pipermail/ifeffit/attachments/20040608/4e07fdf3/attachment.htm
> >
>
>
>
>
>
>
> ------------------------------
>
> Message: 2
> Date: Wed, 9 Jun 2004 14:26:42 -0500 (CDT)
> From: Grant Bunker <bunker at biocat1.phys.iit.edu>
> Subject: [Ifeffit] more fun with FFT's
> To: ifeffit at millenia.cars.aps.anl.gov
> Message-ID:
> 	<Pine.LNX.4.44.0406091359250.7574-100000 at biocat1.phys.iit.edu>
> Content-Type: TEXT/PLAIN; charset=iso-8859-1
>
> This is in response to Scott's remarks about zero padding and windows.
> The basic point is that you *always* have fourier truncation effects if
> you are using a finite k range. If you Fourier transform a pure sine wave
> over a finite range you will get side lobes that go like |sin(x)/x|. This
> is true whether you zero pad or not. You won't be able to resolve the side
> lobe structure if you don't zero-pad however. All you will see is a single
> point. A useful way to think about it is to view the discrete FFT as a sampled
> version of the continuous transform (side lobes and all) where the r-space
> sampling is controlled by size N of the zero padded array (and dk).
> Hhe zero padding doesn't change the window distortions, it just allows you
> to see them better.
>
> You can of course mitigate the side lobes by applying a k-window to taper
> the amplitude down to zero at the cutoff, but at the expense of broadening the
> central part of the peaks.
>
> There also is a common myth that if you choose the cutoff to be where
> chi is zero anyway, that you don't get fourier truncation effects. This is
> not true. Even if chi (Amplitude*sin(phase))  is zero at a particular k
> value the amplitude may not be. Imagine a thought experiment in which
> you shift the phase of chi by a Pi/2, so a node becomes an antinode.
> Mathematically this is the same as multiplying the complex chi
> A exp(i phi) by exp(i Pi/2).  Since the fourier transform is linear, the
> filtered (transformed, r-windowed, and inverse transformed) data are just
> shifted in phase by Pi/2. The fourier filtering distortions are precisely
> the same when you cut at a node or an antinode.
>
> I'll try to dig up some simulations I did many moons ago and post
> them.
>
> grant
>
>
> On Tue, 8 Jun 2004 ifeffit-request at millenia.cars.aps.anl.gov wrote:
>
> > Send Ifeffit mailing list submissions to
> > 	ifeffit at millenia.cars.aps.anl.gov
> >
> > To subscribe or unsubscribe via the World Wide Web, visit
> > 	http://millenia.cars.aps.anl.gov/mailman/listinfo/ifeffit
> > or, via email, send a message with subject or body 'help' to
> > 	ifeffit-request at millenia.cars.aps.anl.gov
> >
> > You can reach the person managing the list at
> > 	ifeffit-owner at millenia.cars.aps.anl.gov
> >
> > When replying, please edit your Subject line so it is more specific
> > than "Re: Contents of Ifeffit digest..."
> >
> >
> > Today's Topics:
> >
> >    1. more fun with FFTs (Grant Bunker)
> >    2. E0 correction in EXAFS fitting (Wojciech Gawelda)
> >    3. Re: more fun with FFTs (Scott Calvin)
> >    4. beginning with ARTEMIS (doug pease)
> >
> >
> > ----------------------------------------------------------------------
> >
> > Message: 1
> > Date: Tue, 8 Jun 2004 12:34:58 -0500 (CDT)
> > From: Grant Bunker <bunker at biocat1.phys.iit.edu>
> > Subject: [Ifeffit] more fun with FFTs
> > To: ifeffit at millenia.cars.aps.anl.gov
> > Message-ID:
> > 	<Pine.LNX.4.44.0406081222050.25188-100000 at biocat1.phys.iit.edu>
> > Content-Type: TEXT/PLAIN; charset=US-ASCII
> >
> > Just to amplify Matt's remarks - the purpose of padding with zeros is to
> > deliver a finer grid in r-space.  There is a relationship between the
> > r-space grid dr, the k-space grid dk, and the number of points in the
> > array (N):   N dk dR = Pi.  So, for a k-space grid of .05/A and 2048
> > points, you get an r-grid spacing of .0307 A. This gives pretty good
> > sampling of the fourier transform.  If you only use say 256 points in your
> > array (i.e. you don't pad with zeroes) the r-space sampling is .245 A,
> > which is too coarse to be useful.
> >
> > You might ask whether zero padding botches up the data. It can be shown
> > (I worked it out once) that zero padding is exactly equivalent to
> > an interpolation of the unpadded data witha specific interpolation kernel
> > (a sinc function or something as I recall). What happens is that as you
> > pad with more zeros into a longer array, the sampling in r-space increases,
> > and ultimately the curve looks just like what you would get with a continuous
> > fourier transform (with cutoff effects from the finite k-space window).
> >
> > grant
> >
> > On Tue, 8 Jun 2004 ifeffit-request at millenia.cars.aps.anl.gov wrote:
> >
> > > Send Ifeffit mailing list submissions to
> > > 	ifeffit at millenia.cars.aps.anl.gov
> > >
> > > To subscribe or unsubscribe via the World Wide Web, visit
> > > 	http://millenia.cars.aps.anl.gov/mailman/listinfo/ifeffit
> > > or, via email, send a message with subject or body 'help' to
> > > 	ifeffit-request at millenia.cars.aps.anl.gov
> > >
> > > You can reach the person managing the list at
> > > 	ifeffit-owner at millenia.cars.aps.anl.gov
> > >
> > > When replying, please edit your Subject line so it is more specific
> > > than "Re: Contents of Ifeffit digest..."
> > >
> > >
> > > Today's Topics:
> > >
> > >    1. Re: FFT in Ifeffit (Matt Newville)
> > >
> > >
> > > ----------------------------------------------------------------------
> > >
> > > Message: 1
> > > Date: Mon, 7 Jun 2004 22:55:28 -0500 (CDT)
> > > From: Matt Newville <newville at cars.uchicago.edu>
> > > Subject: Re: [Ifeffit] FFT in Ifeffit
> > > To: XAFS Analysis using Ifeffit <ifeffit at millenia.cars.aps.anl.gov>
> > > Message-ID: <Pine.LNX.4.44.0406072214290.13810-100000 at corvette>
> > > Content-Type: TEXT/PLAIN; charset=US-ASCII
> > >
> > > Hi Scott,
> > >
> > > All Fourier transforms in Ifeffit use arrays of length 2048,
> > > padding with zeros as needed.
> > >
> > > In earlier versions of Feffit, doing repeated FTs in the fitting
> > > loop was noticeably slow.  This is probably one of the reasons
> > > fitting in R-space was uncommon.  Anyway, using arrays of length
> > > N_fft = 1024, 512, or 256 definitely helped speed things up.
> > >
> > > In principle, one could use N_fft ~= N_idp, but it turns out that
> > > if you use too few FT points, you can easily get into a real
> > > 'false, local, minima'. So Feffit used 1024,512,or 256 for fits,
> > > and then go back to 2048 to write out the data. Strictly speaking,
> > > the FFT doesn't need to use an array size that is a power of 2,
> > > but it turns out to make a very noticeable difference with the FFT
> > > routines used.
> > >
> > > With Ifeffit, several "anti-optimizations"  were made that make
> > > the fits slightly slower but be more straightforward and simple
> > > (relatively speaking, anyway!).  The use of double precision and
> > > N_fft=2048 being the main examples.  Part of the reason for
> > > sticking with 2048 is that you want to be able to view the data at
> > > any point in the process so 'pretty output' is always needed.
> > > Also, I doubt many people will be trying to run artemis on a 386
> > > or a microVAX.
> > >
> > > --Matt
> > >
> > > > As I was working on my talk for the EXAFS workshop, I came across a
> > > > rather technical question: how does Ifeffit choose the number of
> > > > points for the Fourier transforms? As I recall, FEFFIT used an
> > > > algorithm which required an integer power of 2, so its default
> > > > behavior was to use the smallest integer power of 2 greater than the
> > > > number of points in the chi(k) data, and then pad the rest with 0's.
> > > > This default behavior could also be over-ridden if desired.
> > > >
> > > > It doesn't look to me like Ifeffit is handling that in the same
> > > > way--is it always using a very large number of points and padding
> > > > with 0's, or is it using an algorithm that doesn't require the
> > > > integer power of 2, or is it interpolating the chi(k) on to a grid of
> > > > the appropriate size first, or...?
> > > >
> > > > I appreciate any info you can give me on this.
> > > >
> > > > --Scott Calvin
> > > > Sarah Lawrence College
> > > > _______________________________________________
> > > > Ifeffit mailing list
> > > > Ifeffit at millenia.cars.aps.anl.gov
> > > > http://millenia.cars.aps.anl.gov/mailman/listinfo/ifeffit
> > > >
> > >
> > >
> > >
> > > ------------------------------
> > >
> > > _______________________________________________
> > > Ifeffit mailing list
> > > Ifeffit at millenia.cars.aps.anl.gov
> > > http://millenia.cars.aps.anl.gov/mailman/listinfo/ifeffit
> > >
> > >
> > > End of Ifeffit Digest, Vol 16, Issue 7
> > > **************************************
> > >
> >
> >
> >
> > ------------------------------
> >
> > Message: 2
> > Date: Tue, 8 Jun 2004 20:04:25 +0200
> > From: "Wojciech Gawelda" <wojciech.gawelda at epfl.ch>
> > Subject: [Ifeffit] E0 correction in EXAFS fitting
> > To: <ravel at phys.washington.edu>
> > Cc: ifeffit at millenia.cars.aps.anl.gov
> > Message-ID:
> > 	<!~!UENERkVCMDkAAQACAAAAAAAAAAAAAAAAABgAAAAAAAAA+oqSCNd0OEmvPV/OsrrrucKAAAAQAAAAqvlml9Ymw0KfPXsmOeouUQEAAAAA at epfl.ch>
> >
> > Content-Type: text/plain; charset="iso-8859-1"
> >
> > Dear Bruce and other mailing list users,
> >
> > I have a very basic question concerning the choice of E0 in EXAFS data
> > analysis. Recently I have been working on Ru solvated complex. I don’t
> > go into too many details but I can say it’s a pretty large molecule in
> > aqueous solution with 3 ligands containing 6 N atoms and 30 C atoms in
> > D3 symmetry. Now, we have measured the L3 edge XANES and EXAFS of this
> > molecule and I have recently tried to analyze it. Now, what bothers me a
> > lot is the following observation: once I start processing the data
> > (meaning background removal, pre-edge subtraction etc.) AUTOBK in both
> > Ifeffit and Athena “proposes” to place the edge energy E0 at the
> > inflection point of the spectrum which lies at about 2838-2839 eV (which
> > corresponds to atomic Ru L3 edge absorption energy). You might say it’s
> > ok but I cannot accept this value. The inflection point lies on a huge
> > pre-edge peak which is the 4d bound-to-bound transition (white line)
> > which in principle I don’t want to include in my chi(k) because it’s
> > still below the ionization energy as I understand it. I guess the
> > continuum states should start higher in energy and actually from other
> > spectroscopies one would suspect the E0 to be around 2847 eV (so about
> > 7-8 eV higher in energy space). Now I set my E0 to this value and I
> > started fitting the spectrum with FEFF calculation performed on
> > crystalline structure of the same complex. What I end up with is always
> > E0 correction for the first shell of neighbors (meaning N atoms) between
> > -6 to -7.5 eV. I check in chi.dat and xmu.dat files that in my FEFF
> > calculation the k=0 value was assigned to approx. 2839 eV so it’s the
> > same atomic value again. However I know it shouldn’t be like that (apart
> > from a simple fact that Ru in my compound is in its 2+ oxidation state
> > which surely moves the E0 toward higher energies, doesn’t it?).  So, I
> > tried to fool FEFF and make some tricks like shift my data in energy
> > space or fit the white line and subtract it form the data but it always
> > consistently converges to place the E0 value at the first inflection
> > point meaning between 2839-2842 eV. I thought that when fitting the
> > experimental data with FEFF scattering paths one can choose E0 and then
> > refine its value by shifting the FEFF-calculated E0 by the amount which
> > comes out of the fit. So if I have some value of E0 coming out of my fit
> > then I just shift the initial k=0 value as estimated by FEFF using k’ ->
> > sqrt( k-E0(2m/h_bar^2) ) (in other words the negative E0 correction
> > would always shift the origin in k-space towards larger k values which
> > means lower values in energy space). Ok, so now my question is the
> > following: is there an explicit way to set E0 value before letting FEFF
> > to do its job or it will always use the tabulated atomic value? So, if I
> > don’t know my E0 a priori how can I refine it for a complex or molecule
> > which has different oxidation state than 0? I mean it’s a serious
> > question in my opinion and I wish I could get some feedback from people
> > who have been doing it for so many years.
> > I hope I made my point clear enough to you. Let me know if you need any
> > more feedback in order to answer my question. I’ll be glad to give more
> > details.
> > Best regards,
> >
> > Wojciech
> >
> > *********************************************************************
> > Wojciech Gawelda
> >
> > Laboratoire de Spectroscopie Ultrarapide (LSU)
> > Institut des Sciences et Ingénierie Chimiques (ISIC),
> > Faculté des Sciences de Base (SB-BSP)
> > Ecole Polytechnique Fédérale de Lausanne (EPFL)
> >
> > CH-1015 Lausanne-Dorigny, Switzerland
> > Tel.:  +41 (21) 693 0452
> > Fax.: +41 (21) 693 0422
> > E-mail:  <mailto:wojciech.gawelda at epfl.ch> wojciech.gawelda at epfl.ch
> > WWW:  <http://lsu.epfl.ch> http://lsu.epfl.ch
> > *********************************************************************
> >
> > -------------- next part --------------
> > An HTML attachment was scrubbed...
> > URL: http://millenia.cars.aps.anl.gov/pipermail/ifeffit/attachments/20040608/4e07fdf3/attachment-0001.htm
> >
> > ------------------------------
> >
> > Message: 3
> > Date: Tue, 08 Jun 2004 14:04:41 -0400
> > From: Scott Calvin <scalvin at slc.edu>
> > Subject: Re: [Ifeffit] more fun with FFTs
> > To: XAFS Analysis using Ifeffit <ifeffit at millenia.cars.aps.anl.gov>
> > Message-ID: <3.0.1.32.20040608140441.00b92630 at mail.slc.edu>
> > Content-Type: text/plain; charset="us-ascii"
> >
> > First of all, thanks to Matt for the info--this seems to me to be a very
> > sensible way for Ifeffit to handle the issue.
> >
> > In terms of Grant's comments, the interesting part to me (and I admit I am
> > getting esoteric here) is that zero-padding has the potential to change the
> > cutoff effects in some circumstances. If you're using a window that goes to
> > zero anyway, then I think it has exactly the effect that Grant describes.
> > But not all windows do this. As a particularly simple example, consider a
> > perfect cosine function over an integer number of periods, with no window.
> > Even though the transform is applied to a finite interval, the result is a
> > spike to within the resolution discussed in Grant's post. (As I recall, the
> > finite sampling also causes the transform to be periodic, but the period is
> > large enough to be disregarded in EXAFS analysis.) But now consider the
> > identical function over the identical interval with zero-padding. This
> > introduces a sharp discontinuity, and causes lots of sidebands on the
> > Fourier transform.
> >
> > Of course, I chose a very special case. Windows reduce this effect
> > considerably, so I would certainly agree that zero-padding does not "botch
> > up" the data. But I wonder if some reduction in sidebands could be achieved
> > by, for example, using a window that goes to the average of the values of
> > the function at the two ends of the interval rather than to 0 (and
> > adjusting the windowing function accordingly). It's on my list of things to
> > try when I get the chance...I don't expect it will make a dramatic
> > difference, but it might make an incremental one.
> >
> > --Scott Calvin
> > Sarah Lawrence College
> >
> > At 12:34 PM 6/8/2004 -0500, Grant wrote:
> > >You might ask whether zero padding botches up the data. It can be shown
> > >(I worked it out once) that zero padding is exactly equivalent to
> > >an interpolation of the unpadded data witha specific interpolation kernel
> > >(a sinc function or something as I recall). What happens is that as you
> > >pad with more zeros into a longer array, the sampling in r-space increases,
> > >and ultimately the curve looks just like what you would get with a continuous
> > >fourier transform (with cutoff effects from the finite k-space window).
> > >
> >
> >
> >
> >
> > ------------------------------
> >
> > Message: 4
> > Date: Tue, 8 Jun 2004 23:44:46 -0400
> > From: "doug pease" <dougpease at comcast.net>
> > Subject: [Ifeffit] beginning with ARTEMIS
> > To: <ifeffit at millenia.cars.aps.anl.gov>
> > Message-ID: <001201c44dd4$1c620d50$6501a8c0 at DougsComputer>
> > Content-Type: text/plain; charset="iso-8859-1"
> >
> > Hello All,
> >
> > Just starting ARTEMIS for first time.  Seems o.k. until I come to the place where I am to run ATOMS in ARTEMIS.  The ATOMS view in ARTEMIS takes up the whole monitor screen and the button for running ATOMS is out of site. I cannot drag the view high enough to reveal the ATOMS run button.  Any suggestions?
> >
> > Sincerely,
> >
> > Doug Pease
> > -------------- next part --------------
> > An HTML attachment was scrubbed...
> > URL: http://millenia.cars.aps.anl.gov/pipermail/ifeffit/attachments/20040608/c5493594/attachment.htm
> >
> > ------------------------------
> >
> > _______________________________________________
> > Ifeffit mailing list
> > Ifeffit at millenia.cars.aps.anl.gov
> > http://millenia.cars.aps.anl.gov/mailman/listinfo/ifeffit
> >
> >
> > End of Ifeffit Digest, Vol 16, Issue 8
> > **************************************
> >
>
>
>
>
> ------------------------------
>
> Message: 3
> Date: Wed, 09 Jun 2004 18:12:15 -0400
> From: Scott Calvin <scalvin at slc.edu>
> Subject: Re: [Ifeffit] more fun with FFT's
> To: XAFS Analysis using Ifeffit <ifeffit at millenia.cars.aps.anl.gov>
> Message-ID: <3.0.1.32.20040609181215.00bcdbd8 at mail.slc.edu>
> Content-Type: text/plain; charset="us-ascii"
>
> Thanks to Matt and Grant for the comments.
>
> After reading Grant's comments, it appears I have some significant gaps in
> my understanding of some basic EXAFS concepts:
>
> Chi(k) is complex? That's a completely new concept to me. I thought chi(R)
> was complex because a complex Fourier transform was used, and that chi(k)
> was real. After all, the peaks of chi(k) correspond to peaks in the energy
> spectrum...if that is the real part of chi(k), what does the imaginary part
> correspond to?
>
> I still disagree with the assertion that you always have truncation effects
> when using a finite k-range. As I understand the properties of Fourier
> transforms, using a finite range is identical to using an infinite range
> with a periodic function that repeats the pattern seen in the finite range
> over and over. So if it happens that the function at the end of the range
> connects smoothly with the function at the beginning of the range, there
> should be no truncation effects. This can also be looked at another way. In
> terms of the sinc function due to the finite range, the zeroes of the sinc
> function correspond exactly with the points in r-space at which the Fourier
> transform is evaluated, and thus the Foruier transform is only non-zero at
> one point. I have simulations that show this, but if I missed that chi(k)
> was complex, that could mean there is an error in this logic.
>
> As I understand Grant's comments, you can show that the sinc function is
> "really" still there by padding with zeroes, thus improving the resolution
> in r-space, and revealing the side-band structure. I agree that this is
> what will be observed, but if I consider this from the point of view of a
> FT of a finite range being the same as the FT of an infinite function which
> repeats the finite section periodically, then the zero-padding is
> introducing discontinuities which were not previously there. It is, I
> think, a matter of semantics whether one considers the side-bands to be
> "really" there when the FT is not evaluated at values of r where it is
> non-zero. But in either way of looking at it, padding with zeroes
> introduces non-zero values to the discrete FT outside of a region where
> there were only zero values before.
>
> None of this is meant in any way as a criticism of the algorithm used by
> Ifeffit as Matt described it. Windowing and then padding with zeroes makes
> the truncation effects relatively consistent...if there is a downside to
> forcing chi(k) to go to zero at the endpoints, so be it, but this strategy
> means the downside is always present. Alternative strategies which
> encourage picking whole periods of chi(k) for the data range, for example,
> risk being self-fulfilling, so that the period chosen for the data range
> might be emphasized in the Fourier transform at the expense of other
> spectral frequencies.
>
> To sum up, I am now very curious as to whether there is some sense in which
> chi(k) is complex. If that's true, I'll have to rethink a lot of my
> understanding as to how this all fits together.
>
> --Scott Calvin
> Sarah Lawrence College
>
> At 02:26 PM 6/9/2004 -0500, Grant wrote:
> >This is in response to Scott's remarks about zero padding and windows.
> >The basic point is that you *always* have fourier truncation effects if
> >you are using a finite k range. If you Fourier transform a pure sine wave
> >over a finite range you will get side lobes that go like |sin(x)/x|. This
> >is true whether you zero pad or not. You won't be able to resolve the side
> >lobe structure if you don't zero-pad however. All you will see is a single
> >point. A useful way to think about it is to view the discrete FFT as a
> sampled
> >version of the continuous transform (side lobes and all) where the r-space
> >sampling is controlled by size N of the zero padded array (and dk).
> >Hhe zero padding doesn't change the window distortions, it just allows you
> >to see them better.
> >
> >You can of course mitigate the side lobes by applying a k-window to taper
> >the amplitude down to zero at the cutoff, but at the expense of broadening
> the
> >central part of the peaks.
> >
> >There also is a common myth that if you choose the cutoff to be where
> >chi is zero anyway, that you don't get fourier truncation effects. This is
> >not true. Even if chi (Amplitude*sin(phase))  is zero at a particular k
> >value the amplitude may not be. Imagine a thought experiment in which
> >you shift the phase of chi by a Pi/2, so a node becomes an antinode.
> >Mathematically this is the same as multiplying the complex chi
> >A exp(i phi) by exp(i Pi/2).  Since the fourier transform is linear, the
> >filtered (transformed, r-windowed, and inverse transformed) data are just
> >shifted in phase by Pi/2. The fourier filtering distortions are precisely
> >the same when you cut at a node or an antinode.
> >
> >I'll try to dig up some simulations I did many moons ago and post
> >them.
> >>>
>
>
>
> ------------------------------
>
> _______________________________________________
> Ifeffit mailing list
> Ifeffit at millenia.cars.aps.anl.gov
> http://millenia.cars.aps.anl.gov/mailman/listinfo/ifeffit
>
>
> End of Ifeffit Digest, Vol 16, Issue 10
> ***************************************
>





More information about the Ifeffit mailing list