How do I compute the second derivative of a one-dimensional array?

Click For Summary
SUMMARY

The discussion focuses on computing the second derivative of a one-dimensional array, specifically in the context of X-ray data processed by a Digital Pulse Processor (DPP). Participants clarify that to derive meaningful results, one must differentiate twice based on time-stamped position data, calculating velocity and acceleration as intermediate steps. The conversation emphasizes the importance of understanding the relationship between variables, particularly when dealing with non-constant intervals. The use of Excel for these calculations is highlighted, with specific formulas provided for velocity and acceleration.

PREREQUISITES
  • Understanding of basic calculus concepts, including derivatives and their physical interpretations.
  • Familiarity with Excel for data manipulation and formula application.
  • Knowledge of X-ray data processing and the role of Digital Pulse Processors (DPP).
  • Ability to interpret time-series data and calculate differences between data points.
NEXT STEPS
  • Learn how to implement numerical differentiation techniques in Python using libraries like NumPy.
  • Explore the concept of difference equations and their applications in data analysis.
  • Study the principles of X-ray fluorescence and its relevance to data interpretation from DPPs.
  • Investigate advanced Excel functions for handling time-series data and performing complex calculations.
USEFUL FOR

Data analysts, physicists, and engineers working with time-series data, particularly those involved in X-ray analysis and numerical methods for data differentiation.

  • #31
btb4198 said:
Yeah, I am going to remove it. Sorry, I never code a function to take a derivative of a graph before and I could not find any YouTube videos on how to do it by hand.
See my post #27. It is an instruction.
 
Physics news on Phys.org
  • #32
btb4198 said:
So Basically to take the first derivative, I am going to go through the array and subtract index + 1 from index.
So:
double value = spectrumData[i + 1] - spectrumData;
You need to get your units right in your derivative calculations (both for the numerator and denominator). The units for the numerator look to be "counts" right? And for the denominator, you have bins separated by some delta-energy in keV? So the units of the first derivative would be delta-counts per delta keV?
 
  • #33
berkeman said:
So the units of the first derivative would be delta-counts per delta keV?
It looks like the horizontal bins are spaced linearly? What is the increment in delta-keV per bin? It looks like a small fraction of a keV delta per bin?
 
  • #34
berkeman said:
You need to get your units right in your derivative calculations (both for the numerator and denominator). The units for the numerator look to be "counts" right? And for the denominator, you have bins separated by some delta-energy in keV? So the units of the first derivative would be delta-counts per delta keV?
Yes, that is all correct.
 
  • #35
berkeman said:
It looks like the horizontal bins are spaced linearly? What is the increment in delta-keV per bin? It looks like a small fraction of a keV delta per bin?
1655149886661.png


From this picture is looks like the bins increase by one .
 
  • #36
Another question, if I were to place this Spectrum into an FFT would my sampling rate(fs) be 1hz ?
 
  • #37
btb4198 said:
From this picture is looks like the bins increase by one .
One what? One eV? Could be -- please take care to always include units with the numbers. Thank you.
 
  • #38
btb4198 said:
From this picture is looks like the bins increase by one .
I don't think so. The increments along the horizontal axis (eV) increase by 2000 eV. Since you're attempting to find an approximation to the derivative, is your math background sufficient for you to understand what you're trying to do? That is, have you taken calculus sometime in the past?
 
  • Like
Likes   Reactions: berkeman
  • #39
btb4198 said:
Another question, if I were to place this Spectrum into an FFT would my sampling rate(fs) be 1hz ?
No. You already have a plot of counts per fraction-of-an-eV. What domain do you want the FT to transform that into? You can't randomly do FFT processing on data and get meaningful information.
 
  • #40
berkeman said:
You can't randomly do FFT processing on data and get meaningful information.
In short, GIGO...
 
  • Like
Likes   Reactions: berkeman
  • #41
berkeman said:
No. You already have a plot of counts per fraction-of-an-eV. What domain do you want the FT to transform that into? You can't randomly do FFT processing on data and get meaningful information.
In the example excel file, could you put that into an FFT? Or no ?
anyhow, The Output of the DPP is Very noise, so I wanted to filter out the noise.
 
  • #42
btb4198 said:
In the example excel file, could you put that into an FFT? Or no ?
anyhow, The Output of the DPP is Very noise, so I wanted to filter out the noise.
Your thread is now temporarily locked. I will send you a Private Message (PM) in a few minutes to try to salvage it.
 
  • #43
After the PM discussion with the OP, there is no reason to re-open this thread. Thanks everybody for trying to help the OP out.
 

Similar threads

  • · Replies 14 ·
Replies
14
Views
2K
  • · Replies 1 ·
Replies
1
Views
2K
  • · Replies 3 ·
Replies
3
Views
3K
  • · Replies 6 ·
Replies
6
Views
4K
  • · Replies 5 ·
Replies
5
Views
2K
  • · Replies 2 ·
Replies
2
Views
2K
  • · Replies 4 ·
Replies
4
Views
3K
  • · Replies 3 ·
Replies
3
Views
2K
  • · Replies 5 ·
Replies
5
Views
3K
  • · Replies 6 ·
Replies
6
Views
1K