From Friday, April 19th (11:00 PM CDT) through Saturday, April 20th (2:00 PM CDT), 2024, ni.com will undergo system upgrades that may result in temporary service interruption.

We appreciate your patience as we improve our online experience.

LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

Octave analysis (Algorithm)

Solved!
Go to solution

Hello everyone,

 

Thank you first of all for reading my post,

 

I would like to make an octave analysis on my signal using LabVIEW i checked some website & documents but still did not understand how to implement it  ?

wich step do i need to do first !

how many filters do we need is it 3 ?

is it possible to sample more than 44 Khz ?

 

Thank you for your help

 

 

0 Kudos
Message 1 of 25
(5,499 Views)

Hello Virtman,

 

The octave analysis is available in the Sound And Vibration Toolkit.

If you don't have this toolkit, you can use the "Mathematics" and "Signal Processing" palette to implement your own octave analysis tool.

 

Here you can find help for he Octave Analysis VIs.

 

What do you mean by how many filters ?

 

Yes sure, you can go further than 44kHz if needed 

 

Regards,

 

 

 

0 Kudos
Message 2 of 25
(5,441 Views)

Assuming you are referring to octave band analysis of an acoustic signal, the analysis methods are defined in ANSI S1.11-2004 or IEC 61260:1995 (both standards are fundamentally the same from a technical point of view).  I don't have either to hand but I do have a few notes.  Each octave band filter can be implemented as a 4th order Butterworth band-pass.  This should give you class 0 or class 1 performance across most of the audible frequency range, depending on the sampling frequency and the octave band number.

 

The mid-band (centre) frequencies in Hertz may be calculated using:

f_m = G ^ (x - 30) * 1000

for any integer x.  The preferred value of G is 10 ^ 0.3.  So for x = 25, f_m = 31.62 Hz and for x = 34, f_m = 15849 Hz, covering the entire audible frequency range.  A sampling frequency of 48 kHz will give you class 0 performance for every band in this range with the exception of the upper limit of the x = 34 band, although this falls within class 1 performance.

 

In case you haven't found it, the Butterworth filter VI is found on the Signal Processig - Filters palette.  When defining the filter, the low and high cutoff frequencies can be derived from the mid-band frequency as:

f_l = f_m * 10 ^ (-0.15)
f_h = f_m * 10 ^ (0.15)

I don't see any issue with sampling above 44 kHz.  Depends on what your frequency range of interest is.

 

Andy

0 Kudos
Message 3 of 25
(5,433 Views)

Hello PsyenceFact,

 

Thank for your reply,

 

I would like to implement my own octave analysis withou using the sound & vibration tool kit ( i dont have this kit )

 

so what i did in this program is calculating the FFT of a time signal then i calcul a 3rd band octave, so i split my array into 29 band and each band represent a 3rd band octave then i will make a sum of each subarray ( 3rd octave) and display in a graph.

 

But i have an error that display when i run the code i hope that you could help me in implementing this analysis

 

I have a 225 KHz as a sampling frequency signal (i recognize that the length of the signal is much longer).

 

Thank you

 

 

Download All
0 Kudos
Message 4 of 25
(5,405 Views)

Hello PsyenceFact,

 

Thank for your reply,

 

I would like to implement my own octave analysis withou using the sound & vibration tool kit ( i dont have this kit )

 

so what i did in this program is calculating the FFT of a time signal then i calcul a 3rd band octave, so i split my array into 29 band and each band represent a 3rd band octave then i will make a sum of each subarray ( 3rd octave) and display in a graph.

 

But i have an error that display when i run the code i hope that you could help me in implementing this analysis

 

I have a 225 KHz as a sampling frequency signal (i recognize that the length of the signal is much longer).

 

Thank you

 

 

0 Kudos
Message 5 of 25
(5,402 Views)

Hi virtman,

 

But i have an error that display when i run the code i hope that you could help me in implementing this analysis

Which error do you encounter?

 

check.png

Best regards,
GerdW


using LV2016/2019/2021 on Win10/11+cRIO, TestStand2016/2019
0 Kudos
Message 6 of 25
(5,394 Views)

Hi GerdW

 

Actually it display me this error

 

But also i would like that my graph will be represented as a bargraph how i could do that please !

 

Thank you

Download All
0 Kudos
Message 7 of 25
(5,380 Views)
Solution
Accepted by topic author virtman

Hi virtman,

 

Actually it display me this error

I had the same problem - and solved it by placing the sequence frame around the output terminals…

(I guess that's a compiler artifact. Sometimes the compiler has issues in handling all data correctly. A quick help is to throw some AlwaysCopy nodes on your wires or to enforce some other kind of data copies…)

 

But also i would like that my graph will be represented as a bargraph how i could do that please !

Change the plot properties…

Best regards,
GerdW


using LV2016/2019/2021 on Win10/11+cRIO, TestStand2016/2019
0 Kudos
Message 8 of 25
(5,372 Views)

Hi GerdW,

 

Thank you so much the first problem is solved wich is great !

 

for your 2nd proposition i changed the properties as you have said but i am not sure wich property i need to choose because it seems like my graph is pushed from a side to an other when i change the properties !

 

My last question is about the amplitude axes and frequency if the time signal amplitude represent a physical unit, i would like to know if my octave analysis is displaying the correct values that corresponds to that unit ( should i just need to make the sum of the frequencies in my FFT or what i did right now is the true way to implement an octave analysis by making the sum of all what exist in my subsarray please!)

 

thank you so much and it is so helpfull from you

 

Thanks GerdW

 

0 Kudos
Message 9 of 25
(5,367 Views)

Hi virtman,

 

i changed the properties as you have said but i am not sure wich property i need to choose because it seems like my graph is pushed from a side to an other when i change the properties !

As you didn't attach your VI I don't know what you did…

 

i would like to know if my octave analysis is displaying the correct values that corresponds to that unit

You should know that on your own…

What is the expected result of your calculation? Use a reference data set and compare your calculation results with know reference results!

(I'm not an expert in octave analysis, and will not dig any deeper into this algorithm.)

Best regards,
GerdW


using LV2016/2019/2021 on Win10/11+cRIO, TestStand2016/2019
0 Kudos
Message 10 of 25
(5,361 Views)