DSPRelated.com
Forums

Phase Unwrapping of IQ data

Started by vishnuanayady 2 years ago12 replieslatest reply 2 years ago308 views

I am doing radar Sensor signal processing.

The radar sensor gives iq data corresponding to the range(sweeps)

I want to detect micro motion so that phas analysis is used.

Sweep is the distance measurement range. one sweep consist of 259 data points

Each sweep is noise- reducing lowpass filtered using 

  y(s) = alpha * y(s-1) + (1 - alpha)* x(s)

alpha is the smoothing factor (alpha_iq = 0.535261)

y(s) is the ouput sweep and x(s) is the input sweep(output data sample/signal from Radar Sensor).

To extract the Phase, Unwrapping of the phase of the IQ samples

unwrappingphase_56164.jpg

θ[s] is the unwrapped phase of a sweep. αθ = 0.995012, is a high pass filter to remove any build up of phase over time, L is the number of fast time samples, s is sweep index, d is range index,  is the phase of complex number, and y∗D is the complex conjugate of yD.yD(s,d) is the low pass filtered sweep

The problem I am facing is that, for detecting moving object, static object and non-moving object 

This unwrapping of phase is using. But I cannot differentiate the unwrapped phase of these 3 objects.

For non-moving objects it shows phase change. How can we differentiate the unwrapped phase of these 3 objects?.

I am attaching the plot of 100 phase array of these 3 cases

humanunwrappedphase7_57042.jpeg

non-movingobjectunwrappedphase3_41270.jp

humanunwrappedphase7_28997.jpeg

Fig1. Human Presence(Chest Movement) Fig2: Non-Moving Object, Fig3: Static Object,

Anyone please help me to solve this issue or give me another solution to extract the phase so that we can differentiate these cases

[ - ]
Reply by jbrowerOctober 1, 2022

Vishnu Anayady-

Can you show the plots with vertical axis gridmarks in multiples of pi/2 radians ?  It would make it easier to give phase unwrapping algorithm suggestions.

-Jeff

[ - ]
Reply by vishnuanayadyOctober 1, 2022

The vertical axis  shown in the plot is in radian.

because I used np.angle() function to obtain the phase, which is in radian

np.angle(np.mean (yd(s) * np.conjugate(yd(s-1)))

[ - ]
Reply by jbrowerOctober 1, 2022

Vishnu-

Then rescale. The point is that in order to know whether your phase unwrapping is working and/or can be improved, we need to see what happens exactly at pi/2 intervals. With your current graph, that's hard to see and as a volunteer willing to spend a bit of time to help you I'm not willing to graph for you.

"Ask and you shall receive" ... but you when you ask it has to be clear.

-Jeff

[ - ]
Reply by vishnuanayadyOctober 1, 2022

Dear Jeff


I am sorry for my fault. The data used to plot the above figures are lost.

Now I collected 3 new set of data , (i) Non-Moving Object

(ii) Human chest movement (ii) a moving objects. The unwrapped phase of these 3 objects are shown below

HumanChestMovmntUnwrappedPhase.jpeg

HumanPresenceUnwrappedPhase.jpeg

NonMovingObjectUnwrappedPhase!.jpeg

MovingObjectUnwrappedPhase.jpeg


[ - ]
Reply by jbrowerOctober 1, 2022

Vishnu-

A couple of quick questions ...

1) Your first plot (HumanChestMovmntUnwrappedPhase.jpeg) is actually wrapped phase, correct ?  It looks like phase wraps occur consistently at pi/2 transition points

2) Can you send me the time-series file ?  A wav file format would be good. In that case I can try some algorithms on it, for example Hypersignal has a phase unwrap algorithm that is tolerant to noise around the wrap points.

Thanks.

-Jeff


[ - ]
Reply by vishnuanayadyOctober 1, 2022

Dear Jeff,

Here I am attaching the time series file. i.e., 100 sweeps.

Each sweeps consists of 259 data points

HumanChestMovementSweeps1-500iqdata2.h 

HumanChestMovementSweeps500-1000iqdata2.h

[ - ]
Reply by jbrowerOctober 1, 2022

Vishnu-

I took a look at the first .h file, it looks like freq domain data (real and imaginary components). Can you clarify ? What I'm expecting is the original time series data, after data acquisition and subsequent filtering or other processing, up to the point where the next step would be FFT.

-Jeff

[ - ]
Reply by vishnuanayadyOctober 1, 2022

Dear Jeff

Yes its the I&Q data from the Radar Sensor for each sweep. 

This data is given to the  noise - reducing lowpass filter. 

Then it is used in the equation for phase unwrapping.

In these 2 steps we are processing with the I&Q data.

The data from the phase unwrapping is used to plot these graphs

I am not performing FFT .

Please tell me that which data you need ?

[ - ]
Reply by jbrowerOctober 1, 2022

Vishnu-

> Yes its the I&Q data from the Radar Sensor for each sweep.

Ok got it, thanks. I'll be able to spend some time on this over the weekend. Is the data in polar coordinate form ? It looks like it. Also what is the radar sensor part number ? I want to understand its sweep characteristics and resolution.

-Jeff

[ - ]
Reply by vishnuanayadyOctober 1, 2022

Dear Jeff

Thank you for your reply.

The I&Q data is in a+ib form. each data point is z = a+ib

polar coordinate r = abs(Z), phase ph = arg(Z)

Radar sensor is Acconeer Radar Sensor(XM112). 

The detected range is 30cm to 80 cm  from the sensor and the step length(range resolution) is 2mm

Radar sweep frequency (update rate )is 80Hz


Thank You

Vishnu