Average several n-th octave spectra

I need to average the n-th octave spectra (3rd or 12th) from several (2 to 8) microphones to get a spatial average of the spectrum in the room. Is there a function in Labview that does this or something in the S&V toolkit? Thanks!

I don't think that there is an out-of-the-box solution for your task but if I understandd you correctly the only thing you will have to do is to average the power associated with each 1/n octave band of all your microphones. In the S&V toolkit the band power is an output parameter of e. g. the SVT Third-octave Analysis.vi. The band powers for each channel are stored within arrays so you will simply have to average the corresponding array elements from each of your channels.
Best regards,
Jochen Klier
National Instruments Germany

Similar Messages

  • Does anyone know how I can average several waveforms?

    I am trying to filter a nasty square wave,without affecting the rise or fall times of it. I have tried standard filtering, which helps with the noise, but is destructive to the rise and fall times. I have also tried taking the median of the signal, which is effective to a point, but I would like to try taking several single cycle or multiple cycles and averaging the the group of captured cycles. Just so its clear, I don't want the rolling average of each of the cycles, I want the point by point average of the group of averaged signals, as if they were laid on top of each other and each point is then averaged. Can anyone help me with this? I will attach a waveform example below, 3 captured cycles in wdt form,
    just in case anyone has any has any good ideas about filtering without affecting rise or fall times.
    Attachments:
    0_to_31_1deg_open_1_gain ‏119 KB

    The signal is a square wave with finite rise and fall times that vary depending on grey level. The rise time also is not the same as the fall time. There is little overshoot or ringing to deal with, but there is some 60 Hz. noise associated with the refresh rate. I had an idea similar to yours. Instead of actually capturing a full signal,what about capturing just a single transition. If I were to start capturing a little before I caused a grey level change (which corresponds to a signal level change from high to low or the reverse) and continue the capture for a little after the transition, there would be a high point to average, and a low point to average, and if a straight slope could be attached between the
    two time points that matched these everaged values, then a rise or fall time could be determined. For that matter, it might even be easier to just quatify that time in between thoses two averaged values. I looked around the functions library quite a bit and could figure out no way to do this. If you have any ideas, they would be appreciated. I am including a print screen copy of the waveform, see what you think.
    Attachments:
    wavefrmexmple.doc ‏140 KB

  • How to average several Hispectrum​s

    Hi all...
    I am acquiring scalar data  from a voltmeter and power supply and i m converting each of them to an array which is fed by register shift so that i can draw a xy graph with history. For example, i have 400 hundreds iteration which  gives me 400 x and 400 y values.
    x1 vs y1 gives me a point and i draw , x2 vs y2.. so have 400 data point in my graph. Lets say that this is first spectrum. I want to repeat same spectrum but now  x1 and y1 for second spectrum v are slightlz different than that of first one. So i want to average x1 value of first spectrum and x1 value of second spectrum giving another x1 value of averaged spectrum
     I want to do this for all x and y values so that after everz spectrum i can have averaged one.  I m a bit confused. can u help me?

    thanks Ravens!
    I have still further question regarding that vi. Seemingly, index will control the adding proceess, like into which element of the array new input gets as u said. Lets assume that I m sweeping the current between +- 3 with 1 amp increment  lets say N times that i dont set before measurement.
    so i ll get  following for each iteration of my main loop that controls the data acqyisation.
    i (iteration)        Current value             corresponding multimeter value(y)           array of x                array of y
         0                         0                                              y0                                            [0]                               [y0]
         1                         1                                               y1                                           [1,0]                            [y1,y0]
         2                         2                                               y2                                           [2,1,0]                         [y2,y1,y0]
    12(new sweep)      0                                     ​           y12                                [0,-1,-2...0...​2..0]                [y12,y11.....y0]
    13                           1                                                y​13                                [1,0,-1,2..0...2..0]                [y13,y12,y11...y0]
    now what i dont understand is that how to command vi so that it will add y13 with y0 ,y14 with y1 and so on giving averaged array with each corresponding element. My iteration keeps going continously till I see that averaged spectrum seems ok. So i can not set at the beginning how many iteartion will be performed. Besides, I might change the sweeping rate and the limits are not fixed that might be changed for each measurement. Regarding those conditions how i can set the index number performing the average process above? Please help me

  • 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.

  • Average multiple signals together in sound and vibration assistant

    Hello,
    I would like to average octave analysis data from multiple microphone channels together to obtain a single set of octave analysis data to view within Sound and Vibration Assistant (a surface average from the microphones).  I have created an octave averaging vi in LabVIEW to run in SVA, but I get the error that there are no signals in my SVA project to input into my vi.  I have based the input of my vi on code generated from SVA which outputed multichannel octave analysis data, so I don't quite understand why the output from an octave analysis in SVA doesn't match up to the input of my vi.
    I also would like to do this for multichannel power spectrum data, and I have tried creating my own vi for this as well with no success.
    I am using LabVIEW 2011 32-bit along with Sound and Vibration Assistant 2011.
    Any assistance with finding a solution to this problem would be greatly appreciated.
    Thank You,
    Eric Morgan
    Attachments:
    Octave Average.vi ‏13 KB
    Power Spectra Average.vi ‏13 KB

    Hello Jake,
    Thank you for responding to my post.  After recording the raw sound pressure data from my microphones, I placed an Octave Analysis step and a Power Spectrum analysis step in the playback section of SVA, and the outputs of these steps should have served as inputs to the VIs I created (I assume you only looked at the power spectrum averaging VI, as the octave averaging VI accepts a 1D array of clusters of center frequencies and band powers).  I did find that my averaging VIs did not have the correct size of empty array going into the second For loop, so I have corrected this in the attached VI (for averaging the FFT).
    Also, I was able to get my corrected VI for averaging the FFT to work after getting past a little quirk in SVA.  After browsing to my VI in setting up the "Run LabVIEW VI" step, I had to click the "Refresh VI" button before it would let me select a power spectrum as its input.
    I also think I figured out why the octave averaging VI doesn't work.  I think it has something to do with the fact that the output of an Octave Analysis step in SVA can not be used as an input to any other steps within SVA, which makes sense most of the time since once you have performed an octave analysis, there is really no other processing of this data that would ever need done...except for my case of averaging the 10 channels together to obtain the surface average SPL (kind of important when testing according to ISO3744).  If this is the case, I would consider this a bug in SVA, as any output from any step in SVA that can be displayed should be able to be used as an input to a "Run LabVIEW VI" step.
    I agree with you that in the end, it would be easier to do everything in just LabVIEW if I were just collecting data for post-processing at a later date, but when investigating noise issues and collecting mounds of data in the process, SignalExpress makes it a little easier to sift through that data as it is collected/logged while still in our sound lab, which may give us some ideas of different ways to test at that moment and possibly find the cause of our noise issues.
    Thanks again for responding to my post,
    Eric Morgan
    Attachments:
    AverageFFT.vi ‏19 KB

  • Sound and Vibration kit - Peak Hold

    I am evaluating a dynamic signal and would like to gather peak hold information from SVT 1/3 octave output. The SVT FFT tool has a "peak hold" function that allows for gathering spectral data over time, but it does not output an array of values. Is there a way I can capture peak hold from the SVT 1/3 octave output and create an indexed array that integrates a dynamic signal in a "peak hold" manner?
    I am evaluating exposure impacts of anthropogenic noise on marine animals for ocean noise pollution mitigation.
    Thanks!
    Michael Stocker
    Michael Stocker
    Director
    Ocean Conservation Research

    Hello mstocker,
    From your post this is what I understand:
    You want to perform peak hold averaging with your Third-Octave
    Analysis.vi and then obtain an array of data of  the peak values. The
    Third-Octave Analysis.vi has a selection for the averaging type you can
    select peak averaging as the type of averaging. Peak averaging combines
    the results of several measurements into one final measurement. The
    output of the Third-Octave Analysis.vi is a cluster. The cluster
    contains one array of nominal frequencies and an array of band power.
    Is this what you were looking for?
    If I have misunderstood your post, please reply with clarification. I would really appreciate it.
    Regards,
      Sandra T.
    Applications Engineer | National Instruments

  • Frequency response function modal analysis

    After reviewing the signal analysis functions in DIAdem I have realized them to be a bit limited for modal analysis.  I have a couple hammer impact tests that I need to process a frequency response function for, and since this is brand new to me I'm not seeing anything in the embedded function list that is going to help me.  I was wondering if anyone out there has a couple of pointers on generating a FRF plot for modal hammer impact tests.  I did notice that the ChnFFT2 command allows me to generate a transfer function, coherance, and FFT Cross Spectrum channels for analysis.  Though I might be confused and this may be everything I need.  My FFT2 settings are below.
    [code]
    FFTIndexChn      = 0
    FFTIntervUser    = "NumberStartOverl"
    FFTIntervPara(1) = 1
    FFTIntervPara(2) = 2500
    FFTIntervPara(3) = 1
    FFTIntervOverl   = 0
    FFTNoV           = 0
    FFTWndFct        = "Rectangle"
    FFTWndPara       = 10
    FFTWndChn        = "[1]/Time axis"
    FFTWndCorrectTyp = "No"
    FFTAverageType   = "No"
    FFTAmplFirst     = "Amplitude"
    FFTAmpl          = 1
    FFTAmplType      = "PSD"
    FFTCrossSpectr   = 1
    FFTCoherence     = 1
    FFTTransFctType  = "Spectrum H0"
    FFTCrossPhase    = 0
    FFTTransPhase    = 0
    Call ChnFFT2("[1]/Time axis","'[1]/H_1' - '[1]/H_4'","'[1]/A_1' - '[1]/A_4'") '... XW,ChnNoStr1,ChnNoStr2
    [/code]

    Standard modal analysis has something denoted as FRF.  I have a labview application note "The Fundamentals of FFT-Based Signal Analysis..."
    Frequency Response Function
    The frequency response function (FRF) gives the gain and phase versus frequency of a network and is typically computed as
    where A is the stimulus signal and B is the response signal.
    The frequency response function is in two-sided complex form. To convert to the frequency response gain (magnitude) and the frequency response phase, use the Rectangular-To-Polar conversion function. To convert to single-sided form, simply discard the second half of the array.
    You may want to take several frequency response function readings and then average them. To do so, average the cross power spectrum, SAB(f), by summing it in the complex form then dividing by the number of averages, before converting it to magnitude and phase, and so forth. The power spectrum, SAA(f), is already in real form and is averaged normally.
    Refer to the Frequency Response and Network Analysis topic in the LabVIEW Help (linked below) for the most updated information about the frequency response function.
    http://zone.ni.com/devzone/cda/tut/p/id/4278
    So the options for FFT2 are
    No
    DIAdem does not calculate a transfer frequency response.
    Spectrum H0
    DIAdem calculates the transfer frequency response by dividing the FFT of the output signal (A) by the input signal (E): FFT(A)/FFT(E). DIAdem averages the amplitudes of the individual transfer functions.
    Spectrum H1
    DIAdem specifies the cross spectrum and the auto spectrum for each signal pair. DIAdem calculates the transfer frequency response by dividing the averaged spectra: Middle(cross(A,E))/middle(auto(E)). DIAdem does not average phases, because phases can delete each other.
    Spectrum H2
    DIAdem specifies the cross spectrum and the auto spectrum for each signal pair. DIAdem calculates the transfer frequency response by dividing the averaged spectra: Middle(auto(A))/middle(cross(E,A))
    If you assign the values Spectrum H1 or Spectrum H2 to the variable FFTTransFctType, DIAdem averages and divides the cross spectra and the auto spectra and calculates the amplitudes last.
    Which state auto spectrum when FRF is power spectrum. 

  • Synchronising recording of eeg waveforms with stimulus

    Hello everybody ,
    im working on a VI  to average several EEG waveforms ...which is attached ..
    actually each waveform entering this ' waveform averaging' VI  is actually an EEG reponse to each sound click we present to the subject.
    so i need each click to trigger or start the recording .. and continue recording for 17 milliseconds.
    Thus if i give 1000 clicks, the averaging VI must produce the average of the 1000 waveforms.
    the clicks are given as a square waveform , frequency = 10.1 Hz ,  TIMING mode: simulate acquisition timing , samples per second =  44000 , no : of samples = 204000 (or a figure as high)
    i used the simulate signal  and play waveform blocks.
    for the above problem, i tried to use the trigger and gate block... i thought of connecting the simulate waveform block to the waveform averaging vi using the trigger block...but dont seem to reach anything useful ...
    P.S. : this block diagram has sinusoidal signals as the example .. in reality we record EEG  signals .
    I wud really be grateful if u cud help me out ...
    best regards
    Mer
    Attachments:
    AverageWaveforms2.png ‏6 KB

    Hi, I'm not LV expert but I think I run into some thing like yours before.  What I did was checking any missing pulse or abnormal in the EEG waveform and set trigger pulse once I found it.  Take a look at your signal amplitude.  If your signal too low (ex: <1.25V), your counter gate won't trigger.  Once you record your EEG, amplified it and use trigger VI (take a look at the LV example) to set your trigger event pulse.
    BC

  • How to Edit individual frames

    I'd like to touch up a problem in about a couple of hundred or so frames in an iMovie HD project that is otherwise complete. If it was a still, I could easily copy an adjacent region and paste it over the bad pixels in the problem area. If I could edit individual frames, I could copy the area once, and paste it into each frame.
    It doesn't seem possible in iMovie itself. I've tried downloading some third party software, including a plugin for iMovie, but none worked.
    What are the recommendations?
    Thank you

    'BTV Pro' has a feature to "average" several frames together. "..To create a noise-free image, the frame averaging feature takes a number of frames from the video input and averages them together to produce a single image. This can significantly reduce, or even eliminate, the noise in the video signal. This works because the image is constant but the noise is quickly varying so over several frames it averages to zero.."
    But perhaps the adjustment you want is more drastic. (..And I don't know if 'BTV Pro' is a 'Universal' app, so it may need to run in 'Rosetta' on a MacBook - thus making it a bit slower than usual..)
    As for other "copy and paste" movie-editing programs; 'MediaEdit Pro' (..there's a free trial download..) lets you 'paint' on video frames, but I don't know if that lets you do subtle touch-ups ..read more about it on their website.

  • Problem with calibration of AT-MIO-16XE-10 card. Using E Series Calibrate VI I get error = -10840, using MIO Calibrate VI I get error = -10029.

    The reason I want to calibrate the card is that I am getting a spurious +10mV offset on the analog out channels, and a -60mV offset on the analog in. These offsets first occured after a hard-disk crash, where labview 6.0 was installed along with the new hard-disk. The computer is running window 95.

    The correct function to use is E Series Calibrate. In the past, this 10840 error is returned by the E series calibrate function when the EEPROM of the board needs to be reprogrammed. To fix this problem, call customer support to send the board in (http://sine.ni.com/apps/we/niae_asc.main).
    If you cannot wait for the board's EEPROM to be reprogrammed, then consider using averaging several datapoints rather than using single datapoints to lessen the offset in your results. There are other sources of bad readings besides the need for calibration. Check out this webpage for more troubleshooting advice:
    http://digital.ni.com/public.nsf/websearch/cb279761ae4bc61186256a38005444c6

  • FRF- Phase difference

    Hi,
    I have acquired the input and output of my DUT. Both of them are as time-wave (Voltage).
    The input is from a function generator, and the output from a photodiode.
    Now I want to obtaine the FRF and phase difference vetween these two waves, Does anyone know how can I do that?
    Also, I have performed the sweep by the Function generator, too. so the input is Swept-freq.
    I have attached the project (Sound and vibration toolkit)
    Thanks
    Petar
    Attachments:
    12.seproj ‏419 KB
    1.JPG ‏183 KB
    2.JPG ‏177 KB

    For each bin frequency the Frequency Response Step returns the magnitude and phase of the response signal / stimulus signal. Your project already had this step. Only the data saved as a log in the project was available for us to look at. Using a Power Spectrum Step, it appears that you configured your sweep to output a signal from 10 Hz to 100 Hz, so that is the region of the FRF that we should examine. Because you are using a sweep, change the window in the Frequency Response Step to None.
    You may want to perform a longer sweep to improve frequency resolution and/or average several sweeps to maximize signal-to-noise ratio.
    Doug
    NI Sound and Vibration

  • How to do averaging N samples for several channels?

    Dear members,
    I got the Routine for averaging N Samples from One channel's data from the forum. I would like to
    do for several channels. How to go about it?
    Regards,
    G.Kousalya

    You can do it in a way that is very similar to the approach you would use for a single value (see attachment).
    Mike...
    Certified Professional Instructor
    Certified LabVIEW Architect
    LabVIEW Champion
    "... after all, He's not a tame lion..."
    Be thinking ahead and mark your dance card for NI Week 2015 now: TS 6139 - Object Oriented First Steps
    Attachments:
    example.vi ‏38 KB

  • What formula do I use to create the average across several columns?

    I'm curious what the formula is for creating averages accross colums?

    E2: =AVERAGE(B2:D2)
    Fill down to E20.
    Regards,
    Barry

  • Is anyone with an "average" system (see post) NOT getting severe slowdowns?

    With all the posts about slow-downs with LR 2.0, I was just wondering if anyone with an "average" system was NOT seeing these slowdowns when doing things like using the brush, which a LOT of people report not being able to use due to performance issues. By "average," I mean a fast P4 or some form of Core2Duo, and 2GB.
    So far, the only posts I've seen reporting crisp response with the brush tool are from people using very fast Quad core systems and a lot of RAM, which is way, WAY beyond the "recommended" specs according to Adobe. I'm trying to figure out whether or not this is just a system speed issue, or if something else is causing these issues on some systems. If it IS a system speed issue, it would be interesting to find out what the "real world" minimum specs are, and what specific aspect of a system is causing these slowdowns.
    On this note, I find it hard to believe that an average Core2Duo system couldn't run ANY of the LR tools without any slowdown problems. LR just doesn't strike me as "that" demanding of app compared to other apps like 3D or video editing/effects programs that run fine on the same system.
    Thanks,
    Larry

    I have an old 1.7 Tosh Lap top with 2gig and a bog standard dual core (2.3x2)also with 2gig, running XP on both, and I can run everything I want through LR2 with a speed that is fine by me.
    The Brush, since seeing a post on how to turn off the red automask, I've switched it on, and now monitor the progress of the brush work, saying that on Nikon d300 Nefs, I have had no issues, for me.
    Now it's not instantaneous, but then I have nothing to compare it against....so speed is okay.....
    I have considered to get a Quad core for £100, which should be a straight swap out, but then, I'm happy at the moment....
    Sync is slow and horrible, but once its done, that should be the end of it....
    I did take the plunge and save all LR1.4.1 to metadata, then built LR2 database from scratch. Took a couple of days, and the same for previews, but well, I had the time....
    Never export out of LR2 to other programs so do not really know if it works or not on my system.
    simon

  • How do I capture a triggered signal on DPO 4000 several times and then average?

    The main problem here is speed.  I can average a pulse on the O-scope (using just the O-scope) up to 512 times and then it shows the averaged signal on the screen.  Essentially, I'm trying to do the same thing with Labview Code such that I can take more averages of the same pulse and reduce noise.  I have managed to write a program that allows for data capture through the USB connection on the O-scope but when I average the signal doesn't look nearly as nice as it does on the O-scope, it also take a bit of time if I want to say take 1024 individual traces and average them. Any help that could be provided would be greatly appreciated.
    Attachments:
    Baloney_Oscope_Avg_rev1.vi ‏31 KB

    If you are considering a pc based solution, you will have much better transfer rates. You can watch this video and read this tutorial.

Maybe you are looking for