This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

AWR1443BOOST: some questions regarding the vital sign lab

Part Number: AWR1443BOOST
Other Parts Discussed in Thread: IWR1443, AWR1642, AWR1443

Hello, 

I have been using the vital sign lab for a long time. Since I can get the complex range profile by the Matlab code, I got the range profile variations in time by plotting a graph like a waterfall. Indeed, the Doppler-range map is obtained. I have realized that the range waterfall shows an increment in the peak of the range profile over time (fig. 1). The Doppler-range map also does not have any Doppler components over some specific ranges. These specific ranges also varying every time the radar starts sensing (fig. 2). what are the reasons for these observations. 

Thanks in advance, 

 (fig. 1)

(fig. 2)

  • Hi,

    The source code is provided for further analysis. Please review it.

    Let me spend some time to think about your questions and will get back to you.

    Thank you
    Cesar
  • Hi,

    The data in fig1 does not seem correct. Have you used the data format we provide in the User's Guide of the latest IWR1443 TI Resource Explorer Release?

    Thank you
    Cesar
  • Hi Cesar,

    I am sure that I got the data correctly. I also tested the same thing with AWR1642. Similar figures are as follow:

    (fig. 1)

    (fig. 2) 

    For more clarification, I used the Matlab code which is provided in mm-wave training 1.3.0 for AWR1443 and I used the Qt code of AWR1642 which is in mm-wave automotive toolbox 1.0.0. These are some strange results which are not making sense. I think there is something wrong with the code or the radar hardware! 

    Best,

    Mostafa

  • Thank you

    Can you please provide more details about your experiment so we can try to reproduce it on our side.

    Please provide code diff if you have modified any code

    Thank you
    Cesar
  • Hello Cesar, 

    As I said before, I used Matlab GUI code in mm-wave training 1.3.0. I modified the code a little bit to be able to store the data coming out of the radar. Storing the data is a very simple task if one knows the variables.

    The original code is changed by adding some lines for storing data in a text format, namely "RecodedEstimations.txt" and "RangeProfile.txt". The former is for storing the radar estimates, the later is for storing complex range profile samples. For now, the data stored on the "RangeProfile.txt" file is used. 

    I got also the following data format for the vital sign lab on AWR1443. So, every time the radar sends a packet out, it contains the complex range profile samples which means I can obtain a sort of slow-fast time matrix (in radar terminology) for the range as well as Doppler-range map. The first matrix is nothing but stacking the range profile vectors over each other while the second matrix is resulted by applying the Doppler FFT over the range phases for each column of the first matrix. 

    For the slow-fast time matrix of the range profile, the samples have not been changed. For the Doppler-range map, some processing is done over each column. First of all, the phase unwrapping applied over the range phases. Secondly, the DC value of the range phase is subtracted from the phase values to only have non-zero Doppler shifts.

    I hope you can help me to figure out a solution to the problem. 

    Best, 

    Mostafa 

  • Hi

    Can you please send me the matlab code you are using?

    Thank you
    Cesar
  • Hi,

    I am trying to send you the lines of the Matlab code I added to "vitalSigns_demo_gui.m" which is in "mm-wave training 1.3.0" as I mentioned before.

    First of all, I added a line for creating a text file for storing required information.

    Secondly, right after reading a packet from the data serial port and extracting a vector of the range profile in " rangeProfile” variable, the vector is stored a similar code.

    Later on in offline processing, I read the vectors and stack them over each other in a row-wise manner in a matrix called RPmat. The phase of the matrix is taken by "angle" function in Matlab but it has to be unwrapped. The unwrapping procedure is in the attached file with "PhaseRange" is the angle(RPmat).

    % unwrapping the phase 
    for i = 1:length(PhaseRange)-1
        cols = PhaseRange(i+1,:)-PhaseRange(i,:) > pi;
        if (sum(cols)>0)
            colsIdx = find(cols ~=0);
            for jj = 1:length(colsIdx)
                PhaseRange(i+1,colsIdx(jj)) =  PhaseRange(i+1,colsIdx(jj))-2*pi;
            end
        end
        cols1 = PhaseRange(i+1,:)-PhaseRange(i,:) < -pi;
        if (sum(cols1)>0)
            colsIdx = find(cols1 ~=0);
            for jj = 1:length(colsIdx)
                PhaseRange(i+1,colsIdx(jj)) =  PhaseRange(i+1,colsIdx(jj))+2*pi;
            end
        end
        if cols1==cols & sum(cols1) > 0
           display('At the same time PhaseRange(i+1)-PhaseRange(i)<> \pi') 
        end
    end
    

    After that, the DC of the phase is removed from each column (corresponding to each range) and then an FFT of a desired size (say 256) is taken over each column to obtain those Doppler-range maps I showed you.

    I hope it completely describes the thing that I have done with the data. In my point of view, this is the only code that I can use for streaming continuously the range profile complex samples, isn't this?


    Best regards,

    Mostafa  

  • Hi,

    We are not able to reproduce the issue

    Closing the thread

    thank you
    Cesar