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.

IWR1443: raw data

Part Number: IWR1443

Hi,

I have a few questions concerning the recovery of raw data from the mmwave demo visualizer.  I have notice a number of other people with similar interests.  I have both looked at both the reference index.html file and the source code in the visualizer gui.  I have also tried to locate the capture_demo.m file for additional guidance but can not find it in either the linux or windows sdk version.  It was suggested to someone to reinstall it but that does not help.  It is just not available in the current versions.

I have parsed the raw data created by the mmwave demo visualizer using
the iwr1443 senor chip.  The data from the range and statistic tags
appear to be the same as presented in the Demo Visualizer but I have a
few questions concerning the data from the detectedObj tag.

1. On page 10 of the user manual (swru529a.pdf), the threshold scale
has three formats, i.e., linear, dB and CLI.  I am confused why the
need for three scales and I am slightly confused by what CLI is. Can
you please explain?

2. It appears that the magnitude levels provided in range tag has a
linear scale.  Is this correct?  I assume that the plotted magnitudes
in the Demo Visualizer is 10log(linear) but from the reference in
Question 1, 20log_10 is used and I see that the code for peakVal uses
10log_10 (peakval.gif).  Can you provide some clarification?  It has been verified in the forum that is is 10ln(linear).

3. Questions pertaining to the detected object tag.  Examples of a measurement for a stationary target
are shown below for the following questions.

      range                  dopplerIdx     peakVal      x                                  y                             z                            sqrt(x*x+y*y)
   4.08816971E-02      0                     1239   -3.90625000E-02   9.76562500E-03   0.00000000       4.02647033E-02
   1.83967650               0                   17534  -0.115234375          1.83789062           0.00000000       1.84149969    
   4.08816971E-02      0                      1205    2.73437500E-02   2.92968750E-02   0.00000000       4.00747731E-02

Don't know why the third line repeats the same range value but the  other values are different.  The display range plot in the gui is shown in image2.gif and it only displays to detected objects.  Please advise.

  a. The range provided by the rangeIdx parameter and the x, y, z
  values (sqrt(x*x+y*y+z*z)) are very close but not the same. Is this
  due to some rounding off error?  For the data in the above listing, the target was stationary.  When it is moving, the spread between the range column and sqrt column is larger.

  b. The peakVal number for each object does not seem to correspond to
  the peak values of the range tag information. Are the peakVal
  numbers in a linear scale as the range tag data?  The range tag data in the vicinity of the two large returns are

Range                      Amplitude

  4.08816971E-02        9656
   8.17633942E-02       10184
  0.122645088           10072
  0.163526788            9824
....

 1.71703124            9032
   1.75791299            9144
   1.79879463           10440
   1.83967638           11664
   1.88055801           11856
   1.92143977           11848
   1.96232140           11376
   2.00320315            9856

Different values than the detected object data.

c. I am having difficulties reproducing the velocities that the gui
  is producing. The image conversion.gif illustrates what the code is
  using. My measurement object is a corner reflecting moving on a
  track at a known fixed rate. I observe the velocity value generated
  by the gui and I can not generate this value. My code is shown in
  code.gif and is functionally the same as in conversion.gif.  My
  velocity values appear to have a resolution of 1 mps when scaled but
  your velocity resolution equation indicates that the resolution
  should be much finer. Thoughts?

  d. Image range.gif shows my recoverd data for detectedObj data and
  the range data.  The range data agrees with the generated curve in
  the Demo Visualizer.  The red stars are from the detectedObj tag.
  There appear to be many objects at essentially the same distance but
  with different magnitudes.  I would not have expected so many
  detected objects at the same location and the magnitudes are all
  over the place.  Your thoughts?

4. The expression provided in
mmwave_sdk_02_00_00_04/packages/ti/demo/xwr16xx/mmw/docs/doxygen/html/index.html
for velocity given dopplerIdx must be a mistake.  I would say that
this expression yields the velocity resolution and not the velocity as
suggested in conversion.gif. Is this correct? Please see
conversion.gif and index.gif.

Thanks.

