Filter for waveform data

Hello world

I'm trying to filter the noisy analog inputs of 10 channels (DC). I'm sampling of 100 samples/channel at 1000 Hz. My idea is to filter the data with a low pass filter (cut to 10 Hz 3rd order butterworth low freq) and then to calculate the average of each package of 100 samples. Finally, I would like to receive values at a rate of 10 Hz, which can be displayed on the front panel and be written in a file of measures.

My problem is the following:

The Express filter VI does not filter continuously after that the VI began. It seems to reset each time the loop runs. The table of 100 samples (white) before and after (red), the filter appear in the image "filterResponse". If I take the average of this table, it is of course less without the filter due to the transitory values between 0 and 0.025 s. I built a simplified version of my VI with only one channel using the VI "Simulate signal" and my concept seems to work well which is permanently (see "filterMeanExample.vi"). I get the idea that it might have to with the kind of dynamic data that is supported by many express VI. But since I'm on the VI KEITHLEY, I do not use the type of dynamic data. In fact, I had to convert a waveform data type to get a vehicle appropriate for the file of the measurement of its release.

I wonder how to keep the filter VI of reset each time that the loop runs.

My VI is rather large and contains the KEITHLEY 'Acquire signals' VI which most people do not have in their libraries, so I decided to show only the images.

Thanks for your help!

Phil

System: WinXP, LabVIEW 8.2.1 Professional

Thanks for the tips, I am set!

I used the VI of butterworth filter in the tool box to filter on the Panel of the Signal processing that accepts the type of table data. I put the variable ' init/cont' true to prevent the filter to reset its initial States to 0. I guess, it was my real problem before. The Express filter VI doesn't have this option, so I wasn't aware of this feature.

However, an image of the current value is attached.

Thanks again,

Phil

Tags: NI Software

