Plotting amplitude of one spectral peak over time

Hi,
    I am trying to create a VI where the DAQ continually aquires, plots and saves a waveform in millisecond timeframe (which is already done in this instance), then takes that waveform, finds a specific peak (most likely the first one), and plots the amplitude of that peak over time (30+ minutes, one point every scan that is obtained). Essentially, I have a very fast detector attached to a Gas Chromatograph, and I want to select a single ion and monitor the amplitude of that ion. I can plot the waveforms over time and do this in post processing, but what I would like to do is have the "slow" plot continuously update and display as it moves through time. Attached is the VI this will go into, using IMS Software V1.3.vi,  the subsection is the "GC Mode" it seems like I should be using the "peak detect.vi.", but I am unfamiliar with how this works, and so I do not know how to show a continuously updating graph or pull the amplitudes out and plot them. Thank you for your help,
<>< Eric
Solved!
Go to Solution.
Attachments:
IMS Software v1.llb ‏612 KB

Eric-WSU wrote:
i get an amplitude over time plot, but it does not appear until after all of the iterations have stopped
I have not looked at your VI (because I am in a previous version of LabVIEW), but this is probably because your graph is outside of the loop.
Here is how you can get a graph of the peaks (all of the peaks, per iteration):
Or if you only wanted a certain peak (and how that peak changes over many iterations):
Message Edited by Cory K on 01-21-2009 05:51 PM
Cory K
Attachments:
simple.PNG ‏3 KB
pick peak.PNG ‏7 KB

