Applying of FFT and Octaves analysis to an analog input

Is it posible to aply, in real time, with LabVIEW 5.0 an FFT and Octaves analysis to an analog input obtained with a Labpc 1200? If yes could you please give me a hinch? Thank you very much.

There is basic FFT analysis built into the libraries that ship with LabVIEW Full Development System (FDS). However I would recommend considering the Sound & Vibration toolkit as an add on for LabVIEW. This contains more complete FFT analysis solutions (including averaged FFT analysers) and has a complete range of octave analysis (full and fractional analysis).
The examples are very good and even if you haven't had much experience of using traditional boxed FFT/octave analysers you will quickly be in a position to have a good working application up and running.
This brings me onto the question of the board that you are using. Depending on the type of signals that you are working with, you may find that there are a number of limitations to using the Lab-PC-1200.
1. The board has only 12-bit ADCs which therefore gives a maximum dynamic range of approx 72dB. A 16-bit board would offer a wider dynamic range of 96dB while some of the dedicate signal/audio analyser boards on offer from NI have 24-bit ADCs and a dynamic range of 120dB.
2. If you are analysing more than one channel and are looking at phase measurements (i.e. stereo if it is audio you are acquiring) you will be limited by the architecture of the Lab-PC-1200. This board uses a multiplexer to switch from one channel to another. This will automatically insert a phase error into the measurements that you take. An example of where this might be a problem would be if you were analysing the response from two audio speakers, or trying to analyse the performace of an object to vibration using multiple accelerometers. Dedicated boards on offer from NI (NI 44xx range) have simultaneous sampling inputs and these get around these phase problems.
The analysis that you perform with such a board all takes places on the host computer i.e. your Windows PC. As such you comment "is it possible to apply, in real time..." will depend entirely on the specification of your PC. NI does offer a few boards that will allow FFT and octave analysis to be performed on the actual DAQ board itself (NI 45xx range of dynamic signal analysers).
So in summary, consider the Sound & Vibration toolkit and also consider the limitations of the Lab-PC-1200. It may not be the best choose - but if you are stuck with the board, you can still develop a suitable LabVIEW application and if possible upgrade the hardware sometime in the future (the code should not need to change if you change the board).
Jeremy

