12-12-2008 11:53 AM
I need to measure the following.
I need the to measure the impact sound of a ball hitting a floor. I need to have averaging set to logarithmic set to 125ms and then capture the peak levels in each third octave band. The problem is the third octave filter you have to choose between exp averaging or peak, you can not do both.
In the past I did this by creating a loop and retrieved the data from the daq card every X samples and performed the log avg and then checked to to see if the new value was greater than the previous.
However we are now recording all measurements to UFF so that we can reprocess the data at a later time if we want. However I found using the above process took an extremely long time to process with UFF files. (5 sec measurement was taking over 90 seconds to process). So I create a new vi using a different approach.
I am using the SVL Exp Avg Sound Level (set to 125 ms log avg) before I put the signal through the third octave filter. It works very fast however the results are not the same, they are greater than I expected.
Does anyone have any hints on how to approach this.?
Tim
12-15-2008 01:20 PM
Tim,
Could you post screenshots of how the data differs? Also, you might think about instituting a Producer/Consumer setup for the File I/O portion of your code. This will separate the data acquisition and processing tasks from the file I/O, which should help speed up the process.
Also, I'd recommend looking into the standard causes of slowdowns, such as creating DAQmx tasks within a loop repeatedly or opening a file within a loop. Instead, open the task and file before entering the loop, write in the loop, then close after the loop.