Similar Messages

  • How do you update an intensity plot one element at a time?

    I would like to use an intensity plot (or other control) to plot data collected from A/D channels. How do you get the Intensity plot to update one element at a time vs. row by row? Tips and suggestions greatly appreciated!

    > I would like to use an intensity plot (or other control) to plot data
    > collected from A/D channels. How do you get the Intensity plot to
    > update one element at a time vs. row by row? Tips and suggestions
    > greatly appreciated!
    >
    You will need to use the intensity graph and keep the buffer yourself.
    Init the data with background values and start filling then in using
    Replace Array subset. Presumably you are in a loop. Recirculate the
    data in a shift register adding new data each iteration and plotting the
    array to the intensity graph.
    Once you get to the horizontal edge, you need to decide if you split the
    data to get rid of the first row and append a new background row to the
    end making a strip chart, or do you clear the array and start over from
    the initial edge again making a scope chart, or do you mod the index
    with the buffer size and erase a row at a time in advance making a sweep
    chart.
    To update the scales, you don't have to change the data. Just write to
    the Offset property each time you scroll and it will relabel the data
    with 0 mapping to the offset value.
    Greg McKaskle

  • I ended up with 3 Apple IDs over time.  How can I get it down to one account?

    I ended up with 3 Apple IDs over time.  When I sink my iPad, some apps won't sync because the app was purchased under a different account? 
    How can I get it down to one account and be able to sync all of my iTunes purchases (apps, music, etc.) on my iPad and iPhone?
    This is driving me crazy!  grrrr.   :-)
    I have .me; .mac and .icloud accounts.
    - Dave
    Running OS X  10.8.5 (Mountain Lion) on iMac, using iPad 4 (64GB) and iPhone 5.

    Thanks.  I was afraid of that.  Darn Apple....we use Apple products because they are elegant and easy to use, why can't apple simplify the ID issues???   :-)
    Thanks for the reply.

  • How do I update a waveform chart with multiple plots one point at a time?

    Hi,
    I am updating multiple plots one point at a time.  That is, every time I update the chart I have a value for one of the plots.  If I put in a cluster with NaN for each of the charts except the one with the data I can only get individual points on the chart.  I would rather have them connected.
    Any clues?  The only thing I can think of is to delay the update and do interpolation between samples - too complicated for me.
    Thanks

    Are the points within a given plot equally spaced in time?  If so, perhaps you need to maintain your own history of the data and used a waveform graph rewriting the history data to the graph each time.  If the points are unequally spaced, then you will need to do it as an XY graph.

  • Utility to send text file over GPIB, one line at a time?

    We are developing instrumentation that receives data and commmands over GPIB as plain text, and returns them as well. I'd like to create GPIB "batch" files and send them over the bus, one line at a time, so I can debug the instruments' behavior. I'd also like to be able to read back responses, one line at a time.
    Is there such a utility? I've got our programmer working on something like this, but I'd hate to have him re-invent an existing wheel.
    Thanks!

    Apart from NI-SPY, I have not heard of such a utility. This may be simple to implement using proper termination. If the instrument is capable of sending line feeds or carriage return, you should be able to easily create a document. Also, using IBWRTF, you could write the ASCII file (containing the termination characters) to the bus. Depending on how you have your timeouts specified, this may be ideal.
    Alternately, if you read a static amount of data, you could IBRD chunks of data. the result may need editing for broken words at the end of a line but would achieve such a result.
    Ryan Mosley
    National Instruments, Applications Engineer
    http://www.ni.com/exchange

  • Automator (or anything) to mass transfer one file at a time, or skip over corrupted files?

    I'm currently recovering files (using Disk Warrior) from a failing hard drive, but when OS X hits a corrupted file ("Error -36"), it cancels the entire transfer, rather than skipping over it.  Basically, I have to transfer one file at a time, which, on a 2TB hard drive, is going to be insanely tedious, so I was wondering if there's an automation that can transfer one file at a time, or some other way to transfer files that won't stop mid-process?

    in my experience, people who know enough unix to understand what you suggested rarely ask questions about automator.  Auto-mechanics don't generally need advice on choosing an auto repair shop.
    Applescript is probably the easiest way to go with this.  I don't know what the file structure of the recovered documents is, but in general you'd run something like this:
    set sourceFolderPath to "/path/to/recovered items folder/"
    set destinationFolderPath to "/path/to/destination folder/"
    tell application "System Events"
              set theFiles to files of folder sourceFolderPath
              repeat with thisFile in theFiles
                        try
      -- move files one-by-one in an error block
                                  move thisFile to folder sourceFolderPath
                        on error
      -- you can put something here to log the skipped files or display a dialog, if you like
                        end try
              end repeat
    end tell

  • HT204406 after this new itunes and ios7 update all my music is off my ipod touch unless i download them one artist at a time, i have over 3500 songs in there.  really?  is there no easier way to get my music back into my ipod?  like a download all button?

         after this new itunes and ios7 update all my music is off my ipod touch unless i download them one artist at a time, i have over 3500 songs in there.  really?  is there no easier way to get my music back into my ipod?  like a download all button?  thanks.

    thanks for the reply.  guess i'll have to do that.  apple, not really happy with what you've done with this latest update.  have not been able to enjoy my music in my car since the update.  most of us dont mind changes that progress timely, but this was much more than just a progression.  this was a complete change.  and not a good one, at all.  thanks to the two people that replied.  appreciate it.

  • I am trying to activate my program into my new computer (the old one was run over by a car) and it says I have exceeded my installations.  It's Adobe Audition 3 (you can see I've been using it a long time) and I rely on it for work everyday.  Please advis

    I am trying to activate my program into my new computer (the old one was run over by a car) and it says I have exceeded my installations.  It's Adobe Audition 3 (you can see I've been using it a long time) and I rely on it for work everyday.  Please advise.

    The activation server for Audition 3 was shut down by Adobe several years ago.
    You now need to download the non-activation version provided by Adobe here
    Error: Activation Server Unavailable | CS2, Acrobat 7, Audition 3
    Install then enter the new serial number provided by Adobe at that link. Your existing serial number will no longer work.

  • Hey guys, i have a one year old Mac desktop which has become incredibly slow over time. Strange thing is that I have not downloaded anything save for install Windows for Mac. Storage wise the bulk of my info is stored on hard external drives. Can someow

    Hey guys, i have a one year old Mac desktop which has become incredibly slow over time. Strange thing is that I have not downloaded anything save for install Windows for Mac. Storage wise the bulk of my info is stored on hard external drives. Can someow

    Hardware Information:
              iMac - model: iMac11,2
              1 3.2 GHz Intel Core i3 CPU: 2 cores
              4 GB RAM
    Video Information:
              ATI Radeon HD 5670 - VRAM: 512 MB
    System Software:
              Mac OS X 10.6.8 (10K549) - Uptime: up 0:2:53:43
    Disk Information:
              WDC WD1001FALS-40Y6A0 disk0 : (931,51 GB)
                        (null) (disk0s1) <not mounted>: 200 MB
                        Macintosh HD (disk0s2) /: 931,19 GB (894,98 GB free)
              OPTIARC DVD RW AD-5680H 
    USB Information:
              Apple Inc. iPad
              Apple Internal Memory Card Reader
              Apple Inc. BRCM2046 Hub
                        Apple Inc. Bluetooth USB Host Controller
              Apple, Inc. Keyboard Hub
                        Apple, Inc Apple Keyboard
              Apple Computer, Inc. IR Receiver
              Apple Inc. Built-in iSight
    FireWire Information:
    Kernel Extensions:
    Problem System Launch Daemons:
                     [failed] com.apple.suhelperd.plist
                 [not loaded] org.samba.winbindd.plist
    Problem System Launch Agents:
                     [failed] com.apple.Kerberos.renew.plist
    Launch Daemons:
                     [loaded] com.adobe.fpsaud.plist
                     [loaded] com.microsoft.office.licensing.helper.plist
                     [loaded] com.rim.BBDaemon.plist
                     [loaded] com.zeobit.MacKeeper.AntiVirus.plist
    Launch Agents:
                     [loaded] com.rim.BBAlbumArtCacher.plist
                     [loaded] com.rim.BBLaunchAgent.plist
    User Launch Agents:
                     [loaded] com.adobe.ARM.202f4087f2bbde52e3ac2df389f53a4f123223c9cc56a8fd83a6f7ae.plist
                     [loaded] com.zeobit.MacKeeper.Helper.plist
    User Login Items:
              iTunesHelper
              BlackBerry Desktop Software
              Bluetooth File Exchange
              Garmin ANT Agent
              Dropbox
    3rd Party Preference Panes:
              Flash Player
    Internet Plug-ins:
              AdobePDFViewer.plugin
              AdobePDFViewerNPAPI.plugin
              Flash Player.plugin
              FlashPlayer-10.6.plugin
              GarminGpsControl.plugin
              iPhotoPhotocast.plugin
              JavaAppletPlugin.plugin
              QuickTime Plugin.plugin
              SharePointBrowserPlugin.plugin
    User Internet Plug-ins:
    Bad Fonts:
              None
    Top Processes by CPU:
    Top Processes by Memory:

  • HT1206 my mom somehow ended up with totally different iTunes accounts, based on an old (dead) email address and a newer one as well. She's bought a lot of music on both accounts over time... is there some way to merge the old account into her newer one?

    my mom somehow ended up with two totally different iTunes accounts, based on an old (dead) email address and a newer one as well. She's bought a lot of music on both accounts over time... is there some way to merge the old account into her newer one?

    No. If one of those accounts is inaccessible, click here and request assistance.
    (82012)

  • Plotting boolean digital signals over postion (angle degrees) not over time

    Hello all,
    I would like to plot two boolean signals over position (angle degrees) and not over time. Any pointers on how to do this? The two digital signals are coming from a VI on my FPGA code (running cRIO - 9014), and the location in degrees is also generated by the same VI on my FPGA code. 
    I tried to use "Boolean Array to Digital.vi" and a "Digital Waveform Graph", but it will only plot my 2 digital signals over time and I need to plot it over position. I took that vi from example "Digital Waveform DT Graph Demo". 
    Another issue with plotting it against time is the sampling rate. I'm plotting cam and crank signals over engine position (crank angle degrees), how do I plot these signals in position intervals of 720 degrees. Could I tweak the sampling somehow that I would be able to see stills of these intervals? The position date is continously running from 0 to 720, when it reaches 720 it starts again in 0.
    Thanks!

    You'd have to use an XY graph so you can define your own x-axis, in your case it would be degrees.

  • Using chart to track changes over time

    Hi, I'm monitoring the progress of recovery from injury and need to analyse changes in grip strength over time. I would like to use a chart with grip strength on the Y axis and time along the X axis.
    Unfortunately, the records were not taken at regular intervals, so the chart resulting from my data gives a misleading visual of progress. For example, my dates are sometimes one week apart, sometimes two, sometimes four.
    Is there a way to get the time intervals to scale properly? That is, at the moment each date is at an equal point along the X axis, regardless of how long between the two dates (3 April, 14 April, 28 May and so on). What I want is for those dates to be separated along the X axis in equivalent proportions to their relationship in time (thus 3 April would be much closer to 14 April, than 14 April is to 28 May).
    My only thought is to manually extrapolate the "missing" dates and guess the grip strength on those dates. Unfortunately this will defeat the purpose of the exercise. Any help most gratefully accepted, thank you!

    An XY scatter plot (third from the bottom) will preserve proportions on both axes. Connect the points with (straight) lines for a broken line graph.
    Regards,
    Barry

  • Intensity over time

    Hi everyone,
    I have the following problem...
    I am trying to plot some Light Intesity values over time out of a real time video. But I don't know how to create my VI ...
    Therefore I have attached the VI I have until now. It first asks for a region of Interest by pushing the Setup-Button and after that the Measurement of the Intensity begins, shown in the second tab called "real time video"... the values are also shown in the box beside!
    Now I don't know how to measure the time und how to write the time and intensity values in an array to plot it...
    It would be best to capture the time value for every frame and consequently every intensity value...
    Any ideas ???
    I am using LV 8.0 ...I don't have a higher version
    Message Edited by Portisblaed on 12-29-2007 07:03 AM
    Attachments:
    ROI-Button-sequence II.vi ‏106 KB

    Hi,
    I have one more question about the waveform chart...
    When I play an AVI file with about 50 seconds time, and I plot the Intensity over time with the waveform chart, this plots shows me a timescale which doesn't fit to the time fro m the video! For example my 50 second video is played in a time of 20 seconds! What's the reason for that? Do I have to change the time settings somehow?
    And the examples don't really help me to fourier transform the signal I got, because I don't know the time of the measurement! Just the x-scale of the wavefrom chart like you suggested it before...
    Thanks for help!
    Message Edited by Portisblaed on 01-08-2008 09:50 AM

  • One core peaking after 10.9.3....annoying clipping sounds

    Using a 12 core mid 2010 32GB RAM. This is what my core reader looks like when I'm doing nothing....on a blank session (screenshot). If I start auditioning string samples (Spitfire, 8W Black, Symphobia ect...)that one core peaks causing very annoying clipping sounds. I didn't have this issue on 10.9.2 and after the awesome Logic X update that spread the load across the cores (finally).
    Please look into this as I'm sure Im not the only one with this issue. My computer and using Logic X is how i make a living. Freezing every track is the only work around this, for now....

    Just to follow up:  I started looking for things on my MacBook that could have had an impact on this behavior.  I could think of three:  App Nap, and two third-party products I run, App Tamer and Little Snitch.  I turned all three off, and the problem went away.  So you'd think I'd found the source of the problem.  Well ... over the next couple of days, I turn them back on one at a time,  They have all been back on for almost a week now ... and the problem has not recurred.
    Meanwhile, my other MacBook - which displayed the same problem, though less frequently - also no longer displays it.  (I don't run either of the third-party programs on the other MacBook, and I never changed the App Nap settings.  Oh, and it's my work machine and on a completely different network provider I have AT&T at home, it's Verizon at work - so in terms of network connections, the commonality is "The Internet".)
    So this has vanished completely as mysteriously as it arrived.
                                                            -- Jerry

  • Reading a string one character at a time

    Hi,
    I'm hoping you use SmallBasic for year 10 exam students at my school.  But, I have found a problem I cannot solve.
    I need to be able to read one character at a time from a string (txt file) and convert each char to its ACSII code.
    How do to I read one char at a time from a string to enable processing?
    Thanks for your help.
    Baz 

    Here is an over the top solution that will display the Hex value of the character codes of every character in the file.
    TextWindow.Write("Enter full file name: ")
    filnam = TextWindow.Read()
    contents = File.ReadContents(filnam) 'read the entire file
    TextWindow.Clear()
    TextWindow.WriteLine("File Name: " + filnam)
    TextWindow.WriteLine("Offset: 0")
    col = 0
    row = 5
    TextWindow.CursorLeft = col
    TextWindow.CursorTop = row
    For i= 1 To Text.GetLength(contents)
    ch = Text.GetSubText(contents, i,1)
    chVal = Text.GetCharacterCode(ch)
    ConvertToHex()
    TextWindow.CursorLeft = col
    If chVal < 32 Then
    TextWindow.Write(".")
    Else
    TextWindow.Write(ch)
    EndIf
    TextWindow.CursorLeft = 20 + 2 + (col * 3)
    TextWindow.Write(Text.GetSubText(hexstr,1,2))
    col = col + 1
    If col = 8 Then
    col = col + 1
    EndIf
    If col > 16 Then
    col = 0
    row = row + 1
    If row > 20 then
    TextWindow.CursorTop = 23
    TextWindow.CursorLeft = 25
    TextWindow.Write("< < < Press ENTER to Continue > > >")
    TextWindow.Read()
    TextWindow.Clear()
    TextWindow.WriteLine("File Name: " + filnam)
    TextWindow.WriteLine("Offset: " + i)
    row = 5
    EndIf
    TextWindow.CursorTop = row
    EndIf
    EndFor
    TextWindow.WriteLine("")
    TextWindow.WriteLine("")
    Sub ConvertToHex
    HexValue[0] = "0"
    HexValue[1] = "1"
    HexValue[2] = "2"
    HexValue[3] = "3"
    HexValue[4] = "4"
    HexValue[5] = "5"
    HexValue[6] = "6"
    HexValue[7] = "7"
    HexValue[8] = "8"
    HexValue[9] = "9"
    HexValue[11] = "A"
    HexValue[12] = "B"
    HexValue[13] = "C"
    HexValue[14] = "D"
    HexValue[15] = "E"
    val = chVal
    hexstr = "h" 'Need to force Small basic to concatenate rather than add
    While val > 0
    hexPos = Math.Remainder(val, 16)
    hexstr = HexValue[hexPos] + hexstr
    val = Math.Floor(val / 16)
    EndWhile
    For hi = Text.GetLength(hexstr) To 2
    hexstr = "0" + hexstr
    EndFor
    EndSub
    Enjoy!

Maybe you are looking for