|
-
May 28th, 2010, 04:33 AM
#1
Getting height of peaks from a graph
Hi,
I have a serious question, related to both math and programming (I think).
I am measuring a whole bunch of data from a mass spectrometer (thingy that measures the mass of molecules going through, doesn't matter). The material we're measuring comes through in cycles (described below) and there are generally about 20/30 steps of 10 cycles, separated by a short time of nothing ("pause").
Each cycle consists of two materials flowing through, resulting in two peaks. One peak is very high and always the same height, and the other peak is much smaller and gradually becomes invisible in the noise levels.
Example graph:

You can see 3 sets of 10 cycles with a short pause in between (where it's labeled "Noise"). Each cycle starts with small*, rapidly decreasing peaks, and ends with a high relatively constant peak.
*The first peak is actually higher than the constant peaks but that's only the very first measurement.
Now, what I need is to extract the height of these small, decreasing peaks. I don't care about the high peaks, I only need the small peaks. What I need in the end is a graph showing the height of these peaks against time, so we can quantify the amount and speed at which they decrease.
I can do it manually, I can click in the graph to find out the value of each peak, but I hope you can understand that's not an option when I have dozens of these graphs. I need it to be done automatically.
What can I do to achieve this? I have a few mathematical applications at my disposal but I'm not good enough with them to figure out how this could be done...:
- Origin (graphing application but also allows for advanced stuff like fitting, integrating, differentation, etc)
- Maple (not really useful I think)
- Matlab (not too good in using that)
I was thinking of using a simple VB/C# script that reads the raw data of these graphs and extracts the peaks. I just don't really know how I could implement that. I could loop through the data in a fixed range of steps and store the highest point found, but I can see many problems there... For example, I will be counting noise levels too.
The most difficult problem I think is that these small peaks are actually really small. It's hard to see in the graph because it's in logarithmic scale, but in linear scale they're all 'just about zero', similar to the noise levels...
Does anyone have any advice for me? Thanks!
Posting Permissions
- You may not post new threads
- You may not post replies
- You may not post attachments
- You may not edit your posts
-
Forum Rules
|
Click Here to Expand Forum to Full Width
|