***I thought I should note that I am working with tech support on this, but was also hoping that someone on the board might have some experience with this.***
I have a sinusoidal voltage signal in which the frequency varies over time. I am measuring the output of an engine, and in a given run the engine starts, runs for a few seconds (producing the sinusoidal voltage), and then stops. I want to plot the frequency of the signal as a function of time through the run. To do so, I'm using the joint time-frequency analysis tool. The tool can also perform order analysis also, but what I'm using it to do is basically break my data up into time intervals, apply the FFT on each, and then combine the results in a 3d plot. The plot looks pretty much as I expect it should, with a curve that starts at the onset of the engine, then has a slowly varying frequency, and then stops at some point.
My concern is that from my data I can see exactly when the engine stops - however the 3d result plot seems to imply that the engine is still running long after the data says otherwise - the curve continues quite a bit farther than it should. The amount by which it extends after shut off is more than one interval (it's actually quite a few intervals) so it's not a result of averaging over a given time interval. I particularly want to try to compare the 3d result with another data set to try to show a dependence (or a lack thereof), and it is quite a problem to have the engine seeming to be running when the other variable shows that it could not be.
Has anyone used this tool in diadem before? I found that there are many more methods for joint time-frequency analysis available in Labview (I downloaded the Labview joint time-frequency analysis toolkit) but I'm not sure how to write a program to use it. From the manual, apparently which method you should use depends on the type of data set you want to analyze - there's the short time Fourier transform, Gabor spectrograph, Wigner-Ville distribution, etc., and I can't find any information about which one the diadem toolkit is using.
Any suggestions would be greatly appreciated,
If I am understanding what you are saying correctly it seems that the x-axis in 2D is shorter than it is in 3D. If possible, can you attach a data file to this thread to see if we can reproduce the issue?
I'm not sure how I should post the data, as the .tdms files are pretty large. Is another format better? I can see if the .tdm files are more reasonable in size. Also, is there a way to take a screen shot of the graphs, or should I just post files from the report?
Perhaps I can do a better job of describing the problem - imagine taking a x-y Fourier transform with a very narrow peak and rotating it so it's the y-z plane instead. Take many, many of these, and combine them together along the x-axis - you will mainly have a roughly horizontal 'stripe' (looking down on the z-axis, at x-y). For the data sets that I analyze, I take the full run and select out only the region around when the engine is running - generally from about 1 second before the engine starts until 1s after the engine has stopped. The 'stripe' begins when the engine starts (for reasonable choices of mesh size), but for most of the data sets that I have taken, the 'stripe' continues on to the end of the interval - say the engine stops at the 6 second mark, but the 'stripe' from the analyzed data still goes on through the 7 second mark, and without a decrease in the amplitude of the peak. The only way that I have found to make the 'stripe' end is to select an interval that extends far beyond the point where the engine stops, by an amount on the order of the original time interval, and then the 'stripe' still extends much too far.
I think I must be confused about how the time mesh works. I thought that if you choose a mesh of 100, the data set is broken up into 100 distinct intervals, the FFT is applied, and the results are plotted as I described above. There would then be 100 of these peaks plotted consecutively, with the result constant over a given interval so that if you had a linearly increasing frequency, the result would be like stair steps (I wondered if this explained why the analyzed signal extends too far, that it was just going to the end of its interval, but have realized that it over extends by many intervals). If this were the case, choosing a higher time mesh would give you greater time resolution, right? However, when I was playing around with different mesh values, it seemed that the opposite was true. Can you help me understand how the mesh works?
Did you ever happen to find out which method diadem uses?
I tried attaching an example of a typical data set that I use (not the full run, but the typical interval that I select out for analysis), but got an error that the size of my upload is larger than the maximum size allowed. The size of my .tdms file is 18.3 M - how would you recommend I send it to you? Can I use ftp?
I was able to attach jpgs of the data set and the graph that I get after performing the jtfa analysis. To run the jtfa analysis, I load and run the Time Frequency Order Analysis.VBS script, select joint time frequency spectrum analysis, choose a narrower frequency range (for this plot, from 18000 to 25000, but this choice doesn't seem to affect the end result too much) and a time mesh (here I used 60). When I hit 'run analysis' the result graph opens in report, although usually with the wrong variables plotted - I open the graph menu and choose 'Time Interval' for the x axis and 'Joint Time Frequency' for the y. To get the graph attached here I also zoomed in and centered it a bit.
As you can see from the voltage data, the engine starts at about 9.8 seconds and ends at about 14.3 seconds. In the analyzed data, the run seems to start when it should, but as you can see the peak seems to continue on undiminished to the 15 second mark.
Please let me know if I can provide you with any additional information.
You can attach the large files here: ftp://ftp.ni.com/incoming. These files are behind our firewall so only NI employees will be able to access them in case some of your data is proprietary. Please post on the forum once the files are on the ftp to let us know they are there.
I've been trying to think of how best to attach my data set. I tried splitting it into two halves that I could attach in two separate posts, but then discovered that I can't attach the files in their .tdms format, and converting them to anything else makes them about twice as large. I tried compressing the .tdms file, but it is still larger than the maximum allowable attachment size of 5.12 M. I decided to combine these efforts and divide the data set into two .tdms files, zip each and attach each in a separate post - which you should be able to unzip and then recombine the halves, right?
Each of the files is under 3MB, which should be fine. However, when I tried to post the first half I got an error again saying "The attachment file size is too large. The maximum file size is: 5,120,000 bytes." What am I doing wrong? This is exasperating!
That's great - thanks. I wish I had noticed your post an hour ago! I'll try to upload the file right away, and will put my name in the file so hopefully it's easier to identify. I'll post again to let you know when it is complete.
I downloaded your TDMS data file and was able to play with your data using the same "Time Frequency Order Analysis" application you are using. The results I got seemed to stop at the same point as the 2D time series graph, at about 14.3 sec. I also dialed up the "White" report layout, which is the only one that shows you the time and frequency intervals as a black background mesh.
See if you get the same result by using the same input parameters. Also let me know if this result looks as good to you as it does to me.
DIAdem Product Support Engineer