LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

measuring small signal using cross-correlation technique.

Hello...
I am working on a project to measure small signal using cross-correlation technique.
To perform cross-correlation of the two-channel data I am using the following procedure-
I have acquired two-channel data using NI PCI-5922 DAQ card. 
First I apply an appropriate window on the data.
Performing FFT on both channels of the acquired data 
Taking the complex conjugate of one of the FFT's.
Vector multiply the FFT and the complex conjugate FFT
Vector Accumulate the sum of the Vector Multiply step above
Repeat above for as many averages as are needed
At the end of the vector averaging, Dividing the sum of the vector averages by the number of Cross-Correlations.
After performing all the steps using Labview programme I don't get an appropriate result what I want.  I doubt some steps like vector multiply step, I just multiply simply the FFT and the complex conjugate FFT. The step of vector averaging for that I have just taken the Mean of the data in the For-loop. These two steps I have doubted. Please help me regarding this programme.
0 Kudos
Message 1 of 5
(3,217 Views)

At a first glance your coding looks right. However I'd suggest to simplify it by using some of the specialized functions in LabVIEW. You can use some of the analysis VIs from the Waveform Measurements palette to calculate the FFT with Re-Im output (that can easily be combined to a complex array) or you can use the Cross Spectrum VI directly (likewise Re-Im output). That one can even average for you. Alternatively you can go the low-level route and calculate the FFT directly (the output is a complex array).

billede.png

What could be useful would be if you could save example data on your front panel and re-post your VI. Also if you could expand a little on what you mean with not getting an appropriate result. Is it totally off?

 

Also for instance the three following implementations are equivalent

billede.png

 

Other questions: Do you really need a Hanning window?

0 Kudos
Message 2 of 5
(3,192 Views)

I'm not sure I understand the question.  Do you want to know the cross-correlation of the two signals that you measured (useful when one may be a time-delayed version of the other, and you want to know the time delay)?  Do you want a Cross-Spectrum (and, again, what is the question)?

 

Vector-averaging can be tricky.  Vectors, of course, have more than one component, so simply taking the mean of the amplitudes of the vectors might not be the correct thing to do.  What does your course on Signal Theory tell you to do?

 

Bob Schor

0 Kudos
Message 3 of 5
(3,171 Views)

Vector averaging of the cross correlation is useful if the signals are weak (noisy) and the delay between them is (more or less) constant. The mean value is calculated for the complex values so the resulting magnitude (post averaging) is probably a useful result.

 

But I agree it could be good to know more about the actual application and see sample data.

0 Kudos
Message 4 of 5
(3,169 Views)

Dear Bob_Schor,

thanks for your reply,

I am working on two channel noise detection system for measuring power and cross-spectral densities of current fluctuation near about Mhz in DUT at low temperature. To measure the noise in the sample at cryogenic temperature is difficult since the sample noise usually is much smaller than the thermal noise of the components in the detecting circuit and the parasitic noise of the amplifier of the detecting circuit. Cross-correlation is one way to solve this problem. Cross-correlation measurement eliminates all these noise by measuring "in phase" signal between two different voltage channel.

Cross-correlation technique require two amplification lines which are sampled simultaneously using national instruments PCI-5922 digitizer at a sampling rate of 10MS/s and taking 10368 samples at a time. I am sampling two channel simultaneously which is highlighted in the picture below.

cross-correlation VI.PNG

 

 

The highlighted part of the picture below is my question. Which means whatever I am doing in the LabVIEW programme for measuring the cross spectral density is correct or not? First doubt is vector multiply step, I just simply multiply the FFT and the complex conjugate FFT. The step of vector averaging which is the most important step in the cross correlation technique. In vector averaging step I have just taken the Mean of the data in the For-loop. How can I perform vector averaging in Labview of the data?2.PNG

 

No. of Average means Nave. spectras are accumulated to provide the statistical average over time.

1.PNG

 

Please help me regarding to this. So, I can correct my VI and I able to perform my experiment.

 

Thank you once again....

0 Kudos
Message 5 of 5
(3,150 Views)