LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

Read & Filter Multiple .wav files, Export Filtered SPL

Hi

I'm searching for tips on how to use LabVIEW to read multiple .wav files, then filter them, then export just the calculated SPL values to a "database friendly format".

Basically I want a solution that allows me to point to several files, then press a "go button" that triggers LabVIEW to produce filtered SPL values as exported data.

I'll skim over the cal approach since I'm confident most readers know how to handle it. Basically, though, for each 30 s .wav file of broadband noise, an associated cal tone file is used to determine the dBFS value (dB below Full Scale) to be associated with 94 dB SPL, or 114 dB SPL, as the case may be. I'll leave it at that.

Detailed Requirements, (excluding cal steps, tho).

1) Operates on up to a dozen 30 s time records (44,1 kSa/s, mono .wav files);

2) Passes the signal from each desired .wav file through 18 of the 1/3 octave filters (IEC 1260 compliant, as in the S/V toolset) not necessarily in real time!;

3) Calculates the SPL for each 1/3 octave filtered time record; This makes (12 files) x (18 filters) = 216 filtered SPL values if end-user points to a dozen broadband noise files before pressing the "Go" button;

4) Exports SPL values in a suitable database format; an existing database does the rest of the mathematics and report generation;

Client FileMaker database functions include:
- import and store 1/3 octave filtered Leq(30) SPL values;
- average filtered SPL across the declared qty of mic positions of the present test case;

NOTES:

1) In the field, we do NOT use simultaneous / MULTI-mics. Instead, it is absolutely an "open and shut case" that the optimum process is to move one (1) single mic quickly from spot to spot. While holding the airborne noise at a constant level we position the mic at each spot for 30 s to feed the .wav recorder, then move on. We emerge from a typical day of field activity with, say, 60 to 100 .wav files to post-process.

2) (1), above, explains why we don't use any N.I. DAQ h/w.

3) LabVIEW, it seems, exports best to a spreadsheet, so if needed, I'm prepared to handle manually any ugly conversion from LV's format to a proper database format ("1st Normal Form, 2nd Normal Form, etc.).

4) Given a choice to calculate the averages in my database, versus in LV (say, to cut down on exported data qty), I'd likely opt to export the 216 SPL's and then do averaging in the database, (where the ASTM E336 reports are done).

TIPS Gathered To Date:

1) S/V toolset has IEC 1260 compliant filters, BUT...

2) If you use the S/V toolset VI's, then you CANNOT ACCESS the filtered time record NOR CAN YOU WRITE the filtered data back to a .wav file! All you can do is measure the filters' outputs. Fortunately for us here, the available measures include SPL.

Aside: Although not a show-stopper in this project, this constraint is surprising, nonetheless. To access & record the filtered sound, you'd have to either (a) ask N.I. to unprotect VI's, or (b) develop your own IEC compliant filters from N.I.'s published tap co-eff's etc.;

3) LabVIEW does not support drag'n'drop operations on files. Instead, the recommended technique is to use multiple "Browse to/ Navigation/ File Open" panels to allow LV to open the user's desired qty of .wav files simultaneously;

Thanks for any tips!
0 Kudos
Message 1 of 4
(3,888 Views)
The filter VI is password protected in the Sound & Vibration Toolkit (SVT) for two reasons. First, since the filter is compliant to a standard, by locking the code we guarantee that no one has the chance to accidentally change it so that they are no longer compliant. Second, the method of filtering the data is considered intellectual property that we are protecting.

That said, from reading your post it does not appear that you need to have access to the filtered data since you are making an SPL measurement which is provided in the Sound & Vibration functionality. Is that correct?

Also, I wanted to point you to another subVI which comes with SVT but is not in the pallette that might be of use. There is an example for SVT which is SVXMPL_Wav Power Spectrum which opens up a wav file and computes the power spectrum of it. Inside the VI, there is a subVI which will open a Wav file and convert it into a waveform which you can use with your SVT functions.

Hope that helps,
Jack
0 Kudos
Message 2 of 4
(3,828 Views)
Hi

I am just wondering how to play multiple .wav files using the 'SVXMPL_Wav Power Spectrum' example given in the SVT. I am saving my vibration data into .wav files and now i am trying to open multiple .wav files at the same time and displaying them on the same graph. Pliz help me out
0 Kudos
Message 3 of 4
(3,617 Views)
Please see your other post:
http://forums.ni.com/ni/board/message?board.id=170&message.id=177488&jump=true#M177488
Thanks.

0 Kudos
Message 4 of 4
(3,608 Views)