Acquiring Frequency Content of Vibration Signal

Hi.
I am trying to find the frequency content of an incoming signal from a geophone which has a 500 Hz vibrational signal on it.  However, using two different methods, I find that I am only given a large DC component for the frequency spectrum of the signal.  I have two different methods set up in a case statement to make it easy to try each one without having to rewrite code.  The first method is to just use the FFT function (in the attached picture I have a high-pass filter on the front to try and block the DC signal, but this only blocked the DC signal and did not make the 500 Hz signal any more noticeable).  The second method uses the Power Spectrum function with my array data converted to waveform for input.
The first picture shows the two different methods I tried.  The 1st picture with graphs is the result I get using the FFT method.  The 2nd picture with graphs is the result I get using the Power Spectrum method.  Any information or advice would be greatly appreciated.  I can provide further information upon request.
Thanks.
Attachments:
2methods.jpg ‏41 KB
method1.jpg ‏106 KB
method2.jpg ‏115 KB

Well, first thing, it would be a lot easier for someone to help you if you were to attach your VI to a post than to send those little pictures. Take out anything that is irrelevant or proprietary, fine. Please set up labels and scales for your axes so they reflect your data, don't just use the default labels and arbitrary scales. Taking a wag that your bottom "time" axis is scaled to the number of data points (0-9999) and your signal is actually a 500 Hz sine, you are actually only taking about 200 points per wave, instead of 600, like your VI picturette says. Even though you would certainly be above the Nyquist frequency for sampling, it throws everything else into doubt because you haven't described it accurately.
Second, if I were to also assume that the tunnel into your case structure is the array you want to get frequency from (here's where attaching the working VI comes in), you are feeding one point at a time into the FT or PS functions. With one point at a time, it'll be real hard to get any more than a DC frequency. You need to feed the whole array in for the spectral analysis functions, or at least a larger portion of it. You've just got a single point, followed by 2999 zeros, at least for the FFT portion.
Cameron
To err is human, but to really foul it up requires a computer.
The optimist believes we are in the best of all possible worlds - the pessimist fears this is true.
Profanity is the one language all programmers know best.
An expert is someone who has made all the possible mistakes.
To learn something about LabVIEW at no extra cost, work the online LabVIEW tutorial(s):
LabVIEW Unit 1 - Getting Started
Learn to Use LabVIEW with MyDAQ

Similar Messages

  • 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

  • Phase shift, frequency of 2 analog signals, Diadem 9.0 or 9.1

    I have to acquire 2 signals: FORCE (N) and VELOCITY (m/s) for many frequencies parameter in Diadem 9.0 (5 to 150 Hz). This frequency parameter is a analog voltage output signal which is converted in frequency by a frequency vibrator instrument. The measured signals on the vibrator (force and velocity) are considered as SINE Functions. – 1) How do I measure the output frequency of the two signals and how can I save this data ? – 2) How can I estimate the phase shift between FORCE and VELOCITY ? – 3) How can I automate the estimation of the phase shift by the 145 measurement (150-5Hz) ? – 4) Is a continue measurement of Phase Shift depending on the frequency possible ? – Best Regards from Germany and from France.
    Jean-Pierre, Junior Engineer Germany

    Hello KenT. I have test your DIAdem exemple. Your idea with a stop-time was not bad for measuring the phase shift beetween 2 generators by 1Hz. I have used this formula by many phase shift and it works. I had change the 2 generators frequency by 2Hz, and the formula works not anymore and that is normaly because of the reduce of the periode lenght (this problem have I show on Picture 3 of the PDF Data). On the picture 6 and 7 have I try to make another solution. My new solution works only for frequency from 1Hz to 5Hz. What about frequency like 150Hz ? I don't know if you have understood what I realy want to do, but if you have any idea to resolve my problems, please write to me. '[email protected]'
    Jean-Pierre, Junior Engineer Germany
    Attachments:
    DIAdemTexte.pdf ‏435 KB

  • Frequency analysis of vibrations

    Hey guys,
    I have a "little" problem.
    An emetted vibration is captured (with a laservibrometer) and the signal should be analysed so that
    the emitting source can be recongnised (Quality contol)
    How could I perform a frequency analysis of the signal in order to find out its caracteristics.
    See the example of signal below
    Thx
    Lauvia  LabView V. 7.1
    Attachments:
    test[1].vi ‏146 KB

    There are several FFT VI's.  Probably the best for your case would be a power spectrum.
    -Matt Bradley
    ************ kudos always appreciated, but only when deserved **************************

  • Continuous wavelet transform of vibrational signals (scalogram)

    Hello to everyone,
    I am a beginner in signal processing and I'm trying to perform a CWT of a vibrational signal, took on a IC engine, in order to better understand the differences existing with the time-frequency rappresentation. I performed the scalogram, but i do not understand why on the time axis i read wrong informations, that is, there are wrong values on the time axis. Is there anyone that can help me?
    Thanks to all.
    Attachments:
    Scalogram.png ‏51 KB
    Scalogram VI's front pannel.png ‏184 KB

    Thanks for the answer,
    I mean that i don't see the time values of the signal's time history.
    Are they the traslation factors used to perform the CWT?

  • NI-5122 measure trigger frequency of TTL trigger signal

    I have two signal channels and a TTL trigger signal on my NI-5122. The frequency of the tigger signal is between 5 and 30 Hz. Before I want to sample the two signal channels I need to know the actual trigger frequency to calculate and set sampling rate and number of sampling points. I use LabView 7.1
    What's the best way to measure the frequency (5-30 Hz) of the TTL signal connected to the 5122 trigger input?
    many thanks for your help.
    Markus

    Jason V,
    thanks for your help. So there is no programable counter on the 5122...
    My freuqency is constant and I need an accuracy of <1%.
    What I did meanwhile:
    I make a loop of e.g. 10 triggerevents.
    I record the times when the trigger events occur.
    After the loop I fit a line to the time vs. iteration number.
    This gives a pretty good value for the period, hence I get the inverse frequency.
    I need 10-30 trigger events to be accurate.
    For 10 Hz this makes 1-3 seconds init at the start of each measurement.
    I can reach a relative error as low as 1e-4. That's o.k.
    I did some more tweaking to allow for missed trigger events.
    The whole VI works fine to retrieve frequencies up to 100 Hz.
    For higher frequencies I am limited due to the millisecond resolution of LabViews 'Tick' vi.
    ====
    For higher frequencies I would program a counter:
    Start a measurement for 1000 scans and measure the time for that.
    However, this is not accurate enough for low frequencies and short recording times (10-30 trigger events).
    ====
    I also thought about Fourier transforming the signal itself and locating the peak frequency.
    Same as above: This is only accurate when I record many periods.
    ====
    The fastest and most accurate solution would be to sample the trigger signal itself.
    Then I would need only one period and could detect the trigger slopes with microsecond resolution.
    However, I need both input channels for recording simultaneous signals.
    Conclusion:
    (1) The NI-5122 does not has a programable counter on board
    (2) For my application I found a solution tht works.
    MarkusMessage Edited by Nepu on 03-09-2005 02:04 AM
    Message Edited by Nepu on 03-09-2005 02:07 AM

  • How to use wavelet transform in vibrational signals?

     plzzz....show the explaination of wavelet transformation in vibrational signals and also help me in understanding the waveforms......................

    I am not a wavelet expert, yet I would experiement with the example in the application LLB for engine knock.  In general wavelets are used to extract impact events in vibration signals. 
    Do you have a data file of your vibration data?  What are you hoping to detech?
    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

  • Frequency Analysis? How do I get frequency characteristics of a signal given in .wav format ?

    I am new to Labview would really apprecite your time and help...
    frequency Analysis? How do I get frequency characteristics of a signal given in .wav format ?
    I have attached the signal I am trying to analyze.
    Have nothing to offer in return but gratitude
    Cheers !
    Message Edited by Komal Khalid on 04-11-2010 10:59 PM

    If you have labview 8.x or 9.x you can do this. Go to help in the toolbar. Select "Find Examples" and then search for sound. Locate the "Sound File to Sound Output.vi" This example will help in your task. Remember that Labview is shipped with a lot of useful examples. That can help you in your learning process
    Good luck
    Ps you can also read wav files, and find examples  in Labview 7.x. But I do not know the name of the similar examples in 7.x
    Edit: Please use zip files then you are not able to attach files. Do not link to sites outside. The site you linked to was very annoying. Could not download
    Message Edited by Coq Rouge on 04-12-2010 02:38 PM
    Besides which, my opinion is that Express VIs Carthage must be destroyed deleted
    (Sorry no Labview "brag list" so far)

  • Sound and vibration signal simulator box

    When i am giving 0 to 5volt output from sbRIo to the  sound and vibration signal simulator box to control the speed
    the fan rotates very slow but when i a potentiometer present on board(manual control) there is  linear relation with the input and output...
    Max RPM being 6000
    when i give output from the controller previously it was running on 4000 after few days 3000rpm and then 2400 now its very low and almost 1000 RPM 
    may i know the solution to rectify this...

    If is the fan controlled by output voltage and you have corrected value of voltage, there is no problem in code but problem is with fan.
    Simyfren

  • Auto frequency increase of simulate signal vi

    Hi everyone. I am pretty new to labview. I want to increase the frequency to a simulate signal vi using array of numbers. the for loop should step through the array and output a frequency that will serve as input to the simulate signal vi every 5s changing the frequency from 10hz to 20hz, to 30hz and so forth until bout 1khz.
    attached is a vi i have written but something seem not to be accurate
    Solved!
    Go to Solution.
    Attachments:
    Frequency Simulator.vi ‏63 KB

    Hello marco73
    The red dot is the conditional terminal.
    You need to enable it for your for loop.
    To enable the conditional terminal, right click on the for loop and select "Conditional Terminal"
    Derick Mathew

  • How can i measure the speed of the fan in sound and vibration signal simulator box

    how can i measure the speed of the fan in sound and vibration signal simulator box
    provided the values  tach out:2 pulses/revolution and  maximum speed = 6000rpm

    Hi. I tried your suggestion and I could not get it to work well. In
    fact it worked better without the running average (which suprised me).
    I also played with the number of data points but still could not get it
    to work well.
    Do you have any other suggestions on how I could sort this problem out?
    I
    have attached a screen shot of the signal. To recap, I'm trying to
    measure the'y' position of the flat regions of the signal. The signal
    does not have a constant level, so this 'y' position varies with time
    in a non-unform manner.
    I am currently differentiating
    the signal and selecting the y position when the differential is equal
    to zero (within a tolerance band).
    In the screenshot, the
    signal has been zeroed using the method I have described above.
    However, it occasionally has glitches which may be caused when the code
    picks up a zero gradient at a peak or valley in the signal.
    I therefore need some kind of algorithm that only measures the position of the flat regions.
    Many thanks
     John
    Attachments:
    screenshot.gif ‏121 KB

  • 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

  • Saving and acquiring measurement state on vibration measurement

    Background:
    I use HP3566A which is multisignal spectrum analyzer. I used it to acquire and analyze vibration response from a machine.
    I would like to make an imitation of HP3566A by using DAQCard PCI-4451. I use LabVIEW7.1+SVT 3.1 to develop a dynamic signal analyzer (DSA) vi, and use windows XP as the OS.
    Problem:
    Until now, there is some facility on HP3566A that I could not develop on my LabVIEW. It is the facility to save the measurement state and call it back when I need it, then automatically set/configure the software. Measurement state is some parameters that are used control some measurement, such as: Span frequency, freq. line, Eng. Unit, measurement type (power spectrum, FRF, etc), trigger type, averaging, and so on.
    Right now, on my DSA.vi, to solve the above problem, I only can perform the saving data facility. So that, I can save the measurement state that is used on some vibration measurement. But still, every time I want to run my DSA.vi with that measurement state, I should manually type the measurement state to the front panel parameter. It is very inefficient and wasting time.
    Question:
    Could anyone help me to show the way in making a facility so that when I call the measurement state which has been saved before, the measurement state can automatically fulfill the parameter on the front panel?
    Thank you for your kind attention

    One common technique is to use a cluster control on the front panel of your VI with the configuration items you need.  You can store this configuration cluster along with your data, by placing the waveform data type as part of your cluster (or array, or whatever you are using to carry your data).  Use the file write function to store both the data and the configuration cluster. 
    When you read data back from the file, it has the config info in it.  You could use this to store test set-ups, etc. 
    You may also consider storing your test set-ups in a spreadsheet, then reading and parsing the spreadsheet prior to running a test. 
    One implementation of these functions is a LabVIEW application built with the NI tools, Vibdaq, www.vibdaq.com. 
    Hope this helps.
    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

  • 9233: Vibration signal contains dc offset

    Hai all,
        Am using cRIO 9012 controller and 9233 vibraiton module for acquiring vibration data from vehicle using IEPE accelerometers.  Data iam acquiring is not symmetric about zero and the FFT of this acquired data shows a dominent peak (than any other peak) @ .1hz which means that signal has a dc offset.  But from the specs 9233 has an ac coupling which means that dc signal should be filetered. Am getting problem in analysis due this behavious. Why is this behaviour? Can anyone help me out in this.
    Any quick response will be appreciated.
    With best regards,
    JK
    With regards,
    JK
    (Certified LabVIEW Developer)
    Give Kudos for Good Answers, and Mark it a solution if your problem is solved.

    Hi JK,
    The DC offset comes from the amplifiers and the ADC.
    You shouldn't have any useful data below 5Hz, so you can just ignore any bins that are 5Hz and below.  For idle channel noise tests (and others) we ignore any bins that are 20Hz and below.
    The DC offset is expected and you should ignore your really low frequency bins.  Out of curiosity, why are you worried about the 0.1Hz bin anyway?
    Hopefully this helps!!
    Aashish M
    Applications Engineer
    National Instruments
    http://www.ni.com/support/

  • Acquiring duration between peaks (noisy signal)

    Hello Experts,
    I am new to labview and I have been working on a VI on acquiring the duration between 2 peaks (real time). The signal source is human ECG/EKG (heart signal - PQRS). It has one huge spike and couple other smaller ones in every beat, and the signal is noisy. Now, what I am trying to do is just to get the duration between these peaks in real time (so it changes at every beat or it could also be the average of several peaks).
    Hopefully, I am not confusing any of you.
    I have spent a lot of time trying, but can't really understand how to use some of the available functions.
    If possible, can anyone of you post a simple example of how this could be done? (using sinosoid signal - with noise - as source would be enough).
    crossing my fingers!
    Thank you in advance!
    Solved!
    Go to Solution.

    zach843 wrote:
    I'm also very new to Labview and am having trouble following exactly how to piece together this program. I think I understand how to assemble it but don't know where to find all of the individual components in Labview. I've spent hours trying to hook it up and have yet to get a working version, is there any chance that you could post an actual VI for this? I'm also having trouble understanding how you run this program using dynamic data (real-time ECG) instead of a source generated one. Thanks
    Instead of HIJACKING a thread that is by most remotely connected to your problem. Start your own thread As a reminder good questions draw good answers. It very hard to see why and how you struggle. In the new thread you are going to start. You must describe your problem much better. Like what you have done so far. And posting whatever you have created as code. Is always smart.
    See if this will be a better forum for your post http://decibel.ni.com/content/groups/biomedical-user-group
    Besides which, my opinion is that Express VIs Carthage must be destroyed deleted
    (Sorry no Labview "brag list" so far)

Maybe you are looking for