Similar Messages

  • Is there a roll-off with the SVT octave analysis vi's?

    I built a spectrum analyzer that displays 1/3 octave and narrowband data. I'm using the PXi chassis with 3 NI4472 daq cards. I noticed when putting in low frequency tonals (from function generator, amplified to 1 Vrms) the SVT 1/3 octave analysis vi has a roll-off associated between 10-100Hz. Narrowband (using power spectrum vi) quantifies the correct level extactly. I've noticed the SVT Octave analysis vi's roll-off the amplitude levels by as much as 50-60dB at 10 Hz. Does anyone know the solution to this problem.

    Could you post a sample of the code that demonstrates the issue? Are you applying weighting (A-weighting would apply a relative response of -70 dB at 10 Hz) to the signal when you do octave analysis?
    When I input a 10 Hz tone from a function generator to to AI0 of a 4472, I get consistent results between the power spectrum and 1/n octave (see attached results).
    Another thought, how did you implement 1/3 octave analysis? The 1/3 octave analysis VIs take an enum for the low frequency where the lowest frequency in the enum is 20 Hz. I had to use the 1/n octave VI which takes a DBL for the start frequency.
    Hopefully, some of this rambling helps,
    Doug
    Doug
    NI Sound and Vibration
    Attachments:
    Power_Spectrum_vs_1_3_Octave_with_4472.vi ‏67 KB

  • How to set the number of averages for doing octave analysis

    Hi
    I am using a 4472 DAQ for continuously acquiring time domain signal and doing octave band analysis using Sound and vibration tool kit. How can we set the number of averages while doing the Octave analysis. All  the other FFT vi like FRF, Auto Spectrum, Cross Spectrum have an option for setting the number of averages and then the vi runs for those many averages and it stops. How this same logic can be applied while doing octave analysis.
    Regards,
    Ankit

    Hi Ankit,
    You may want to consider using the VI in a for loop.  By wiring the "number of averages you wish to complete" to the count terminal ("N'), you can control how many times the VI runs.
    Hope this helps,
    Jennifer O.

  • Vibration octave analysis problem

    I'm measuring a vibration in range of 1-80Hz, according to Iso 2631.
    The problem is that I need the velocity information for each 1/3-octave bands. It should be expressed in mm/s. If fractional octave analysis is used it always ends up to psd unit (mm/s)^2. Using some basic fft-analysis the unit is correct (mm/s) but resolution is higher than 1/3 octave. Any ideas?
    ps. Is there any plans to develop a weighting filter needed by Iso 2631-2?

    Human vibration filters were added to the Sound and Vibration Measurement Suite in version 6.0 at the end of 2007 compliant to ISO 2631 and ISO 5439.   

  • FPGA FFT and filtering

    Hi, I have an application in which I need to collect a lot of (50+) narrowband spectral components from an analog input datastream. I am using a PXIe-7965R FlexRIO FPGA board and an NI-5732 digitizer adapter module. There are a couple of ways I could implement this, but I'm not sure which would be more efficient or plausible. The input datastream would be a 1D array of either 16kS or 32kS from the digitizer, and I would need to filter very specific frequency components out and sum them. Here are the options I was considering:
    1. Take a Fourier transform of the data set, then generate a binary mask to multiply with the Fourier transformed result, effectively giving only the desired frequency components. The product array could then be summed for the final result. The main problem with this method is that I have not been able to find an FFT IP for LV FPGA that supports 1D input arrays longer than 8 kS. Does one exist? Additionally, there is the question of whether a longer FFT could fit on the FPGA.
    2. Create a lot of time domain narrowband filters (Butterworth?) and sum the results of all of the filters. I am not sure if this would be less resources than the FFT or not. It would certainly be more cumbersome, considering I would have to implement 50+ filters on the input sequence.
    I'm very new to LV FPGA and FPGAs in general, so I'd appreciate any comments or suggestions anyone may have for my application.
    Thanks,
    Ryan

    Ryan,
    I do not have any experience with FPGA so I am not addressing those aspects of your questions.
    Have you verified that your numbers make sense?  When I read your question my gut reaction was, "Can this even work?" "Is there enough data in 16 K or 32 K samples to extract that inforamtion?"  What is the range of frequencies in the datastream?  What is the sample rate?  What is the required resolution?  Can two or more components ever be closer together than the specified resolution? (Even if you do not care about resolving them in this case, which you cannot, overlapping signals might complicate the analysis). Are the frequencies of the components known? If so, are the frequencies rational fractions of the sample rate?  Do any of the components vary in amplitude or frequency during one sample set?
    I think that an FFT-based system will be the way to go. Multiple filters with narrow enough bandwidths would be a real mess, hard to get working well, and not versatile.
    Lynn

  • Third octave analysis giving very close but in accurate results

    I am having troubles with 1/3 octave analysis. I have recorded a calibration tone of 94 dB in B&K Pulse and exported a time series that is Pa values, an AC signal of 1.414 peaks over a time period of 15s.
    When loading this CSV file and passing through the third octave module I get 94.6 dB at 1kHz and overall sound pressure of 94.6 dB. However the Labview output, especially in the lower bands, of the third octave anaysis are up to 10 dB out from the pulse measurement.
    The settings, averaging type (linear), weighting (linear) are the same and yet the values of the thrid octave output are very slightly different. I can provide code and the Pulse output - i wonder if anyone else has has similar problems?
    Any help is appreciated.
    Thanks Greg

    Hello Greg,
    I cannot say that I have seen a similar problem.  Which version of LabVIEW are you using?  Which Sound and Vibration option have you installed?
    There are several examples that ship with LabVIEW for Octave analysis.  Did you start with one of the examples from Example Finder to build your application, or have you created one entirely on your own?
    Providing the code would be helpful.  Please post the smallest piece of code that can be used to replicate the issue.
    Regards,
    George T.
    Applications Engineering Specialist
    National Instruments UK and Ireland

  • Third octave analysis of a blast signal

    Hi,
    I am trying to analyze one blast signal in third octave band. I am taking a narrow band power spectra of the signal and it is giving me the correct values, but when I am trying to do third octave band power spectra it is not giving me the correct results. I tried using the SVT octave analysis from sound and vibrations toolkit but still it is not giving me right results.
    The sampling frequency is 24000Hz.
    I am attaching the Vi and the file which I am trying to analyze. I am trying to solve this problem from 4-5 hours and still not able to solve this. Any kind of help will be highly appreciated.
    Thanks,
    Nitin
    Attachments:
    Power spectra and third octave.zip ‏1225 KB

    Hi again,
    I figured that problem out. but still I am not getting the values from 10 Hz, even when I am setting the low band frequency to 10 Hz. It is giving me the value from 20 Hz. I am attaching the new VI and the file.
    Thanks,
    Nitin
    Attachments:
    Power spectra and third octave.zip ‏3388 KB

  • Limit testing on frequency/band power (octave analysis) data

    I have performed an octave analysis and displayed the result in a regular XY-graph. The frequency appears on the x-axis and these values are not linear (they appear to be logarithmic). On the y-axis there is band power expressed in dB. I would like to perform a test to see if the graph falls within a certain region of the graph area. I would like to define this region using a small number (i.e. much less than there are octave analysis points) of XY-value pairs and then have LabVIEW interpolate in between these XY-value pairs to come up with a well-defined region in the graph. How can I do this? I'm using LabVIEW 8.2.1 with the Sound and Vibration add-on. I'd greatly appreciate any hints.

    Of course.
    20.3   -133.49
    21.5   -145.84
    22.7   -135.988
    24.1   -133.697
    25.5   -140.965
    27   -122.645
    28.7   -141.809
    30.4   -135.857
    32.2   -141.348
    34.1   -128.545
    36.1   -134.527
    38.3   -136.317
    40.5   -128.509
    42.9   -128.973
    45.5   -136.79
    48.2   -122.849
    51   -113.688
    54   -122.504
    57   -126.121
    61   -134.923
    64   -128.324
    68   -129.938
    72   -130.799
    77   -123.386
    81   -111.166
    86   -126.693
    91   -132.977
    96   -126.776
    102   -117.21
    108   -105.319
    115   -124.972
    121   -129.746
    129   -127.194
    136   -129.205
    144   -120.787
    153   -112.319
    162   -119.499
    172   -129.217
    182   -129.23
    193   -122.976
    204   -116.798
    216   -112.12
    229   -127.912
    243   -125.158
    257   -123.813
    273   -122.386
    289   -126.322
    306   -122.785
    324   -111.216
    343   -123.328
    364   -123.024
    386   -119.788
    408   -114.873
    433   -113.137
    459   -121.081
    486   -116.245
    510   -117.301
    550   -113.945
    580   -120.074
    610   -117.581
    650   -114.84
    690   -118.394
    730   -120.486
    770   -114.674
    820   -119.4
    870   -112.691
    920   -117.804
    970   -114.267
    1030   -120.331
    1090   -115.101
    1160   -118.436
    1220   -118.786
    1300   -114.236
    1370   -116.717
    1460   -119.648
    1540   -115.799
    1630   -115.615
    1730   -116.24
    1830   -115.901
    1940   -116.705
    2060   -115.644
    2180   -117.336
    2310   -116.209
    2450   -116.72
    2590   -115.973
    2750   -115.929
    2910   -118.224
    3080   -118.288
    3270   -116.533
    3460   -117.111
    3670   -120.187
    3890   -120.314
    4120   -120.923
    4360   -119.341
    4620   -119.149
    4900   -119.276
    5200   -118.173
    5500   -118.282
    5800   -118.231
    6200   -118.621

  • FFT and Overall Values Differ btwn VI and DIAdem

    Hi all,
    I have an application that displays live vibration readings including the spectrum and overall vibration level.  All my report generation is done in DIAdem scripts, so it's critical that any values calculated and displayed on the LabVIEW side match the values calculated and reported in DIAdem.  The attached VI and Script, when fed the input from the attached TDMS file, give me significantly different values for the magnitude of the FFT and overall RMS value.  Can anyone spot what I'm doing wrong?
    Thanks,
    Scott
    CLAD
    Solved!
    Go to Solution.
    Attachments:
    FFT and RMS Script.VBS ‏5 KB
    FFT and RMS VI.vi ‏39 KB
    VibrationSample.tdms ‏103 KB

    Hello,
    Here is a great reponse from R&D. I felt it would be better to place this on the web then keep it limited to your service request.
    The difference has to do with the Window-correction. The results are identical if you select rectangluar (or no) window.
    Usually a Window is taking a part of the singnal away, so in the first place, the result has a different shape and is smaller compared to result with rectangular window. This can be corrected with a specific factor for each window.
    There are two possible corrections. Random and periodic.
    - Periodic is used if you have pure sine-wave like signals and you want to measure the peak value. A typical use case is the flattop-window which is designed for this type of calculations.   The periodic correction is too large if you want to add the values to calculate the total RMS of the signal or of a the summation of a certain frequency band.
    - Random is correcting the signal back to the correct overall RMS value and should be used in all other cases.
    The periodic correction for the Hanning window is a factor of two. The random correction is about 1.633. DIAdem will give the same result as LabVIEW if you use the following correction type:
    FFTWndCorrectTyp = "periodic"
    In the world of FFT-analysis, the different corrections are very often not obvious and hidden to the user. Unfortunately this is also the case in LabVIEW. You can find a good example of an explanation here:
    http://blog.prosig.com/2009/09/01/amplitude-and-energy-correction-a-brief-summary/
    There are different factors for the different window functions. If you go deeper into the FFT-VI you will find the "Scaled Window VI". This has an output "window constants". With this, it is possible to get the correction values for the window functions.
    I also think, that periodic is wrong in most cases when Hanning is used, because Hanning is best for the summation of RMS values in frequency bands and the results are wrong without a random correction.
    Hope that helps.
    Jacob R. | Applications Engineer | National Instruments

  • Question about octave analysis

    Hello !
    I have the following question about the octave analysis vi's.
    When the single octave analysis is made, shouldn't there be 3 bands below 100 Hz ?
    According to the octave analysis subvi, the bands should be located at 16, 31.5 and 64 Hz.
    I've tryed to make a comparison between octave, 1/3 octave and 1/24 octave.
    It seems there is no difference.
    I'm running LabView 8.5.1 with SVT 6.0 on windows 7 professional.
    This is not happening. See the attached vi for an example of the problem.
    P.S. : The file Engine runup is a sample. please rename extension to WAW.
    Thank you.
    Attachments:
    Engine Runup (mic).wav.jpg ‏235 KB
    Sonometru.vi ‏330 KB

    I also have problems with octave analysis, I'm making the acquisition of a pink noise from my audio card and checking the response curve through an analysis of octaves, to obtain a flat response curve, I need to set a number of samples of at least 88200, but this way I can not get a high-speed acquisition, only about one aquisition/second, putting a value of 2000 samples the speed is adequate, but the response curve in octaves loses response below 1000 Hz gradually until around 20 Hz is practically nil, I need help please.
    best regards.

  • How to make third-octave analysis program?

    "I want to make a program which can do Third-Octave Analysis. But I haven't any DAQ device of NI company. I use a DAQ device of Nicolet company. That device can tranfer the acquired data as a file to a computer, and then I can use a software to transform the data into ASCII format. The DAQ device hasn't an anti-alias filter. How can I make the program with LabView? My version of LabView is 5.1."

    The task that you are inquiring about could become quite complicated. for
    example, if you are performing acoustical analysis then frequency and power
    become your primary points of interest. However if you are performing
    analysis of shock and vibration then additional processing will be required.
    I would recommend that we take this off of the news group and work direct.
    I can be reached @ [email protected]
    remove no_spam_ for real address
    Mike
    "stewart342" wrote in message
    news:[email protected]..
    > The DAQ device of nicolet is called 'vision'. What I mean is how can I
    > make a VI to get the analysis result from the data acquired. Because I
    > am not good at LabView and signal
    processing thoery, I hope you can
    > give me a brief example. Though the device provides a filter, the
    > cutoff frequency is not arbitrary. So another question is: If I don't
    > use an analog anti-alias filter, can I use a digital filter instead?
    > The raw data I've got is in ASCII format. The first column is the
    > time, and the following columns are the signals acquired from each
    > channel. Supposed the data haven't been filtered by the anti-alias
    > filter.

  • Vibration fractional octave analysis

    Please provide support!
    How can you analyze acceleration data g's or m/s^2 from an accelerometer text data thorugh the fractional octave analysis on labview, I've tried a lot of stuff like scaling the units but the fractional octave analysis gives -INF result that is actually not true. Also I've tried moving the range of the frequencies and nothing happen, please let me know if some of you have some idea on how to analyze .TXT acceleration data through the fractional octave analysis
    I'm Attaching the TXT file that I'm trying to analyze
    Please Help!
    Attachments:
    sample.txt ‏3364 KB

    Hello Anuar
    Thought nobody will help on this matter, thanks a lot for your reply, here is a little background, I acquired a signal from an accelerometer at a sampling rate of 10 Khz during 30 seconds, the attached text data posted before is an actual reading from the application, the problem tham I'm dealing with is that over the frequency range from 20 to 20,000 hz I have no values for my fractional octave analysis (attached VI), actually what I'm trying to do is to go from accleration to decibels, thats why I'm doing the fractional octave analysis. Please let me know what I'm doing wrong.
    I'll wait for your response
    Thanks a lot
    SergeArmz
    Attachments:
    Fractional Octave Analsys challenge 20-may-2013.vi ‏29 KB

  • Fractional Octave Analysis

    My current application reads from six microphones in a reverb room, averages the signals and reports the data as a single source.  In the interest of tonal diagnostics we would like to be able to record data in full and 1/3 octaves at the same time.  Since I could not find a single vi in the sound and vibration tool-kit that does this I wrote a quick program that processes the same signal through the SVT Fractional-octave Analysis.vi, one defaulted to read full octave and the other is user selectable but will generally be used to read 1/3 octave.  My issue occurs when I go to check the accuracy of the readings, it is my understanding that the log sum of the bands for the 1/3 octave for example should equal the value given for the frequency in the full octave band.  So if i look at 50, 63, and 80 in the 1/3 octave band their sum should be the value given at 63 for full octave band.  I'm using the equation Lp = 10*log(10^(L1/10)+10^(L2/10).......+10^(Ln/10)).  A set of readings I've taken looks like this:
    Full Octave
    63 - 43.6
    1/3 Octave
    50 - 37.3
    63 - 37.3
    80 - 39.4
    Lp = 10*log(10^(37.3/10)+10^(37.3/10)+10^(39.4/10))
    Lp = 42.9
    My calculated value of 42.9 and read value of 43.6 are close but I don't understand why the discrepancy is even there if its off the same signal.  Any suggestions?  I know this is a fairly long post, thanks in advance.
    LabVIEW 2012 - Windows 7
    CLAD

    Hi MeCoOp,
    The reason for these discrepancies is because of how octave analysis is implemented. Doing a straight sum of the bins assumes a brick wall filter between the different bands whereas in actuality these filters have skirts. These skirts overlap and to sum up the powers would need to take into account these filter characteristics. Since these skirts level out over an infinite bandwidth, you'll see that the power amongst the whole signal is the same when calculated as either full octave or 1/3 octave.
    For more information regarding Octave Analysis and the ANSI/IEC standards, please look at this link.
    http://zone.ni.com/devzone/cda/tut/p/id/101
    PBear
    NI RF

  • Octave analysis of frequency domain data in SVT

    Hello!
    How can I make the octave analysis of frequency domain data in Sound & Vibration Toolkit?
    Thanks,
    Alfrednovi

    Hi!
    To make the octave analysis of frequency domain data you have to pass in your time domain data to the Octave Analysis VIs. The time domain data will allow you to window the signal using the correct values.
    The Sound and Vibration toolkit has several examples that show how to do this. You can find them under Help>>Find Examples and then browsing to Toolkits and Modules>>Sound and Vibration. This directory has Traditional DAQ and NI-DAQmx examples as well as Octave and Third Octave analysis.
    You can also look for other examples using the Example Code Library.
    Good Luck,
    Tica

  • Data Federator data lineage and impact analysis

    Hi,
    I am looking for the use of data lineage and impact analysis feature in data federator at Universe level.
    Can I know which objects are using which fields by uisng impact feature in the data federator.
    Thanks in Advance.

    I realize this answer is a cop out but I'll suggest it anyway. Upgrade.
    I struggled with getting the lineage and impact analysis working in 10.1 and had to do quite a bit of trial and error in the Apache configuration files, DAD's ,etc. because the lineage reports were web based. I never got them working in Production due to other much more pressing implementation issues at the time and never went back to fix them.
    In 10.2 and above the reports are much easier to get with no real configuration needed.
    Anyway, back to your question, I would suggest going back through the 10.1 documentation on getting those to work and have someone a bit familiar with setting up Apache help you. I did get them working in our Test environment but its been so long I can't recall all the steps and tricks, sorry.
    -gary

Maybe you are looking for

  • Help on CAST function, defining TYPE TABLE and using a REF cursor

    Hi, I have written a procedure (lookup) inside a package (lookup_pkg) as shown below. Procedure has an output variable of type PL/SQL TABLE which is defined in the package. I want to write a wrapper procedure lookupref to the procedure lookup to retu

  • How to create an installati​on CD using LV 8.0?

    How to create an installation CD using LV 8.0? I want to create an Installation CD so I can install the LV application to an user computer. Thanks a lot

  • Expiry date and availibility date

    Hello, I am trying to base a sales availability check (on sales orders) on various sources of stock (stock and purchase orders) which have to take account of an expiry date. How can I put this expiry date on purchase oders so that the availability ch

  • PC- MAC external hard drive

    have an external hard disk that I used on an old laptop that ran Windows Vista.  It won't work when I plug it into my iMac - can I do anything to get it to work without losing the data on it??  Thanks

  • Abot function module

    hi friends, i used a FM in program then i copy that FM in other Group but when i try to activate it . It display a error message i.e ( REPORT/PROGRAM statement missing, or program type is I (INCLUDE).          ) how i solve this problem. kindly help