08-25-2008 03:54 AM
Hello,
I have acquired a very long data set (app. 20 min) of vibrations and tacho-pulses which I want to analyse on the angular domain. Because the data is sampled at 100 kS/s and 500kS/s for the vibration and pulse signals respectively, I am not able to hold the 20 min data on memory to perform the angular resampling at once.
So, the solution could be to resample the data per blocks, for example to take 5 seconds data blocks for both vibration and pulses and do the resampling, then take the next 5 seconds and do the same and so on up to complete the 20 min. I would like to use the OA-Toolkit VIs to perform this, but bofore trying it I have some questions:
Q1: Do you think is possible to do this by using the OA-Toolkit VIs?
I know that the OA-Toolkit VIs use a set of filters for the processing of the pulses as well as for the angular resampling. Which leads to the loss of a portion at the beginning and at the end of the signal. This is at least the case when the OA-Toolkit VIs are used for in a single-shot mode. In this case the control "reset?" will always be TRUE, because there is only one call of the VIs. However I am thinking on set this control to FALSE for my application. So the question:
Q2: If I use the OA-Toolkit VIs and set the control "reset" to FALSE. Does this mean that I am not going to have the portion loss at the beginning and at the end of each sucessive data block? or equivalent: Can I append the succesive obtained resampled data blocks without loss of data inbetween?
Thanking in advance,
crimolvic
08-25-2008 08:19 AM
You have the right idea to "play" the data back in a continiuos manner for the OAT VI's to do their work.
In the Sound and VIbration Measurement Suite, version 6.0, we use the on first call function to automatically reset the resampling VI's (tacho, resampling, order mag and phase, etc.) and then not reset them subsequently. Historically, I used the loop iteration counter with a compare to zero to set the reset parameter to true on first iteration and false on subsequent iterations.
Hope this helps.
08-25-2008 09:38 AM
Thanks, Preston for the quick answer. So far I am almost ready with the application.
I hope to have news soon.
crimolvic
08-27-2008 07:52 AM
Yes, it seems to functions OK. Thanks again!
Just one more question. Suppose I read one data block (vibration and pulses) anywhere in the middle of the data play back (i.e. no data is truncated at the beginning nor at the end of the block), and it happens that a Pulse is on its high value right before the end of the block and it remains in this state till the end for a number of samples enough to be considered as a valid pulse by the OA Toolkit-VI. Then, on the next block of data, the same pulse starts on its high value (the data was acquired continuously), stays on this value for a while and then goes down again. As it is the same pulse which only was divided on two succesive data blocks, you'll agree that it must not be considered as a valid pulse on the second block. Is this precaution taken into account on the OA-Toolkit-VIs? I think it is, I ask only to be sure 🙂
Kind regards,
crimolvic
PS: I hope you understand my question. Unfortunately, my english skills are not as I'd like to be
10-09-2009 05:58 AM
Hello,
I have performed a long measurement (several minutes). I have saved the data as follows:
- the sampling rate was saved in a config txt file.
- the amplitude data was saved in several binary files, each corresponding to 1 second (i.e. number of samples = sampling rate)
Now I want to use the OA toolkit VIs in its online format to resample the signals in the angular domain. I am using the "Fast" analysis method and setting the "Reset(F)" parameter to FALSE. In a for loop, each second of data is read and formatted to waveform type, which is the input needed from the OA VIs. With this, I expect the last three pulses that are not used in each iteration of the for loop, to be used at the beginning of the next interation (see oa_Calculate Continuos Angular Speed.vi). This is because the parameter "reset? (True)" is -or should be- FALSE. However, I have found that, from the second interation on, this parameter has a value of TRUE, so that in each iteration the three last pulses from the previous iteration are not used, which causes the loss of continuity of the resampled data.
I have found
that the TRUE value of the parameter "reset? (True)" is originated in
the subVI called "svc_Check for Waveform Parameter Continuity (no
state)" and is particularly due to the determination of a discontinuity
in the parameter "t0" of the successive waveforms. As a workaround I
included a timestampwhen formatting the measured data to waveform type.
I start with a given timestamp and add 1 sec on each iteration of the
for loop (see picture 1 attached). However, this does not solves the
problem since the parameter "waveform parameter changed" on the VI
"svc_Check for Waveform Parameter Continuity (no state)" is still true
(see figure 2 attached). In this latter VI, I don't know why the
timestamp of the input parameter "expected waveform parameters" is
equal to the timestamp of the output parameter "next expected waveform
parameters". I would rather expect the former to be equal to the latter
minus one second.
Can you give me some advices on how to handle this issue?
Greetings
Cristián10-09-2009 06:53 AM
Please see the changed indicated in Fig3 attached. This change applied to the VIs
- OAT Analog Tacho Process (1 Tacho).vi
- OAT Convert to Even Angle Signal (1 Channel).v
produces the output of the "OR" to be TRUE only for the first iteration and FALSE afterwards.
10-09-2009 06:58 AM
I think you have the right idea on the reset feature. Internally, this is what happens if you leave it unwired.
Just make sure your total stream of data looks time continuous. In other words, there should be a constant delta-t between all data points in the stream. If you are sequencing thru binary files, make sure the transition from file to file also has the same delta t between files as in the files.
Good luck
10-09-2009 07:24 AM
Thanks, Preston for the quick answer and for the tipps.
It is still unclear to me why the "svc_Check for Waveform Parameter Continuity (no state).vi" does not recognize the adjacent waveforms as continuos. When I see the block diagram of this VI it seems to me it should function. In other words, why is the timestamp of the parameter "expected waveform parameters" equal to the timestamp of the parameter "next expected waveform parameters"?
Thanks again
10-09-2009 07:31 AM
The check continuity of waveforms inside the VIs is very strict. The best thing to do is double check that your t0 of the second file is exactly 1 dt from the end data point of your previous file.