05-27-2010 10:18 AM - edited 05-27-2010 10:19 AM
Hello,
what I want to do is quite unusual (I think) so I will explain the context :
I made a program which capture data off a spectrum analyser, correct these data with antenna correction, and use VIs "Limit Specification.vi" and "Limit Testing.vi" to interpolate my datas with a Pattern. The aim is to verify that the datas from the analyser don't get over the pattern.
Everything is then put in a Waveform Graph, with a Logarithm X Scale.
BUT the problem is that when I put X scale on "log" in graph properties, my Pattern representation is transformed in a Log-horrible-thing. I know it's working as intended, but my program isn't unusable because of this.
How can I do to make the interpolation "Linear" in a Log scale ? Is it possible using both limits VIs, or not ? I hope yes..
Here are some screenshot of the thing (can't join my VI, it's property of the company I work for (i'm in placement)).
Thanks for your future help !
Solved! Go to Solution.
05-27-2010 10:37 AM
I mean the green line on the UI screenshot?
You could just add 'a lot' (not more than your monitors pixel width) of points, which have a exponential interpolation.
Felix
05-27-2010 11:18 AM
05-28-2010 02:31 AM - edited 05-28-2010 02:33 AM
Thanks to both of you.
Felix : the problem is that the analyser works with 501 or 1001 points, and there is many files of pattern, so it will be hard to get every single point manually.
Randall : great formula, and great screenshot, thank you very much. But there may be a problem if I change my waveform to X-Y values : the limit testing VI needs a waveform in the Input "Upper Limit". So it won't work if I'm not working in waveform datas... is it right or I am missing something ?
05-28-2010 02:43 AM
Just found the "Limit testing for unevenly sampled datas mesurement". Gonna test it.
Thanks again Randall 🙂
05-31-2010 03:47 AM
Hello, I tried hardly to get something from what you told me, but it didn't work (and from that post : http://forums.ni.com/ni/board/message?board.id=170&message.id=20205&query.id=5587881 but it didn't work because exponential of a number like 9000 give +Inf...)
I tried dozens of things to get it, but I get nothing in result..
I think the problem is that the 'Limit specification' and 'Limit testing' VIs are designed for Waveform data, and they realise their own interpolation between the pattern points and the signal, wich is not good to me... I think I am able to draw a logarithmic pattern on the graph, but not to use these limits functions, and the point is that I really need them..
If anyone can please help me, I'm sick of this problem...
05-31-2010 03:55 AM
You should use 10^4 to get 10,000. So then you interpolate x=3.0 .. 4.0 and calculate 10^x and plot that data.
Felix
05-31-2010 04:03 AM
Thanks but for what signal ? Is it a way to make a logarithmic interpolation or just to avoir the +Inf problem of the solution I linked ?
05-31-2010 04:10 AM
To make your interpolation in the range 1000 to 10,000 you will need to calculate
10^3
10^3.1
..
10^4
If you calculate 10^9000 you get a very large number, a 1 followed by 9000 0s.
Felix
05-31-2010 04:50 AM
Thank you sooooo much Felix, you made my day !!!
I post the solution if someone needs it 🙂
1- I transform my waveform points in log10 base :
2- Same with my pattern (limit) points :
3- I use the Limit specification and Limit testing VIs with these new X points (and dt=-1 because my waveform isn't linear anymore)
4-And finally, I use 10^x function and change my Waveform out of Limit Testing, in an XY graph :
If moderators find this post inconvenient because too big or useless, no worry to delete it.
Thanks to all of you LabView and NI experts to help beginners in their development 🙂