LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

Phase unwrapping

Hi all,
I'm still relartively new to LabView and there is one issue I have no luck in solving; unwrapping phase. Included is a simple vi with a tone measurement to detect phase from a simulated signal (the final program features DAQ assistants and frequency sweeping etc.). The issue is clear, the tone measurements operates within a certain range, for example a phase of 389 degrees is measured at 29 degrees. For my final program it is necessary to read the phase to values larger  than 2 pi (360 degrees).

I have tried to implement the unwrap phase vi to no avial; my knowledge on LabView is not good enough and I can't seem to find the example suggested at support (labview\examples\analysis\measxmpl.llb) on the harddrive in college.

 

Is there any advice or help one could offer me to increase the range at which the phase is measured?

0 Kudos
Message 1 of 10
(7,202 Views)

If you have 2 signals that are 389 degrees out of phase, to the observer this is exactly the same as being 29 degrees out of phase.

 

If you are observing the signals, there is no way to know whether they are 29 degrees out of phase, 389 degrees out of phase, or indeed any number (29+360n).

Dan
CLD
Message 2 of 10
(7,143 Views)

So basically it cannot be done? I think I will set about using time measurements to calculate phase instead;

(The time difference between sent and received waves(s)/Period of one wave(s))*2Pi

this will give me phase in radians.

Thanks for the help.

0 Kudos
Message 3 of 10
(7,135 Views)

What exactly do you mean - "using time measurements".

 

This will only work if you can distiguish one cycle of a sinusoidal signal from the next.  Otherwise, you are essentially doing the same thing as before, and will get the same result.

 

Can you post some code - I would be interested to see how you are going about this.

Dan
CLD
Message 4 of 10
(7,130 Views)
Phase unwrapping is a spectral concept.  You can not unwrap a single tone.  Perform the FFT on your input and use the "unwrap phase.vi" or just use the "Amplitude and Phase Spectrum VI".
Message 5 of 10
(7,127 Views)
DanB1983: If I have two sine wave signals with a time delay between them I can calculate the phase using either the frequency or period of the wave. So I am working on measureing this time delay between two waves.
0 Kudos
Message 6 of 10
(7,109 Views)

Yes, I understand how you will convert a time difference to a phase difference, but how will that make it any more possible to measure a phase difference of >360 degrees?

 

See attached diagram - measuring A will give you the phase difference - x.  B and C would give you x+360 and x+720 respectively.

 

How will you know which to measure?

Dan
CLD
Message 7 of 10
(7,079 Views)
Ah yes I understand your point but I probably should have explained my program/apparatus etc. to you. I am using ultrasonic sensors in conjunction with LabVIEW. So basically when I send the sine wave from LabView to a transmitter it will travel to the receiver and LabVIEW will cdollect the wave. There is a time delay between sent and received signals, this initial time delay will be used to measure how out of phase the two signals are.
0 Kudos
Message 8 of 10
(7,063 Views)
What you are describing is latency (and/or propagation delay) not 'directly' phase.  To measure this latency your reciever and transmitter will have to be in sync.  If your frequency/period is known you should be able to calculate the total "phase" (Latency/Period*360 I guess).
Message 9 of 10
(7,053 Views)

What about measuring the difference between two acquisitions, and detecting when phases goes from +360 to 0, and from 0 to 360 ?

You can increase a counter when the difference is < -180 and decrease it when the difference is > +180.

To get the total phase you would have to add counter*360.

 

 

Cordialement,


Micaël DA SILVA
Message 10 of 10
(7,050 Views)