Hello, I would like to use parseval's theorem (as described in a document called: Error Reporting Recommendations: A Report of the Standards and Criteria Committee, Adopted by the IXS Standards and Criteria Committee July 26, 2000 ) to quantify the statistical noise in my spectra. In section 3 (as shown in the attachment), it says that for the formula to work, the forward FT has to be normalized by sqrt(deltak/Pi). (delta k is the spacing of points in k space) What is the normalization used for FFT in athena? if it is not sqrt(deltak/Pi), what is it? how does the parseval theorem formula need to be modified as a function of FT normalization? Many thanks for answers! Regina
Regina,
On Fri, Feb 4, 2011 at 10:02 AM,
Hello,
I would like to use parseval's theorem (as described in a document called: Error Reporting Recommendations: A Report of the Standards and Criteria Committee, Adopted by the IXS Standards and Criteria Committee July 26, 2000 ) to quantify the statistical noise in my spectra.
In section 3 (as shown in the attachment), it says that for the formula to work, the forward FT has to be normalized by sqrt(deltak/Pi). (delta k is the spacing of points in k space)
What is the normalization used for FFT in athena? if it is not sqrt(deltak/Pi), what is it? how does the parseval theorem formula need to be modified as a function of FT normalization?
Many thanks for answers!
Regina
It's even easier than that. Ifeffit / Artemis do (and Athena can) report the epsilon_k and epsilon_r as defined in that report. The 2000 report actually codified work done with the earlier feffit code to estimate the noise in the data in both k and R space. Again, Artemis does this automatically, and you can see the values for epsilon_k and epsilon_r when looking at fit results. Athena doesn't directly do this calculation, but if you open the Ifeffit Buffer (Edit -> Display Ifeffit Buffer), you can do the following: 1. choose FFT parameters in the Forward Fourier transform part of the main Athena window. 2. Hit the [R] Plot button for the group of data you're looking at to make sure the FFT parameters are up to date. 3. Open up the Ifeffit Buffer and look for the "Group Name" (Athena uses a 4 letter sequence which looks random). You'll see something like newplot(jukc.k, "(1*jukc.chi*jukc.k^2)+0.0000", ....) All you're looking for is the 4-letter "Group Name" / prefix for the data set: in this case "jukc" 4. In the Ifeffit> input line at the bottom of the buffer, type chi_noise(jukc.chi) 5. Then type show epsilon_k, epsilon_r This will show the values estimated for the noise in chi(k) and chi(R) using the FFT parameters you input. For most data and FFT parameters, epsilon_k should not change significantly, though epsilon_r will change significantly with the k-weight. Cheers, --Matt
Dear Matt and dear other readers,
I tested the method Matt suggested to make Athena put out the epsilon_k
value for my data.
As of itself, the methods works (I get a value), but this value is similar
but not exactly the same value as I obtain from calculating by myself
according to parseval's theorem.
Which makes me think that the small discrepancy might be due to the fact
that Athena considers a different R-range from what I used (all other
parameters being the same)?
I used R 15 to 30 Å. Does someone know what R-range Athena uses?
Also, just to be sure: so the normalization used for FFT by Athena is
sqrt(delta_k / Pi)?
thank you for your kind help,
regina
On Fri, Feb 4, 2011 at 8:34 PM, Matt Newville
Regina,
On Fri, Feb 4, 2011 at 10:02 AM,
wrote: Hello,
I would like to use parseval's theorem (as described in a document called: Error Reporting Recommendations: A Report of the Standards and Criteria Committee, Adopted by the IXS Standards and Criteria Committee July 26, 2000 ) to quantify the statistical noise in my spectra.
In section 3 (as shown in the attachment), it says that for the formula to work, the forward FT has to be normalized by sqrt(deltak/Pi). (delta k is the spacing of points in k space)
What is the normalization used for FFT in athena? if it is not sqrt(deltak/Pi), what is it? how does the parseval theorem formula need to be modified as a function of FT normalization?
Many thanks for answers!
Regina
It's even easier than that. Ifeffit / Artemis do (and Athena can) report the epsilon_k and epsilon_r as defined in that report. The 2000 report actually codified work done with the earlier feffit code to estimate the noise in the data in both k and R space. Again, Artemis does this automatically, and you can see the values for epsilon_k and epsilon_r when looking at fit results. Athena doesn't directly do this calculation, but if you open the Ifeffit Buffer (Edit -> Display Ifeffit Buffer), you can do the following:
1. choose FFT parameters in the Forward Fourier transform part of the main Athena window.
2. Hit the [R] Plot button for the group of data you're looking at to make sure the FFT parameters are up to date.
3. Open up the Ifeffit Buffer and look for the "Group Name" (Athena uses a 4 letter sequence which looks random). You'll see something like newplot(jukc.k, "(1*jukc.chi*jukc.k^2)+0.0000", ....)
All you're looking for is the 4-letter "Group Name" / prefix for the data set: in this case "jukc"
4. In the Ifeffit> input line at the bottom of the buffer, type chi_noise(jukc.chi) 5. Then type show epsilon_k, epsilon_r
This will show the values estimated for the noise in chi(k) and chi(R) using the FFT parameters you input. For most data and FFT parameters, epsilon_k should not change significantly, though epsilon_r will change significantly with the k-weight.
Cheers,
--Matt _______________________________________________ Ifeffit mailing list Ifeffit@millenia.cars.aps.anl.gov http://millenia.cars.aps.anl.gov/mailman/listinfo/ifeffit
Hi Regina,
It uses R = [15, 25] Ang by default, though these can be changed with
the "rwgt1" and "rwgt2" parameters to the chi_noise() command.
The normalization definitions can be confusing for discrete transforms
and also given that for the XAFS sin(2kR) one could either choose
conjugate variable pairs of 2k and R or k and 2R (ifeffit uses the
latter). See http://cars9.uchicago.edu/~ifeffit/refman/node141.html
for more details.
Using the chi_noise() command, you will typically see small influences
on the exact value of the estimated uncertainty in chi(k) as you
change the FT k-ranges and especially k-weight. Typically (or at
least, when I look) the order of magnitude (and even the first
significant digit) is generallly preserved. To be honest, reading
further than 1 significant digit of an automated estimation of noise
based on an assumption of white noise may not be very robust.
Hope that helps,
--Matt
On Thu, Feb 17, 2011 at 8:23 AM,
Dear Matt and dear other readers,
I tested the method Matt suggested to make Athena put out the epsilon_k value for my data. As of itself, the methods works (I get a value), but this value is similar but not exactly the same value as I obtain from calculating by myself according to parseval's theorem. Which makes me think that the small discrepancy might be due to the fact that Athena considers a different R-range from what I used (all other parameters being the same)? I used R 15 to 30 Å. Does someone know what R-range Athena uses? Also, just to be sure: so the normalization used for FFT by Athena is sqrt(delta_k / Pi)?
thank you for your kind help,
regina
On Fri, Feb 4, 2011 at 8:34 PM, Matt Newville
wrote: Regina,
On Fri, Feb 4, 2011 at 10:02 AM,
wrote: Hello,
I would like to use parseval's theorem (as described in a document called: Error Reporting Recommendations: A Report of the Standards and Criteria Committee, Adopted by the IXS Standards and Criteria Committee July 26, 2000 ) to quantify the statistical noise in my spectra.
In section 3 (as shown in the attachment), it says that for the formula to work, the forward FT has to be normalized by sqrt(deltak/Pi). (delta k is the spacing of points in k space)
What is the normalization used for FFT in athena? if it is not sqrt(deltak/Pi), what is it? how does the parseval theorem formula need to be modified as a function of FT normalization?
Many thanks for answers!
Regina
It's even easier than that. Ifeffit / Artemis do (and Athena can) report the epsilon_k and epsilon_r as defined in that report. The 2000 report actually codified work done with the earlier feffit code to estimate the noise in the data in both k and R space. Again, Artemis does this automatically, and you can see the values for epsilon_k and epsilon_r when looking at fit results. Athena doesn't directly do this calculation, but if you open the Ifeffit Buffer (Edit -> Display Ifeffit Buffer), you can do the following:
1. choose FFT parameters in the Forward Fourier transform part of the main Athena window.
2. Hit the [R] Plot button for the group of data you're looking at to make sure the FFT parameters are up to date.
3. Open up the Ifeffit Buffer and look for the "Group Name" (Athena uses a 4 letter sequence which looks random). You'll see something like newplot(jukc.k, "(1*jukc.chi*jukc.k^2)+0.0000", ....)
All you're looking for is the 4-letter "Group Name" / prefix for the data set: in this case "jukc"
4. In the Ifeffit> input line at the bottom of the buffer, type chi_noise(jukc.chi) 5. Then type show epsilon_k, epsilon_r
This will show the values estimated for the noise in chi(k) and chi(R) using the FFT parameters you input. For most data and FFT parameters, epsilon_k should not change significantly, though epsilon_r will change significantly with the k-weight.
Cheers,
--Matt _______________________________________________ Ifeffit mailing list Ifeffit@millenia.cars.aps.anl.gov http://millenia.cars.aps.anl.gov/mailman/listinfo/ifeffit
_______________________________________________ Ifeffit mailing list Ifeffit@millenia.cars.aps.anl.gov http://millenia.cars.aps.anl.gov/mailman/listinfo/ifeffit
participants (2)
-
kirshstein@googlemail.com
-
Matt Newville