FFT of 20 waveforms

Hi,
I used the following VI (attached to the mail) in the past that acquires data from the specified channel, scales the data to engineering units, windows the signal, and performs the requested averaged frequency measurement. Power Spectrum, Power Spectral Density, and FFT are available frequency measurements. The resulting spectrum is displayed on a waveform graph.
You can find the VI on this link :
http://www.ni.com/example/30505/en/
However, I have now 20 waveforms graphs of 'voltages v/s time' that are the results of a FOR loop (see attachment: Capture.PNG).
I wish to perform the FFT of these waveform graphs together using the same VI.
However, I don't really know what to remove from this existing VI and where I need to connect the output of my waveform graphs to perform the FFT.
Thank you for your help.
Regards,
Attachments:
zoom_fft_daqmx_simulated.vi ‏94 KB
Capture.PNG ‏5 KB

I gave a try, but still some errors.
(see attachment)
Attachments:
Capture1.PNG ‏39 KB

Similar Messages

  • FFT of 1D waveform

    I want to get FFT of a 1 D waveform. So I tried to use signal processing------transform-----FFT. My data is 1-D waveform, data type is UNCHAR 16bit integer. But after I connected it with FFT, the result seems wrong. So what component should I use to do FFT  of that kind of data?

    Hey there Sophia,
    Here is an example written in LabVIEW 8.0.  The beginning of the block diagram just generates a 100 Hz sine wave,and extracts the 1D array of Y Values from the waveform.  We then reconstruct the waveform by using the 'Build Waveform' function, and inputting the 1D array of Y Values, as well as the time in between samples (dt = 1 / sampling frequency).  The VI then takes the FFT using two methods:
    Using the Spectral Measurements express VI, and 
    Using the FFT Spectrum VI located in Functions»Programming»Waveform»Analog Waveform»Waveform Measurements.  Run the VI, and observe a peak on both graphs at 100Hz. 
    I hope that this helps!
    Message Edited by Chris_G. on 04-11-2008 04:05 PM
    Chris_G
    Sr Test Engineer
    Medtronic, Inc.
    Attachments:
    fft1.vi ‏114 KB

  • Centering Waveform at Zero for FFT

    I want to perform a FFT on a waveform that describes a Gaussian pulse in amplitude vs. time. I also want to have that pulse centered so that its maximum is at t = 0.
    So far I have been using Amplitude and Phase Spectrum.vi and FFT Spectrum (Mag-Phase).vi. The problem with the former is that it only takes a 1D array of Y values, not another array for time values. The problem with FFT Spectrum (Mag-Phase).vi is that I don't know how to use the t0 component (it requires a timestamp?).
    I have tried "wrapping" the pulse around, i.e. cutting the first half of the pulse and concatenating it to the end but this doesn't have the FFT I want (which would have constant phase in frequency domain).
    A bit about my background: I'm an undergrad volunteering in an ultrafast spectroscopy lab, so it's very possible I'm ignoring something very elementary here about FFT, which I still treat as something of a black box, so any help in that topic would be welcome.

    Hello,
    In the Amplitude and Phase Spectrum vi, the time values are accounted for by wiring the dt input of the function. This assumes that you have a constant dt between each point and the very first point is treated as t=0. The other function behaves similarly except that you are using a waveform. A waveform consists of 1) Amplitude values, 2) t0 (timestamp - for you, the timestamp can just be an arbitrary constant value) 3) dt (again, this make it a constant dt between all the points) 4) Attributes. Overall, you should get similar results from either of these. In terms of your data, do they have a constant time interval between points or not?
    -Zach
    Certified LabVIEW Developer

  • Complex waveform and FFT

    Hello everyone!!
    I'm using the MT RFSG Generate PSK.vi that you can find in the examples menu of LabVIEW. I get a good singnal because I see it in an Spectrum Analyzer, but now I want to see the same signal but in the LabVIEW. The problem is that the vi has an output which name is "complex waveform" and I don't know how get the graph from that output. I know that I must use the FFT to obtain the spectrum but isn't directly so I don't know how to do it. Have I to use some vi between the generate PSK. vi and the FFT.vi?? How could I do it?? What FFT.vi is the best for my problem? I need help.
    Thank you.

    OK, it's because the output of this vi is a typdef (ComplexDataWaveform.ctl), not a waveform. You can try something like that:
    You can extract your data from the typedef cluster and build a waveform.
    Cordialement,
    Simon D.
    CLA | Certified LabVIEW Architect
    CTA | Certified TestStand Architect

  • Is there any other transform (except FFT) to find out harmonics in the waveform?

    Dear all,
    I am doing a project on finding other transform (except FFT) to find out harmonics in the waveform. I hope someone can tell me the methods. I have found a lot of time on internet and got no result. Thanks.
    Victor

    Hello Victor,
    If perhaps you are working with rotating machines where the frequency of an "n times per revolution" event is dependent upon the speed of the machine, you may want to look at Order Analysis.
    Events that occur a given number of times per revolution occur at the same position each revolution regardless of the rotational speed.  However, the frequency at which they occur is directly related to the rotational speed.  Order Analysis removes this speed dependency by transforming the phenomena from the time-based domain into a position-based domain.
    In the position-based domain, the recurring events are displayed as a the "number of times the event occurs per revolution" instead of the "number of times the event occurs per second" (i.e. frequency).  At least this is my interpretation of it based on my experience.
    Best Regards,
    Chris 

  • Problems graphing FFT of sine wave with Waveform Graph

    I know that this type of question has been posted
    many times, so I apologize for posting a similar one. Unfortunately,
    after reading quite a few threads I still have a question or two.
    Basically, I need to use a Waveform Graph (not an XY graph) to graph
    the magnitude of an FFT of a sine wave. I can't figure out which VI I
    should be using to obtain the magnitude of the FFT. I think I'm using
    the proper FFT vi (just the regular FFT.vi), but I can't find a VI
    dedicated to magnitude. Of course, I could be misinterpreting the
    pseudocode which I am following.
    If you
    wouldn't mind taking a gander at my VI, I'd appreciate any input you
    might have. The pseudocode is contained in the block diagram. You
    can see that I have another graph for just the sine wave, and I think
    that works as it should. I'm primarily concered about the waveform
    graph which isn't currently connected to anything, but should
    eventually be hooked up to the FFT.
    Thanks!
    Attachments:
    Labview5.vi ‏199 KB

    Your problem is that the output of the FFT is an array of complex numbers. Take the magnitude and you will be able to plot it.

  • Update FFT based on range of waveform chart

    I am working with seismic data that I recorded from explosive events.  The signatures that I'm recording could include the ignition of the explosion, the pressure wave hitting a barrier or debris hitting the ground.  The objective is to analyze the waveform and see if I can see any consistancy or trends.  I am loading in the seismic data into a LabVIEW program and displaying the waveform on a chart and then on an FFT.  I'm noticing with most of my data there are two or three distinct frequencies, so I would like to see where these occur on the waveform chart (each event has 2-13 seconds worth of data).  On the waveform chart I can zoom in on the x-axis and change the time range to look at areas of interest and count cycles, however that gets tedius.  Is there a way to update the FFT to show only the data that is in the time range on the waveform chart?
    Thanks
    Michael

    I don't have enough experience when working with the frequency domain but here is my attempt by following my nose.
    There seems to be an error in the frequency detected but I don't know why.  Hopefully somebody else with more knowledge will step in with an explaination.
    Here it is in LV7.1
    David
    Edit: Ah there you perhaps gwd can help
    Message Edited by David Crawford on 11-21-2006 01:53 PM
    Message Edited by David Crawford on 11-21-2006 01:53 PM
    Attachments:
    Slide FFT to detect Frequency Changes.vi ‏94 KB

  • FFT of waveform (lvm file converted from mat file) - how do I overcome dt error =0?

    Hi,
    I am using an lvm file after conversion from mat file. I wanted to get the fft  spectrum.I keep getting this error that waveform dt<=0.
    How do I overcome it?
    I have attached the mat file and the vi i used.
    Best regards,
    Fesmi
    Solved!
    Go to Solution.

    The Forum is somewhat particular about the files which may be attached. Often creating a zip file works. Sometimes you can change the extension to .txt. If you change the extension, please indicate in your post what the orignal extension was.
    It appears that the data in the file has a time column and an amplitude column. The LabVIEW waveform datatype is a cluster of an array of amplitudes (Y), sampling interval (dt), starting time (t0), and optional attributes. This is what the Power Spectrum VI requires as an input. The t0 values is not used so the defualt is fine. the dt value can be calculated from the difference of any two adjacent values in the time column. Since the first value is zero, the second value is equal to dt.  Use the Build Waveform primitive from the Waveform palette.  Expand it to show the dt element.
    In the attached VI all rows is an indicator which contains the data from your file saved as default. XY Graph plots that data.  After subtracting the mean to get rid of a DC component, the data is converted to a waveform. The power spectrum is calculated and displayed using the same VI as in your program. It also uses Extract Multiple Tone Information.vi to get the frequency and amplitude of the major peaks in the data.
    Interestingly the low frequency part of the spectrum has strong harmonics of 60 Hz while the peaks near 4 kHz are space ~100 Hz apart.  The broad peak near 2.1 kHz does not seem to have noticeable components at either 60 or 100 Hz.
    How do you avoid the Dynamic Data Type (DDT)? Stop using Express VIs! For reasons only known to NI, Express VIs deliver their outputs via DDT. Except by opening the block diagram of the express VI, there is no way to tell what the underlying data structure on a DDT wire is. 
    Lynn
    Attachments:
    FFT of Waveforms.vi ‏711 KB

  • Saving FFT PSD waveform to TDMS file maintaining x-axis scale

    Hi all,
    I'm having trouble saving a Power Spectral Density waveform to a TDMS file because the method I'm using is losing the x-axis (frequency) scaling. The only way I can get it to save is extracting the magnitude from the waveform and saving that in the TDMS file. This loses all the frequency information.
    Does anyone know how I can save the PSD information in a TDMS file or failing that, any type of file?
    Thank you,
    Donners
    Solved!
    Go to Solution.
    Attachments:
    PSDs Frequency 2.JPG ‏89 KB
    Data Calculations TDMS 4.zip ‏120 KB
    Filtered Data.zip ‏240 KB

    Hi,
    As my understanding, you are trying to log the PSD to "Power Spectral Density" channel, but you do it wrong with double array. TDMS write don't accept cluster as input, but accept waveform.  I have updated the VI and the PSD in TDMS file viewed as
    Attachments:
    Data Calculations TDMS 4.vi ‏177 KB

  • How can i display the signal out of a FFT block to a graph?

    What conversion is required in order to convert a the output of a FFT block to a waveform display? The signal input to the FFT block is a binary pattern signal!

    Hello St Augustine,
    Unfortunately, I cannot open these files that you have attached so I cannot tell you for certain where your problem lies. However, if you are using one of the FFT VIs from the Analzye>Waveform Measurements sub-palette, then you should be able to wire directly from the VI to a Waveform Graph. Make sure you are trying to wire to a Wavform Graph not a Waveform Chart. If you are using the FFT VIs on the Analyze>Signa Processing>Frequency Domain sub-palette, you should also be able to directly wire into a Waveform Graph, but please refer to the KnowledgeBase document linked below for more information about plotting complex numbers.
    http://digital.ni.com/public.nsf/websearch/C010A823CEA80D5386256938005A066E?OpenDocument
    Rega
    rds,
    Jyoti F
    National Instruments

  • Counter/Timer Waveform

    I would like to convert period measurements (RPM data) received from my counter/timer board into waveform data type so that I would be able to conduct frequency analysis on the data (e.g. FFT). Have tried with limited success interpolation & decimation techniques. Would be grateful for any suggestions.

    Malfesto,
    I had a look and can offer up a few comments:
    1. I don't understand your comment about "truncation error" in the slow speed pulses case. Perhaps your are remarking about the "glitches" in the slow data embedded in the block diagram array? More on this a bit later...
    2. At least at a quick glance, the interpolation seems a little funky. I didn't spend a ton of time wrapping my head around it so maybe it's actually ok, but I saw a finite difference that would act like a derivative of the period, and a scaling factor based on the average period -- things that make me go hmmmm.
    Also, if you zoom on the graphs for the Slow Data, you can kinda see that the "Post Processing Graph" looks like a derivative of the "Pre Processing Graph". I suspect you need to rework your interpolation method.
    3. When I did a similar project, I think I first converted all the periods to frequencies and also generated a "sample time" array that was the cumulative sum of the periods. (I toyed with tweaking the time array so that the timestamp would correspond to the midpoint of the interval that I had converted to a frequency. I don't recall now whether that tweak proved useful enough to bother with).
    Once I had laid out arrays for frequencies and (unequally-spaced) sample times for those frequencies, I could generate an equally-spaced time array at a desired "virtual sampling rate" and interpolate to create new "virtual frequency" values. Since I was merely post-processing data, I think I also used the native LabVIEW array functions 'Threshold 1D Array' and 'Interpolate 1D Array' in the interpolation process.
    Now, before going into an FFT you'll want to remove the huge DC offset. This may be as simple as subtracting the mean or median frequency from all entries if you are nominally at constant speed.
    4. Your raw dataset for Slow Data has suspiciously periodic glitches in the periods. There is a very strong and dominating pattern that repeats every 16 intervals. Your typical period is registering about 10 million timebase cycles. However, in every set of 16 periods, you get one period around 27 million and another around 35 million.
    I don't know how you gathered your "Slow Data" values, but there seems to be a systemic error in the measurement. That sort of one-sample discrepancy looks very suspicious. I'd urge you to determine the source of those glitches and try to eliminate them. They don't appear to be telling the truth about the motion you wish to characterize. The device you measure doesn't by chance start and stop or go back-and-forth during your measurement, does it?
    Hope this helps.
    -Kevin P.

  • How do I get my DAQ to have frequency resolution of 0.5 hz after FFT ?

    Hi all,
    I was just wondering how do I get a frequency resolution of 0.5hz after the FFT from this VI.
    Or perhaps there can be some advice on where I must improve it.
    Appreciate all advice, thanks!
    -How81
    as of now, the waveform graph i obtained, I wanted it to be of 0.5 hz, hence I used its property to set it at 0.5hz.
    Message Edited by How81 on 10-13-2007 03:31 AM
    Attachments:
    Final DAQ.vi ‏107 KB

    Hi How81,
       I won't comment on your code, I'm unable to see it (I have LV 71.1).  So I'll discuss a little bit the DSP.
       If you want such a low frequency resolution, you have to sample a little longer.  If your top-frequency is 25 Hz, I don't see the need for sampling at 1 kS/s, that gives a Nyquist freq. of 500 Hz!!! You'll only have a large amount of data, not of your interest!
       Another good advice, is to sample for a long time.  To have a REAL resolution of 0.5 Hz, It is not sufficient to sample 2 MSample for one microsecond! So, you have to sample at least for 2 seconds, but I strongly suggest to sample for a longer time.  In DSP,you almost always have to use some tolerances.
       Another matter is FFT resolution due to number of samples. If you sample 2 kS/s for 1 second, and you'll get a "2000 point FFT (...)", you'll see 1000 equally spaced frequency samples, from 0 to 1000 Hz (ie 1 Hz spacing), you can't have a resolution of more than 1 Hz. I would suggest something like sampling at (say for tolerance) 100 S/s, (top freq. you seee in FFT: 50 Hz), for 10 seconds: so you have 1000 points, but you have a resolution of 0.1 Hz.
       A part from this, always consider that FFT works in 2-powers, so it's better to do a 1024 points FFT.   Then you can use zero padding techniques to "adjust" fft to see samples at right frequencies, or sample 1024*10 samples in time at 1024 S/s and then decimate..... you have many choices.
       Hope this can help. Have a nice day!
    graziano

  • How to do FFT of vibrations signal?

    Hello,
    I'm trying to measure the time and frequency spectrum of a vibrations signal.
    My time plot seems to be ok, but my FFT graph doesn't look right.
    An expected vibration FFT graph of a bearing should look like peaks at various frequencies, but my FFT graph looks only like a linear line.
    Does anyone know what's wrong with my attached program?
    Thank you.
    Y.Yang
    Attachments:
    3 axis white and green sensors v2.vi ‏122 KB

    Your code looks fine.  I double checked how you're acquiring data, and it seems fine.  I'm pretty sure that you are acquiring an FFT and the graph is just not scaled correctly.  Do the following:
    Right Click Waveform Graph 2 >> X Scale >> AutoScale X
    Right Click Waveform Graph 2 >> Y Scale >> AutoScale Y
    I've also attached an example of what I've done to get the FFT from a simulated signal.
    Che T.
    Applications Engineer
    National Instruments
    Attachments:
    FFT.vi ‏67 KB
    fft.png ‏43 KB

  • How do you transform a 2d scaled data type to a waveform data type?

    I'm using a daqcard 6024e with labview 6.1 pds. I'm modifying an example VI called Cont Acq to Spreadsheet File.vi. I wanted to run an fft on the data coming from the AI Read VI but that data is a 2d scaled array. The Array to Spreadsheet String VI which I need requires the output from the AI Read VI to be a 2d scaled array.

    Make a FOR loop with a Get Waveform Components function in there, the "Y" component will be a 1D array. Wire the Waveform array through the FOR loop to the left side of the Get Waveform Components, let it index (it will by default). Wire the 1D array from the Y component out of the FOR loop and let it index also. The result is your 2D array of DBL.
    - Dan

  • Problems with waveform integration

    What I need to do is waveform integration from an acceleration vibration signal to a velocity or displacement signal.
    To take the signal to velocity, I first filter the acceleration signal (HPFilter, 5Hz) to remove any offset and the perform the integration.
    To probe the method, I use a signal composed by one sine WF with amplitude 1. The test consist in vary the frequency of the sine WF and evaluate the value obtained by the FFT of the integrated signal.
    For a freq of 10 Hz, i obtained a value of 0,015931 which is nearly the expected 1/(2·pi·10)=0,015916
    for a freq of 150 Hz, i obtained a value of 9,8130e-4 instead of the expected 1/(2·pi·150)=1,061e-3
    for a freq of 450 Hz, i obtained a value of 7,91922e-5 instead of the expected 1/(2·pi·450)=3,537e-4
    as you can see, higher the frequency, higher the deviation from the expected value. i am triyng to get this solve, but in this moment i don't know why this phenomenon occur.
    any help will be well recibed.
    CJMV

    OK, that's a really good point, i am agree with it.
    do you have made a study of the relationship between the sampling frequency and the maximum frequency of the signal?.
    i am going to make it anyway, but to compare...
    another point related to the waveform integration:
    i rote in an application note that it is recommended to use a FIR filter instead of an IIR because it has less phase distorition of the signal. however, if you ask for the filter information and plot the "phase H(w)", you will se a big distortion in phase introduced by the filter.
    in the other hand, if you do the same thing with an IIR filter, you will find that the phase distortion is less.
    conclusion: i am using an IIR filter with a Fc of 5 Hz.
    greetings
    CJMV

Maybe you are looking for

  • My formatted with videora video will not transfer from itunes to ipod??????

    PLEASE HELP ME I HAVE BEEN THROUGH HOURS OF FRUSTRATION GOING THRU THE INTERNET TRYING TO FIGURE THIS OUT. i DOWNLOADED VIDEORA FROM THE INTERNET, THEN I TOOK THE VIDEO I DOWNLOADED FROM LIMEWIRE AND FROMATTED IT WITH VIDEORA THEN I PUT IT ON ITUNES

  • 100 GB missing hard drive space J115

    Hi,  My hard drive is rapidly disappearing!  Explorer calls the C drive SW_preload and says the capacity is 225 and 32.8 remains.   I can find about 70 GB of data files (mostly video) and 10 GB of program files.  Any ideas of where the space is being

  • TS1368 Can't get into store, forced to goto Amazon

    I have given up trying to spend money with Apple. I have tried every solution they have suggested to access the store on my Win 7 PC but constantly get the 'temporarily unavailable' message. I'm off to Amazon for my music - gotta get it from somewher

  • Credit

    So I just started a new contract with a new phone. I had absolutely no credit, but my order went through and I received my phone 2 days later. After switching my number and all that, I received a letter from Verizon informing me that they pulled a cr

  • SUS Service Entry Sheet Proxy Class

    Hi All, PLease let me know the proxy class called for the service interface ServiceAcknowledgementERPCreateRequest_In. This interface is used to create Service Entry Sheet in MM from SRM SUS system. regards, Neeraj