Al

  • Hi Allen,

    Thanks for your questions. As these These are multiple questions and we need some time to discuss these with different experts. We will post responses to various questions as they become available and we expect to provide some responses by 5/24.

    Thanks

    -Nitin

  • Hi Nitin,

    Sorry for the all the questions.  I have seen other posts date after my post which might help me understand some some of what I have seen regarding the differences peak values in the detected object tag the range tag differences of the range value and the value given by sqrt(x*x+y*y) in the range tag.

    Still unsure about the reported velocity data though.

    Thanks.

    Al

  • Hi Allen,

    Sorry for the delay, the velocity conversion formula is correct and it calculates the velocity (not velocity resolution) as explained below:

    Consider for simplicity that a chirp is designed with maximum velocity of 16 m/s and a velocity resolution of 1 m/s. We'll need at least a 16 pt. doppler FFT and each FFT index will represent 1 m/s.

    Now, looking at the conversion formula given in the demo documentation:

    velocity in m/s = doppler index * ( speed of light(3e8) / (2 * (startFreq * 1e9) * ((idleTime + rampEndTime) * 1e-6) * numChirpsPerFrame) ) 

    The term highlighted in yellow can be written as c/2 * v * Tf, (where c = speed of light, v = start frequency, and Tf = Total active frame time (chirping part)

    As c/v = Lambda, the highlighted term can be further reduced to Lambda/(2 * Tf), which is the formula for velocity resolution and in our example represents 1 m/s.

    When multiplied by the doppler index, say 7, this becomes 7 m/s i.e. the actual velocity.

    Please let me know if you need further support.

    Thanks

    -NItin 

  • Hi Nitin,

    Thank you for your reply.  Your reply somewhat addressed by concern.  This is my concern. TI has two references that specifies how the velocity is calculated.  One is provided in mmwave_sdk_02_00_00_04/packages/ti/demo/xwr16xx/mmw/docs/doxygen/html/index.html.  This reference agrees with what you have stated.  Another source is the code which the mmwave demo visualizer uses.  This source states something else and since the visualizer uses this to report the values, one might be inclined to put greater faith in this source.  I have screen captured both references and attached these images.  Note that the demo code has the velocity equation provided by the html file as the velocity resolution equation.

    Please advise.

    Thanks.

    Al

  • Hi Allen,

    The actual Doppler is computed using this dopplerResolutionMps value in function processDetectedPoints as shown below:

                // convert doppler index to doppler (meters/sec)
                var doppler = math.map(dopplerIdx, function(value, idx, ary) {
                    return value*Params.dataPath[subFrameNum].dopplerResolutionMps;
                });

    Hope the above clarifies the velocity computation in the SDK demo.

    Thanks

    -Nitin 

  • Hi Nitin,

    I have been resolving my issues. Based upon the default values for the profile.cfg file, I have mostly addressed my questions. The demo sdk provides data for the maximum range, range resolution, maximum velocity and velocity resolution on the "plot screen". Application report swra553 (programming chirp parameters in ti radar devices) provides equations for these values (pages 3 and 4). I agree with these equations but I can not recover the same value for the maximum velocity that the sdk provides. I am a factor of 2 too large.

    Max velocity is lambda/(4T_c)
    and
    velocity resolution is lambda/(2NT_c).

    From the profile.fig
    profileCfg 0 77 429 7 57.14 0 0 70 1 240 4884 0 0 30
    frameCfg 0 1 16 0 100 1 0

    lambda =.3/77
    T_c=idle_Time+rampEndTime=429+57.14 (us)
    N=numChirpsPerFrame=32 (two transmit antennas so 2*16)

    I get for max velocity a value of 2 m/s while the sdk indicates 1m/s. Can you please indicate my error? I believe the number of doppler bins is 32 so the max velocity should be N/2*velocity resolution.

    Please confirm that the number of range bins in this case is 240 too. By the same reasoning, the maximum range distance should by (240/2)*range resolution. Correct?

    Perhaps you could straighten me out on this too. In the mmwave deom visualizer guide, swru529a, threshold definitions are provided. They are
    T_lin=2^(T_CLI/512)
    T_db=20log10(2^T_CLI/512)=6T_CLI/512
    T_CLI=512T_dB/6
    From the cfarCfg 0 2 8 4 3 0 1280 input, 1280 is the cli for a 15db threshold value. For the life of me, I can not relate the peakval in the detectedobject output or magnitude values in the range output. I assume these values are linear values. Correct? Converting the magnitude values to dB values results in numbers that do not match the plotted values in the sdk demo. Can you please set me straight?

    Thanks.

    Al
  • Hi Allen,

    Regarding velocity, if you're using a MIMO configuration i.e. with 2 transmitters, the effective chirp time Tc is doubled since with TDM MIMO, each transmitter chirps alternatively. This halves the maximum velocity so you need to apply the same factor in your own calculation as well. You can refer to the following threads for more details:

    e2e.ti.com/.../2337141
    e2e.ti.com/.../674256

    The peak values is a linear value and it represents the FFT magnitude. Please search the forum for peak value and you should be able to find quite a few threads on this subject.

    Thanks
    -Nitin
  • Hi Nitin,

    Thank you for your response. I have been out of the office for the past week.

    I am sure it is difficult to answer all questions to the detail one could for a complex system such as this motion sensor. I have tried to ask intelligent questions to obtain a simple and clear answer. I have first scanned earlier posted question to glean any answers to my question at hand since I do not want to bother anyone for a response for me to look at past posts.

    TI has a number of application notes and white papers. They have been helpful in many cases but for a person who did not develop the product, there are a number of holes. I would like to have explored my application a bit more with your demo software but it has come down for me to generate my own software for my application.

    Please mark this issue as resolved though it is not.

    Al