LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

autocorrelation of light scattering data - a problem

Solved!
Go to solution
In my work I will be acquiring light scattering data, so I will be measuring the intensity of the light as a function of time (my time intervals will generally be 5ms).  One of the things I then want to do with my data is to run an intensity autocorrelation function on it; we want to be able to access the initial slope of the autocorrelation function. 

So I found that there was an autocorrelation vi in labview.  I put together my vi and ran it and worked out how to add my time intervals (ie after running the autocorrelation function).  It was then that I realized that something seemed to be wrong.  What I realized was that the number of data points I was getting back from the autocorrelation function was nearly double the number of data points of my data; for example my data is 100,000 points, I was getting back something like 199999 points.  Given that I need to be able to equate my delay times with the corresponding autocorrelation data this left me with a problem.  So I went back and read the help files with regards to this vi and realized why I was getting so many data points, the output sequence is 2N-1 and thus t=0 is the Nth element of the output sequence.

So given that I want to have access to the initial slope of the autocorrelation function (ie on the right hand of the x-axis relative to where t=0 would be), and I would prefer not to have to actually write out my own autocorrelation vi (that I have found is not as easy as it looks), I have been trying to work out how to extract the data from the Nth element onwards.  So far I have been unsuccessful in doing this.

Note that from what I have gathered when an autocorrelation is done on dynamic light scattering data you essentially get an exponential curve and when I do eventually get some proper data to play with I would expect something similar (the data I have attached is some random noise I have generated so that I can work with my vi’s at the moment).

So any help in working out how to extract the relevant data would be appreciated.  I have attached my original autocorrelation vi and the one I have modified.  This was the final modification and it wasn’t able to extract the data I am after.  I have also included one of the ‘data’ files I have been working with (ie the noise data).

I am using LV 8.6 and thanks for any help that can be provided, or suggestions as to alternative approaches as well.

0 Kudos
Message 1 of 4
(3,378 Views)
Hey, not a huge fan of bumping threads (although I am doing that now), cos I think my original post got lost in the posts at the end of last week.
0 Kudos
Message 2 of 4
(3,346 Views)
Solution
Accepted by topic author scottum

Hi scottum,

 

Are you asking how to extract an array subset of data points? I would use the Array Subset with the starting position being N (from the array size before) and the length being the remaining length of the output (again, using Array Size).

 

Please correct me if I'm not understanding your question.

 

 

 

 

Jeff | LabVIEW Software Engineer
0 Kudos
Message 3 of 4
(3,318 Views)

Thanks Jeff, that looks like it works the way I wanted it to work.  Thanks for the help.

 

I think I had tried to use the subset array, but not with the connections you suggested and also not making use of the array size vi as well.

0 Kudos
Message 4 of 4
(3,294 Views)