FFT Frequency Resolution vs. Graph Update Rate of a Vibration Signal

Hello,
First, what I know:
The frequency resolution (Hz) of an fft is 1/acquisitionTime (e.g. if 2 seconds of data are acquired, the frequency resolution is 1/2s = 0.5Hz).
What I'm Wondering:
Let's say I'm displaying an acquired signal on a graph and freq res = 0.5Hz.  The graph update rate is therefore approx 2sec.  This may appear to be an application with a problem from a user's perspective.
Can I increase the update rate?
It seems that with vibration data (i.e. mostly non-periodic) I could create a buffer that is 2sec long.  The first data acquisition sequence will fil the buffer with 2sec of data.  Then I could just acquire something shorter than 2sec of data (let's say 1/4sec).  If I am acquiring data continuously and I push the 1/4sec of data into the front of my buffer then perform the fft again, I have effectively increased my graph update rate to 1/4sec and my users think I'm great.
Can anyone shed any light on whether or not (why/why not) this will work?
Thanks for your time,
Chris  

The best tool NI provides for your application is the Zoom FFT.  This allows you to specify the span (frequency range of the FFT) and the zoom (the delta f such as 0.5hz) in the FFT.  The Zoom FFT has a built in buffer, called overlap and allows you to set the overlap so that it updates at the appropriate rate, event though you may need many seconds of data to get the delta-f in the FFT you are looking for.  We package all this and manage units to display the correct units for power density, power, linear, magnitude, rms, 0 to peak, peak to peak, etc.  We even provide a express VI for the zoom FFT and it is also part of the Sound and Vibration Assistant, requiring no programming at all.
http://digital.ni.com/public.nsf/allkb/F70DB3441DC5AB9986256E97005BA825
http://zone.ni.com/devzone/cda/tut/p/id/6107
http://zone.ni.com/devzone/cda/epd/p/id/5505
http://sine.ni.com/nips/cds/view/p/lang/en/nid/12152
Preston Johnson
Principal Sales Engineer
Condition Monitoring Systems
Vibration Analyst III - www.vibinst.org, www.mobiusinstitute.com
National Instruments
[email protected]
www.ni.com/mcm
www.ni.com/soundandvibration
www.ni.com/biganalogdata
512-683-5444

Similar Messages

  • How to enhance frequency resolution of fft spectrum on x-axis

    Dear Sir
    I get the frequency spectrum of my real time signal. Frequency span that I want to analyze is 0~500hz. I get that span by setting the sampling rate. But the frequency resolution coming on graph is of 100hz (as shown in attachment). My requirement is to have frequency resolution of 10hz with same frequency span. Please guide me how can I achieve this.
    I shall be thankful to you
    Kind Regards
    Muhammad Irfan
    Student
    UTP Malaysia
    0060149087570
    Solved!
    Go to Solution.
    Attachments:
    fft graph1.JPG ‏40 KB

    I set the dt value to 0.002. For this I set sampling rate 2000hz and no.of samples 1000000. In this way I achieve frequency span of 250hz. But resolution is still 100hz (as shown in attach 1). My question is how can I set resolution to 10hz? I increase the number of samples but from doing this only the frequency span changes and resolution remain same as 100hz. Resolution become 10hz only when I set total frequency span to 50 hz (but My frequency span of intrest is 0~500hz or 0~250hz not below thos).
    I am attaching the gaph in attachment 2 from where you can undersatnd what type of resolution and frequency span I want.
    Attachments:
    fft graph2.JPG ‏39 KB
    desired values for scales.JPG ‏35 KB

  • 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

  • Performing an fft with specific frequency resolution

    I have a 24 kHZ signal that was sampled for 16 seconds. When I take the fft I have a delta f of about 0.06 Hz. What I really need is to be able to see the data with a frequency resolution of something like 3.75 Hz as a part of order analysis. I realize that in order to do something like that I need to either reduce my number of samples or resample the data. Resampling has turned into a problem due to the amount of memory that it takes up. I have tried breaking the data up into chunks that will give me that 3.75 Hz resolution and then taking the ffts of each of those chunks. Now I want to take the average of all of these ffts but I am at a loss as to how to do this. Can anyone help me? Or am I just going about this completely the wrong way?

    Attachments:
    ensemble.png ‏31 KB

  • Lookout OPC Client – Asynchronous I/O and Update Rate serious problems (Sequence of data)

    I am using the Lookout OPCClient driver to connect to AB PLCs (EtherNet/IP protocol) and power measurement equipment (Modbus TCP protocol). The OPC server is the NI OPC Servers. The data that are read out from PLCs and PMs are energy meter readings, energy counters, power, voltage, current, frequency, power factor and el. energy quality measurements (THD). That energy meter readings are being stored in SQL database.
    I am experiencing a serious problem regarding the accuracy of the meter readings. Several times per day, randomly, meter readings are losing the time sequence. For example, sequence is: 167, after few seconds 165, 166.  In other words, present value followed by two previous old values. That generates a serious problem in our application that is expecting a naturally rising sequence of counter values.
    Analyzing further, I isolated the problem to the connection between Lookout OPCClient and OPC Server. I made a simple application in Lookout 6.7 (opcproc.lkp, attached) with OPCClient parameters: NIOPCServers, OPC2, Asynchronus I/O, Update rate: 10000, Deadband: 0.0, that is reading just one tag from NI OPC Servers demo application (simdemo.opf).
    By using OPC diagnostic tool from NI OPC Servers I record the sequence of OPC requests and responses.  I found out that OPCClient sends every 2.5 sec “IOPCAsyncIO2::Refresh2()” call that is request for refreshing of all items in one OPC group. Few milliseconds later OPC Sever responds with callback function “IOPCDataCallback:: OnDataChange()(Device Refresh)” that actually refresh the data.
    This periodic sequence is intrinsic to the OPCClient and cannot be disabled or changed (by my knowledge).  This sequence is periodically interrupted by “IOPCDataCallback:: OnDataChange()” caused by update rate parameter of OPCClient (client is subscribed to server for periodic update of changed items).
    In the case of demo application on every 4 refresh callbacks caused by refresh requests (2.5 sec) there is one update subscription callback determined by Update rate (10 sec).
    QUESTION 1:
    What is the purpose of update sequence and update rate when we have every 2.5 sec fresh values?
    PROBLEM
    The problem arises when we have a large number of items in OPC group. In that case the OPC Server starts to queue refresh requests because they cannot be fulfilled in 2.5 sec time because of large number of I/O points that must be scanned. At the same time update subscription callbacks are running at the period determined by Update rate. I observed in my production system that regular update callbacks has higher priority than refresh callbacks from the queue. That causes the loosing of timed sequence of data. After the update callback with fresh data, sometimes follow one or two refresh callbacks from queue with old (invalid) data. By adjusting Update rate parameter (1 hour, 2hours …) I can postpone the collision of data refreshes but I cannot eliminate it. Furthermore, the 2.5 sec automatic refresh are large burden for systems with many I/O points.
    QUESTION 2:
    Is there a way to disable automatic refresh request every 2.5 sec and just use update requests determined by Update rate?
    QUESTION 3:
    Is there a way (or parameter) to change the period of automatic refresh (2.5 sec)?
    This problem is discovered for Lookout 6.5, 6.6 and 6.7 so I could say it is intrinsic to OPCClient. If I use synchronous I/O requests there is not an automatic refresh, but that is not an option for large systems.
    Thanks!
    Alan Vrana
    System engineer
    SCADA Projekt d.o.o.
    Picmanova 2
    10000 ZAGREB
    CROATIA
    T +385 1 6622230
    F +385 1 6683463
    e-mail [email protected]
    Alan Vrana
    SCADA Projekt d.o.o.
    ZAGREB, Croatia
    Attachments:
    opcproc.zip ‏4 KB

    The physical connection from LV to the switch is (I believe) copper crossover to fiber converter into a switch.  Then, fiber from the switch to the end device (relay).  The relay has all of the typical modbus registries and has been verified by inducing signals in to the system and measured/polled in LabVIEW and observed Variable Monitor.  I am working with LV 8.2 and 8.5. 
    An OPC server would only add an additional translation of addressing within the configuration.  The only real draw back would be the network overhead required to do this processing and not being representative of the end design configuration.
    I will reiterated my question in another way:
    I must answer the question to management that relates to data collection, test results and analysis; how often are you polling the client in relation to the outcomes measured?  At this time I can not point at any configuration in the set up and execution that directs the data framing rate.  I only measure the traffic and work with results.  This needs to be clearly identified based on the relay modbus/tcp design capability of supporting an fixed number of client requests per second. 
    For testing purposes, I would like to be able to stress the system to failure and have prove capabilities with measured data.  The present problem is that I have no basis to establish varying polling rates that effect the measured data transmission. 
    This raises another question.  What handles the Variable Monitor data requests and how is this rate determined?
    Thanks for your interest in my efforts.
    Steve

  • PWM Update Rate using PXI 7334 & 6602 cards

    I have a NI 8176 controller and a PXI 7334 (FlexMotion) Motion Controller Card. I am using the PWM output to control an actuator and I would like to update the duty-cycle as frequently as possible.
    I have the card PWM frequency set to 32 kHz, but can only achieve 1.5 kHz update rate.
    The attached VI shows the code I'm using to write to the card.
    I also have a PXI 6602 card, I can achieve an update rate of 6.5 kHz with that, but I bought the 7334 card with the expectation of achieving a faster update rate.
    Any advice on how to improve the update rate of either card would be appreciated. Likewise, does anyone know another hardware set-up that would be a viable alternative?
    Many thanks,
    Brian
    Attachments:
    pwm_generation_with_7334_card_-_tick_method_of_speed_measurement.vi ‏50 KB
    PWM_Benchmark_V1.1.vi ‏112 KB

    Hi Amaury, thanks for the fp2 file, I’ve just moved site, got my lab back yesterday. (please watch the numbers 7344 and 7334 in the text below!)
    The FPGA2 firmware I had was Version 5.20.0001, MAX would not allow me to select the file 7344pwm.fp2, I got the message “This file is not valid for the Flexmotion board selected”.
    However, I went to C:\Program Files\National Instruments\Motion\FlexMotion\bin and deleted 7344.fp2
    I then renamed 7344pwm.fp2 to 7344.fp2 and copied it to the “bin” folder, then in MAX I selected new file to download, pointed to 7344.fp2 and successfully download the new firmware to my 7334 motion controller. Now in MAX the FPGA2 firmware version is 5.20.000f.
    Unfortunately I c
    an still only update the PWM duty-cycle on my 7334 at 3.6 kHz!
    Is this correct? do I need to update the file 7334.fp2 instead? or does the file 7344pwm.fp2 also work for the 7334 card?
    Also, is it possible to generate a PWM using the stepper motor output in open-loop mode? If so, do you have example code on how this is done?
    Thanks again for your help,
    Brian
    Regards
    Ray Farmer

  • AI acquire waveform. vi update rate

    Hello,
    I would like to increase the update rate ( which governs how many samples are acquired per second) for the attached vi- AI Acquire Waveform(waveform).vi.
    This vi is a built in vi obtainable from Analog Input palette under Measurement I/O.
    The update rate preset is 1000 samples per second, i want it to be 10,000 per second.
    If i type it manually, it doesnt stay and reverts back to 1000.
     I am using LABVIEW 8.6 on Windows XP machine
    Thank you very much and Regards
    poli
    Solved!
    Go to Solution.
    Attachments:
    AI Acquire Waveform (waveform).vi ‏14 KB

    Hi Poli
    Have you looked at the the daq examples. Labview is shipped with a lot of examples. Also are you running this by using the continuous run button? That button is for debugging only, and it is a no-no to use it for other purposes
    If you are new to Labview perhaps some of the online basic lessons will do you good.
    Besides which, my opinion is that Express VIs Carthage must be destroyed deleted
    (Sorry no Labview "brag list" so far)

  • How to slow an indicator's update rate

    Hello
    I'm having problems getting a Labview application to run reliably. The pc on which hosts the application reboots itself every few days, with the system log reporting that it has recovered from a bugcheck.
    So I'm trying to reduce the workload on the cpu and hoping that that this will improve the pc's reliability. One of things I've been advised to try is slowing the update rates of certain indicators on the user interface. However I'm struggling to find a way to do this.
    Attached is a very simplified version of my vi inwhich I have tried to make the indicator update once per second by using parallel loop and a local variable. I can't get this to work. Can anyone advise a better way to get the indicator to update slowly please?
    Thanks
    Attachments:
    Slow Indicator Update.png ‏76 KB
    Slow Indicator Update.vi ‏13 KB

    LabVIEW is a data flow language, so the loop to the top right will not get executed until the previous loop, which it is connected to by the error cluster wire, finishes, which it only does on an error, which (not looking at the diagram right now, so I have forgotten) may cause the "second loop" to not execute. The display loop, a timed loop set to 1000Hz, or an update rate of 1 mS, will update the display. Writing to a local variable is like writing to the actual indicator connection. So, even if the second loop is running, the bottom loop overrides it. Try putting the data in the bottom loop on a shift register, then run a case statement off of a timer that "samples" the shift register and is connected to the display terminal, eliminating the second top loop and all writes to the local variable.
    Putnam
    Certified LabVIEW Developer
    Senior Test Engineer
    Currently using LV 6.1-LabVIEW 2012, RT8.5
    LabVIEW Champion

  • How to generate a waveform (with changeable update rate and sample) with USB 6008

    Apologize about my awful English.
    In Tradition DAQ I can set different update rate with "AO Start" vi.
    Transform into USB-6008 device things turn into quite different.
    I don't know which vi I can setup update rate.
    Is there any example for this.
    THX a lot!

    Hello D.
    To use the USB-6008, you need to download DAQmx Base driver from the web at http://digital.ni.com/softlib.nsf/websearch/CE3686A8D5B0CEDC86256FFD007C9C4A?opendocument&node=132070_US .
    The driver will install with example programs that you can access by going to Start->Pograms->National Instruments->DAQmxBase->Examples. You new to have LabVIEW 7.x to use this driver.
    SergesL

  • Update rate of tags

    I'm runing LabVIEW as an OPC Client. No matter what I do, I don't really get much under 200ms in the update rate of the tags. These 200 ms stay much or less constant, probably it's the limit of my system, even so I ask you if its possible to set the speed somewhere?

    The update rate can be changed on the tag configuration editor. What you need to do is to
    select the tag that you are monitoring and go to the Edit IO group option and change the update rate. I beleive the default is 0.2 seconds(that is why you might be getting the 200 ms update rate). You can have different IO groups with different update rates in order to optimize your resources.

  • CFP-DIO-550 update rate

    Hello:
    Does anybody know which is the update rate for the digital inputs in the FP/cFP-DIO-550?  And what about the DI-330?
    I need to know it because I'm in need of reading digital pulses that will come from an encoder, so I wonder how fast can I detect voltage changes in the modules.
    I know that for this kind of application you can always use a QUAD-510 module, but since we're on a very tight budget and my client already has the digital I/O modules, I'm trying to figure out if I can use them.
    Any advice or help is appreciated. 
    Thanks in advance.
    Robst.
    Robst - CLD
    Using LabVIEW since version 7.0

    Thanks Wayne for taking the time in searching that information, it helps me.
    Now, Does anybody has any toughts about using the DIO-550 for reading digital pulses from an encoder?
    We are planning to use a 500 pulses/R encoder, and the maximum speed of the shaft would be 120 RPM, so we'd had 500*120= 60,000 pulses per minute, or 1000 pulses per second, so I'd need 1000 x 2 = 2000 readings per second to detect the transitions and count the pulses. So with a 10 kHz update rate, I think I would have no problem. However, I don't know if this constant polling of the module would affect the performance on the FP Controller. The application is old, and we have and FP-2000. I don't know if it will be capable of handling the constant polling and the other tasks?
    What are your toughts or recommendations?
    Thanks in advance.
    Robst.
    Robst - CLD
    Using LabVIEW since version 7.0

  • Can I manipulate update rate of the NI-PCI-5411?

    Hallo everyone,
    How can I change the update rate of the NI-5411 AWG card ?
    Thank you for your replies.
    Kind Regards,
    rainbow27

    If the module is currently generating, call niFgen Abort Generation.vi (niFgen_AbortGeneration) to stop generation.
    The sample rate is then set with niFgen Set Sample Rate.vi (niFgen_ConfigureSampleRate).
    (Re)Start waveform generation with niFgen Initiate Generation.vi (niFgen_InitiateGeneration).
    Jerry

  • Max Update Rate of NI 9375 Digital Outputs

    I have a NI 9375 module in a cDAQ-9174 connected to a Windows 8 PC running LabView 2012 with service Pack 1.
    No matter what I do, I cannot get the digital outputs of the NI 9375 to update faster than 48 per second.
    I need to generate a 40 Hz square wave.
    Am I missing some configuration settings?  What can I do to double the update rate?
    James

    If you use hardware timing, you can update the 9375 outputs at up to 2kHz.
    If you are not using hardware timing, I would guess that you have create channel followed by write in a loop.  This causes the task to be recommitted after every write.  If this is your setup, call DAQmx Start before your write.

  • Low update rate with ftdi

    Hi, recently my company changed I/O communication of a custom ADC board from RS232 to usb using FTDI245R chip. Using ftd2xx.dll I obtain lower update rate of the measurements ~60-100ms instead of 20ms (rs232). Anyone noticed something like this, how did you fix it? I just used the drivers provided by FTDI: open device (once), reset device (once), flush TX, write bytes, queu status, read bytes.
    Thank you

    U r right.IT is really frustrating.I found out the hard way.Finally when i used BCP for serial communication the updation was much faster and i was able to curtail the data loss.Using the d2xx function.Initialize purge and do everything once and i mean it only once.Put the read buffer in a while loop and dont give the number of bytes to read from the output of transmitt buffer as suggested.Instead define your own number of nits to read.obviuosly the buffer status will be checked once and then the while loop will start executing and ur updation will be fast.I am doing the samething.

  • Datasocket update rate

    I am observing some odd behaviour in the update rate of an OPC datasocket. When I run a my simple update application alone, it requires on average 115 ms to complete a datasocket update. However, when I run the application at the same time as another application that is subscribing to the same datasocket, the update task only takes on the order of 15ms to complete.
    So my question is, what is going on? More importantly, how do I write my datasocket subroutines to be as fast as possible?
    I also want to scale this to ~50 different datasocket reads every 100ms. How can I properly parallelize such a subroutine?

    Hi Kristi,
    I think I am running out of memory. I am having trouble getting the realtime system manager to work. It keeps giving me the message that the server is not running nor can it start it. I haven't found much trouble shooting on this (probably because it is such a new feature).
    As far as the bandwidth I am able to run the time critical loop at 5Hz in windows on the pxi system and publish to the datasocket server on the machine that served at the host when running realtime on the pxi system. I appear to have plenty of bandwidth left according to the window taskmanager on both machines.
    I have attached the code that I am using and it includes the base time critical vi that I used with th
    e realtime communication wizard. And I have also included the windows version of the vi.
    Thanks,
    Kirk
    Any help you can offer would be greatly appreciated.
    Attachments:
    Realtime_Version.zip ‏2159 KB
    Window_Version.zip ‏518 KB
    Base_Code.zip ‏508 KB

Maybe you are looking for

  • Safari 2.0.4 Does not start up

    Ever since i upgraded to Tiger i cannot use my Safari. It does not even start and gives me the following crash report: (please help) Date/Time: 2006-07-03 09:52:37.751 +0400 OS Version: 10.4.7 (Build 8J135) Report Version: 4 Command: Safari Path: /Ap

  • Rented a movie from Apple tv- itunes it buffers too many time

    We just got the apple tv, did updates so there are no apple tv updates to do, I  connecting via wirelss home network, We rented a movie from Itunes, started watching the movie and 5 minutes in it started to buffer movie was frozen and spinning apple

  • How to get my company in the top company list?

    Hello all, My name is there in the top contributor list for Solution Manager. But I can't see my company in the top company list for Solution Manager. I am pretty sure its not because of the points as I myself have more points than some of the compan

  • Problems while generating the proxy definition

    Hi Experts,    I am facing the error " Problems while generating the Proxy Definition! ", when creating the proxy definition, for a specific URL. The URL to call the webservice is similar to "http://www3.XYZ.com/_vti_bin/newswebservice.asmx?WSDL" and

  • Cursor disappears except near dock (right side) OS 10.6.8, 27" Intel iMac. Started this morning.

    This morning my wireless mouse needed battery replacement. After that, the cursor disappears as I move it away from the dock area. If I move over buttons and am lucky, the proper action will take place but I cannot see the cursor. Sort of like playin