Similar Questions

  • Filter for table data, the range of data obtained and defined 2D

    I produce data of an ultrasonic sensor at 1 K Hz, and there is a lot of data (data points range of 0 to 10). However, in some cases when I know that the data should be about 7 (for example) I get outliers (about 9 and 10). Is it possible to define a filter for data in the defined range.

    I averaged the data to get an average value, and outliers are distorting. In the worst case, my outliers are 30 to 40% of the data generated. I created a filter to sort the data and, taken from the lowest value. I stop the loop when data reaches a value greater then 9. But this seems to take a long time (because the loop checks for each data point and there are 1000s of them).

    Is there a better way to filter data and define a predefined table range to collect?

    I enclose my filter.vi... and a set of samples of my previous data. The ranges of data of 10-8 and would like to have the range 7.5 to 8.5 to consider. The sensor records tension here and the problem can be solved by installing a different type of sensor, but if a filter in LabView can due it, the sensor that we use now is absolute.

    I am in kind of emergency, my design in unfinished because of this problem, if someone can find some time to share some suggestions, I will be grateful.

    Thanks in advance.

    See attachment.  I have incorporated the data you've posted in the vi.  It doesn't seem like any data were less than 8.7 or so, so I modified the scope so it would be a few points on average.  Some games were completely out of reach while the average came back like NaN (not a number) due to a division by zero.

  • How to extract a D 1 waveform data in different channels to use for calculations on a page of data in real time

    Hi all

    I am a fairly new user to Labview and am trying to create a program that: watching the entries in different modules (9213, 9217) CompactDAQ sensors check errors and then uses data from some final calculations like averaging etc.  I've set up a small piece of code that includes the main functions that I am trying to accomplish.  Now I'm rather uncomfortable with getting set up and assigned channels, then pass these data in a while loop that continuously pulls the data from these sensors.

    I have the vi calculations complete and complement the inputs of channel UI, now, I'm working on the side of data manipulation and reading things.  The waveform D 1 who comes to read function is currently divided into components I want (given String Name and Y).  He then transmit this information out of the loop via a queue which transmits to the parallel loop below that will perform the verification errors and calculations of average.  There are some things that make it difficult. I showed the 2 sensors in my example, but in the actual program, there may be up to 400 entries.  The problem is that not all of these sensors will be used on all the tests that the software is used for.  To use the entries in the VI test for example: if I'm trying to the average of these 2 entries to create a common value, but then on a test, sensor 2 is not there, it must be recognized that fact and not use it in the service average.

    So to get down to it, I want to create something that can look through the D 1 waveform data groups, determine what these values are, then perform the functions necessary for these numbers once they are identified, then pass on the calculations of VI where it displays then usable for user information.  I think I'm having a problem with the finding in sorting than what I thought at makes me think that there must be an easier way.

    If someone has encountered this?  What is my explanation of what I'm trying to make sense?  Let me know and I can clarify.

    In terms of features, I don't see anything wrong. with respect to the effectiveness we must remember some general indications. These issues that I bring to the top will not affect your code now since your stack sizes are very small but can start to create the fragmentation of memory and slow down the software if your stack sizes are much larger and the software runs for a long period of time.

    1. try not to use the table to build. Whenever you use a table built labview creates a copy in memory. Try to initilized your berries and replace subsets.

    2. as much as you can try not index tables or unbundle cluster several times. try to perform as many tasks as possbile in one shot. (what was obvious in your second loop)

    In addition, he's looking good.

    I made a few changes to your code and attached to it. I wanted to give you a different on her opinion as it relates to being able to control entry and exit of programitically, if you had a look up table. I do not have the same changes to your second loop but I can guide you through what to do if you do not want to go in that direction. Yet once your original code is well done for someone who is new to labview, so don't feel you need to follow the new design of VI. Just try to remove the table construction and multiple indexing as a good habbit programming.

  • problem with the history of EEG waveform data

    Hello world:

    I use SIT to create a user interface in Labview to communicate with a simulink model. After I configure the SIT connection manager and run the vi, the output was displayed in waveform graph.

    Now, I want to get all the data in the history of the map of waveform. I tried to use the graphic story property node to access the whole of the historydat. But nothing copied in the part of Y in the front of the cluster of waveform...

    Can someone give me a helping hand on what is the problem? or has anyone encounter the same problem when you use SIT.  I am really confussed...

    I've attached the vi, but to run the vi, you must have a simulink model corressponding and SIT, so I'm really sorry that you can not run it

    And thanks a lot a lot a lot for that.

    / Shangning

    I just realized this data is a 2D waveform table, which contains the waveform 2000 * 1, and each waveform data contains only 1 value of Y.

  • get the timestamp of waveform data

    Hi all

    I'm coming out of the timestamp from waveform data if this is possible. I am writing to file, but the express vi does not allow for fractions of a second and when I write a string waveform data for use with writing to the worksheet, the data of time is lost.

    any suggestions?

    Use Get waveform components. What part of VI? Writing to a file of measure written fractions of a second.

  • Process of waveform data (accumulated results)

    Hi all

    I am currently treating a waveform data that I read of DAQ card. Data are digital waveforms, so first I convert it to table DBL and then put the table in a block of prcessing (see attachment). Since I expect to get a report and indeed I got what I want at the first time. However, when I re - run the program, obtained results. for example the first time I got 0.5, then when I re - run the program, I expect to get another 0.5, however what I have is 1. If I keep running again, he continue to accumulate.

    Can someone tell me what's wrong with my program? I have attached a screenshot of the code and also the vi that I used to do the processing.

    Thanks in advance for your help.

    Main program:

    You have an uninitialized enter your last registry FOR loop to shift.  Initialize to 0 and you should be good to go.

  • Question on waveform data

    What is the difference between waveform data and common digital data? Whenever I have do analog data acquisition, the Board always wonder if I want to put the data acquired as a waveform or DBL type. For a specific data source, there is large difference for the two choices? If I chose to acquire waveform data, how to set the sampling frequency? I mean what I will get in a "waveform sample? Will it be a number or a set of numbers that contributes to a "wave"?

    Thank you!

    Right. A waveform data type can also have attributes assigned as the channel name. Read the help for a complete description.

  • I need a 50 Hz low pass filter for a 6 X 6 matrix

    I want my plate strength of the signals at 50 Hz to low-pass filter. I don't know how to apply a filter with my data types?

    Any help would be appreciated.

    See attached file

    I do not attach controls or subvi

    Thanks in advance

    Index on the channels you want filtered and run through 6 different copies of the VI filter.  You might be able to make the reentrant filters.  If so, make sure that all of the subVIs are reentrant also.  If your data acquisition is not continuous, look out for the transient filter.

    Although your speed needs are not too high, I move all the signal processing (zero, calibration, filter,...) and show the loop of consumer and have only the acquisition of raw data in the loop of the producer. If the treatment and the display can slow things down in your current configuration, you may eventually lose data.  With treatment in the consumer, the display or recording might be delayed, but you won't lose data.

    Lynn

  • Access waveform data passed in a DLL

    Hello

    I'm working on a LabVIEW application that processes the continuous stream, 2 ms/s, 32 analog input channels, each channel. This application has a DLL built in order to improve the table great handling performance in LabVIEW. Initially, I fed the DLL with a double 2D array returned by DAQmx Read VI and worked on a controller embedded high performance. However, the new requirement is, I need to treat timestamps as well as each Read call to HAVE him, and that's why I need to feed the DLL with the waveform data returned by DAQmx Read. Output waveform contains the timestamps I need.

    The problem is, I don't see an easy way to access the data of waveform within the DLL (developed using Visual Studio C++). The type of waveform data seems to be a C++ class, and who looks like I need to add a considerable amount of code to retrieve the data within the class of waveform.

    My question is, LabVIEW naturally does support access to waveform data in a DLL and if there are examples of code? I understand, I can you can also process outside the DLL waveform data and feed the DLL with the array element in the waveform data. However, I have concerns about whether if performance will be significantly affected.

    Thank you!

    Donghui Yin

    Doy says:

    Sorry for the incomplete design details. If you are interested, I have used high cards, not PXI. This is why I don't have a problem of bandwidth PXI. Special assistance, I need right now is the note, 'External Code in LabVIEW using' manual on Page 2-7:

    "Note waveforms, digital signals and digital tables can be passed through shared
    "libraries, but access to the data inside shared libraries is not supported at this time."

    Thank you.

    I think that the text is clear enough! There is no documented API for access to international it data waveform within an external code module. The generated data type the node in library call for such a parameter is HWAVE or something, indicating that it is an opaque handle whose implementation details are deprived of LabVIEW. Since there is no documented API for access to her international of such data there is simply no way to access it.

    And I didn't know all the functions that are exported in the LabVIEW executable that I could easily connect with the waveform dataype. Even if I had, we still do not know the prototype (aka list of parameters and types) of these functions.

    Your only viable solution is to work with the data types supported. Your C code, or possibly the LabVIEW (table handles) native data type, either passing data in table C. else pointer would require reverse engineering of disassembly, a legally questionable approach, but also a lot of your time. And everything you would find this way I would be very hesitant to use in what feels, walks or crawls like a real-world application, since you can't be sure that your conclusions will work for any situation. It is also likely that your results will depend on some attributes may change between versions of LabVIEW.

  • determination of the sampling rate and the frequency waveform data record

    Hello

    I write a simple program that collect data from a triaxial accelerometer input, convert it to a frequency spectrum, and then save the time domain and the frequency of the waveforms in an external file separated.  I don't understand how to set the sampling frequency, however.  On the DAQ Assistant, I updated the acquisition mode "Samples continues" and read samples is 2 k, which corresponds to the total number of data points that are collected.  How can I program sampling for awhile, it 30 seconds, for example?  Wouldn't be better to set up a trigger, as it will continue to collect data up to what I told it to stop?

    I also want to save waveform data in a separate file that can be easily seen by other computers that have not installed Labview.  I have currently the program put in place to convert a text string of the waveform of the time domain and then save it in a text file or a spreadsheet.  It works fine, but I would also like to record the frequency wave, which is a different type of data.  How can I do this or is there a better way?

    My program is attached.  Thanks for your help!

    Here's how you can use the shift register to build the table, and also where you can choose to play exactly 100 samples per while the loop iteration.

    Brian

  • I put the filter for my file flat source?

    Hi all
    Please help me with best practices of ODI.
    My source is the flat file and I want to put the filter.

    I put the filter for my file flat source? If so, please help me with best practices from the application of the filter.

    Concerning
    Suresh

    Hello

    If you try to create--> Datastore model---> filter---> Insert condition
    then it will not work for files technology. You will get "Invalid Format Description"

    But you can specify a filter in the interface.
    Just drag the columns in your flat file of data store into the canvas and then specify the filter condition.

    Thank you
    Fati

  • Filter for the bearing column week on number of possibilities

    Hi all - I am trying to create a report that shows the number of projects for the past weeks 13 with a column for each week.

    I can get the correct filter for the current week, but I don't know how to revise my expression sql for the previous weeks.

    I use the 'In between' operator on the column of date with the following sql expressions:

    TIMESTAMPADD (SQL_TSI_DAY,-(DAYOFWEEK (CURRENT_DATE)-1), CURRENT_DATE)
    and
    TIMESTAMPADD (SQL_TSI_DAY, 7-DAYOFWEEK (CURRENT_DATE), CURRENT_DATE)

    As I said, this works to get the data for the current week. Does anyone know how I would revise to search beforehand for the week or two weeks earlier?

    Thanks for any help!
    Lacey

    Hello!

    If I understand correctly, you want to get a report showing the number of project per week for the current week and 12 weeks before? But according to what date? The date of project creation (I guess you have a field like that)?

    In this case, you will need to place a filter by saying something like:

    Where "Date of creation" between "Current date" and "Date of the day - 12 weeks.
    * Date Opened. Date BETWEEN TIMESTAMPADD (SQL_TSI_WEEK-12, CURRENT_DATE) AND CURRENT_DATE *.

    I guess you'll have to use the TIMESTAMPADD function with interval SQL_TSI_WEEK, the current date and the value 12.

    I tested the service request creation date to have the number of service request for the last 5 weeks, it worked...

    I hope this will help, do not hesitate to ask for more!

    Max

  • iPad IOS 9.3.4 (with GPS) air 2: using Skydemon (used for the flight) gives "Waiting for location data", as the error

    I use my iPad 2 a air application during the flight of an aircraft (Skydemon) for flight and my flight plan.

    Most of the time it works fine. Yesterday, I received an error "pending for location data. seems dat that GPS does not work correctly. I've recently implemented in the latest IOS update.

    Don't know

  • Automatic switching of WiFi in the cell for the data not work, requires a restart of the phone

    The phone is a peak of Geeksphone, and the version of the operating system is 1.4. The problem is with the automatic switching of the WiFi to cell for my data. If I take the phone outside the WiFi range, it does not acquire the data (2 G, Edge, H or 3 G) signal and so I have no data. I left for hours without success. The only solution is to reboot the phone, then outside the configured WiFi connections and it will collect data signal. When I re - get the WiFi area, it captures the network and without problems.

    I also had this problem with version 1.1. I upgraded to think it could be fixed, but he did not.

    Thank you, Ralph. There was an update available which appear not yesterday. After the installation, I get the options that you quote, namely to turn the cell data in the notification area. Thanks a lot for the tip and the quick response.

  • How to create a Subscriber variable to the network & OnDataUpdate for Variant data type?

    Looking at the example C:\Documents and Settings\All Users\Documents\National Instruments\MStudioVS2008\DotNET\Examples\NetworkVariable\Basic\cs\Subcriber.2008, how can I create a subscriber to the network variable and OnDataUpdate for Variant data types?

    All tracks will be useful. Thank you.

    I solved it by using the correct data type in .NET, for example an sbyte to CVIInt8.

Maybe you are looking for

  • My memory of passwords is grayed out, how can I change this?

    I have a new installation of the program, but I can't select the backup option because it is grayed out. How does this ungrey so this will be memorized my password and logins?

  • How to cancel membership on music

    Can how I cancel my subscription to music to iTunes?

  • Computer upgrade

    Dear Sir/Madam, We want to upgrade our computer windows Xp to the latest system, due to the current distribution of may PC, at any time. That is why we must advise what kind of PC is intended for the purchase? We use LabView 8.2 to our traction machi

  • Error Code 1335 when installing Print artist Platinum

    I am trying to download Print artist Platinum and get the error code 1335.  Suggestions?

  • error 0xC004E002

    A friend has a laptop, it's a Toshiba, and it has vista installed 6001. After selecting the connection of the user the computer indicates 0xC004E002 error has occurred. Retail stipulates that "the software license Service reported that the license st