LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

Limit testing on frequency/band power (octave analysis) data

I have performed an octave analysis and displayed the result in a regular XY-graph. The frequency appears on the x-axis and these values are not linear (they appear to be logarithmic). On the y-axis there is band power expressed in dB. I would like to perform a test to see if the graph falls within a certain region of the graph area. I would like to define this region using a small number (i.e. much less than there are octave analysis points) of XY-value pairs and then have LabVIEW interpolate in between these XY-value pairs to come up with a well-defined region in the graph. How can I do this? I'm using LabVIEW 8.2.1 with the Sound and Vibration add-on. I'd greatly appreciate any hints.
0 Kudos
Message 1 of 14
(3,718 Views)

There are mask and limit testing vi's that work with waveform data. I modified them to work with arrays of data for the limits. See the llb file in this thread.

http://forums.ni.com/ni/board/message?board.id=170&message.id=145550&view=by_threading&page=2

0 Kudos
Message 2 of 14
(3,713 Views)

Thank you for your advice but I was unfortunately unable to get it to work. The VI's in the library you referred to seem to (pls correct me if I'm wrong) only support arrays with a constant dx. In my case the x-scale is logarithmic (20.3, 21.5, 22.7, 24.1, 25.5, 27, 28.7... etc) and I would prefer not to have to interpolate in between the measurement point. That is, I do not want a continuous graph for the band power vs. frequency "graph"; I would prefer to keep it as a "histograph". However, I would like to display the upper and lower limits of the region as continuous graphs. Is this possible?

0 Kudos
Message 3 of 14
(3,703 Views)
I think you can do limit testing in segments. You just define more sections as limits. I don't see why the logarithmic X axis setting will make a difference. The limit values are defined as DBL numbers. Can you post some data and screen shots of what you see. I'm using 7.0.
0 Kudos
Message 4 of 14
(3,694 Views)
This is how I would like the graph to look like:
 
 
 

In order to use the VI's in your library, I think I need to interpolate new points in between the actual measurement point in order to have a constant dx. I base this assumption on the fact that the Limit VI takes only the Y-values as inputs to signal in, upper limit and lower limit. If the Limit VI would have taken clusters of X and Y-values as inputs to signal in, upper limit and lower limit, then it would be straight forward for me to use this VI. Introducing interpolated points would make my histogram look like curve instead and that is undesired. Also, it seems inefficient to introduce a lot of extra useless points that I really don't want.

You suggested that I should try to do "limit testing in segments" instead. I am a newbie and I don't know how to do that. Please provide some more hints. Thanks in advance!

0 Kudos
Message 5 of 14
(3,676 Views)
could you post the raw data for plot 0??
0 Kudos
Message 6 of 14
(3,668 Views)

Of course.

20.3   -133.49
21.5   -145.84
22.7   -135.988
24.1   -133.697
25.5   -140.965
27   -122.645
28.7   -141.809
30.4   -135.857
32.2   -141.348
34.1   -128.545
36.1   -134.527
38.3   -136.317
40.5   -128.509
42.9   -128.973
45.5   -136.79
48.2   -122.849
51   -113.688
54   -122.504
57   -126.121
61   -134.923
64   -128.324
68   -129.938
72   -130.799
77   -123.386
81   -111.166
86   -126.693
91   -132.977
96   -126.776
102   -117.21
108   -105.319
115   -124.972
121   -129.746
129   -127.194
136   -129.205
144   -120.787
153   -112.319
162   -119.499
172   -129.217
182   -129.23
193   -122.976
204   -116.798
216   -112.12
229   -127.912
243   -125.158
257   -123.813
273   -122.386
289   -126.322
306   -122.785
324   -111.216
343   -123.328
364   -123.024
386   -119.788
408   -114.873
433   -113.137
459   -121.081
486   -116.245
510   -117.301
550   -113.945
580   -120.074
610   -117.581
650   -114.84
690   -118.394
730   -120.486
770   -114.674
820   -119.4
870   -112.691
920   -117.804
970   -114.267
1030   -120.331
1090   -115.101
1160   -118.436
1220   -118.786
1300   -114.236
1370   -116.717
1460   -119.648
1540   -115.799
1630   -115.615
1730   -116.24
1830   -115.901
1940   -116.705
2060   -115.644
2180   -117.336
2310   -116.209
2450   -116.72
2590   -115.973
2750   -115.929
2910   -118.224
3080   -118.288
3270   -116.533
3460   -117.111
3670   -120.187
3890   -120.314
4120   -120.923
4360   -119.341
4620   -119.149
4900   -119.276
5200   -118.173
5500   -118.282
5800   -118.231
6200   -118.621

0 Kudos
Message 7 of 14
(3,653 Views)

There is an example file for working with uneven data.

labview\examples\measure\maxmpl.llb\Limit Testing for Unevenly Sampled Data Measurement.vi

I started this file with the version from 7.0. You should probably start with the one from 8.2.

 

0 Kudos
Message 8 of 14
(3,642 Views)
Thanks a lot, this is exactly what I need! Just one last question, when you inserted my sample data into the arrays, did you do it one-by-one by hand or have you figured out a faster way to populate arrays?
0 Kudos
Message 9 of 14
(3,613 Views)
I copied the data from the website into a string control. Then did a convert spreadsheet string into a 2D array with the format specifier as two spaces. This function is in the string section. You can also read it from files and get a 2D array as the result.

Message Edited by unclebump on 08-13-2007 07:31 AM

0 Kudos
Message 10 of 14
(3,604 Views)