07-18-2018 02:51 PM
I'm fairly new to labview, but I have searched everywhere and can't find the solution to this problem. I am trying to build a VI that simply displays the phase and magnitude of the frequency response of a circuit. I am using SVFA Frequency Response (Mag-Phase).vi in the Sound and Vibration toolkit. The issue is that I want to display these on a graph with a log-scaled frequency x axis and when I do this, there is much lower resolution in the lower frequencies than the higher ones. Is there a way to have the frequency resolution scaled logarithmically so that there is more detail in the lower frequencies, resulting in an even-looking distribution? i.e. I want there to be the same number of data points between 10 and 100 as between 100 and 1,000, etc.
Any help would be greatly appreciated.
07-18-2018 04:15 PM
@lv_novice wrote:
I'm fairly new to labview, but I have searched everywhere and can't find the solution to this problem. I am trying to build a VI that simply displays the phase and magnitude of the frequency response of a circuit. I am using SVFA Frequency Response (Mag-Phase).vi in the Sound and Vibration toolkit. The issue is that I want to display these on a graph with a log-scaled frequency x axis and when I do this, there is much lower resolution in the lower frequencies than the higher ones. Is there a way to have the frequency resolution scaled logarithmically so that there is more detail in the lower frequencies, resulting in an even-looking distribution? i.e. I want there to be the same number of data points between 10 and 100 as between 100 and 1,000, etc.
Any help would be greatly appreciated.
Hmmm...
I just did this:
and got this:
All I did was make the time axis log scale. Seems to be what you (and everyone else would) want.
07-18-2018 04:43 PM
Thank you for your reply. I understand how to change the x axis scale to log. But as you can see on the graph that you posted, there are only about 10 data points between 1 and 10, whereas there are likely about 90 data points between 10 and 100. This results in a plot that looks "choppy" for smaller x values and smoother for large x values. I want to have more densely distributed measurements at the lower frequencies than at the higher ones so that the "smoothness" of the plot is uniform throughout. Basically, I want to see more detail at smaller frequencies.
We have an old HP frequency analyzer here that has a setting for this (called log res), but I haven't figured out how to implement it in LabVIEW.
Thanks again.
07-19-2018 02:38 AM - edited 07-19-2018 02:43 AM
Make yourself familar with the basics of frequency domain representation 🙂
The fouriertransformation will transform the equal spaced time domain data into a equal frequency spaced frequency domain data. The frequency step size is the inverse on the data time length ..
1000 points time domain data transforms to 500 complex frequency domain points... without data loss (rec window 😉 )
So if you want more data points in the lower frequency representation, you need to capture a longer time periode time domain data. 😄
1Hz resolution equal 1sec captured time data .. 0.1Hz -> 10s
07-19-2018 06:24 AM
@lv_novice wrote:
Thank you for your reply. I understand how to change the x axis scale to log. But as you can see on the graph that you posted, there are only about 10 data points between 1 and 10, whereas there are likely about 90 data points between 10 and 100. This results in a plot that looks "choppy" for smaller x values and smoother for large x values. I want to have more densely distributed measurements at the lower frequencies than at the higher ones so that the "smoothness" of the plot is uniform throughout. Basically, I want to see more detail at smaller frequencies.
We have an old HP frequency analyzer here that has a setting for this (called log res), but I haven't figured out how to implement it in LabVIEW.
Thanks again.
Oh, I misunderstood your post, then. I was thinking of divisions on the scale, not actual data points. Sorry about that.
07-23-2018 03:29 PM
Thanks for the response. I think I understand these concepts... My issue is knowing how to apply them in LabVIEW. From what I understand, you are saying that in order to have higher resolution at lower frequencies, you need to sample over a greater period of time. But when I increase the number samples received, it changes nothing. Also, what I am looking for is to have the same number of data points, but to have them logarithmically distributed over my graph. Does this make sense?
Thanks
07-24-2018 01:38 AM
Look at the order analyses vis (at least there are some in the sound&vib module)
07-24-2018 08:06 AM - edited 07-24-2018 08:06 AM
@lv_novice wrote:
Thanks for the response. I think I understand these concepts... My issue is knowing how to apply them in LabVIEW. From what I understand, you are saying that in order to have higher resolution at lower frequencies, you need to sample over a greater period of time. But when I increase the number samples received, it changes nothing. Also, what I am looking for is to have the same number of data points, but to have them logarithmically distributed over my graph. Does this make sense?
Thanks
like this?
07-24-2018 02:14 PM
Not quite. Imagine this plot, but with equally spaced data points. So there would be, say, 15 points between 1 and 10, and 15 points between 10 and 100. The way it is now, there are many more packed into the higher x values.
Thanks
07-25-2018 01:56 AM
Use the interpolation vi to reduce/blow up the linear (in frequency) points to log spaced data.
Just keep in mind you create fake data (quite modern expression :)) from real data to make it look nice.
Easy if you just want to show some magnitudes, the tricky part comes when you want to calculate with such data and deal with energies.... 😉
That's where the mentioned order analysis vis come in.