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: What is the unit of x=-209,y=637 in the picture? How to convert into meters?

Part Number: IWR1443

Hello,please,What is the unit of x=-209,y=637 in the picture? How to convert into meters?

  • Hi,

    This is the define of the X,Y,Z.

    typedef volatile struct MmwDemo_detectedObj_t
    {
        uint16_t   rangeIdx;     /*!< @brief Range index */
        int16_t   dopplerIdx;   /*!< @brief Doppler index. Note that it is changed
                                     to signed integer in order to handle extended maximum velocity.
                                     Neagative values correspond to the object moving toward
                                     sensor, and positive values correspond to the
                                     object moving away from the sensor */
        uint16_t  peakVal;      /*!< @brief Peak value */
        int16_t  x;             /*!< @brief x - coordinate in meters. Q format depends on the range resolution */
        int16_t  y;             /*!< @brief y - coordinate in meters. Q format depends on the range resolution */
        int16_t  z;             /*!< @brief z - coordinate in meters. Q format depends on the range resolution */
    } MmwDemo_detectedObj;
    

    To convert it to meters, you can refer to this thread:

    Thanks.

    Regards,

    Wesley

  • Hi Wesley,

    Q format depends on the range resolution. After the experiment, I found that when the range resolution is 0.04, X/Y/Z is expressed in Q9 format; when the range resolution is 0.3, X/Y/Z is expressed in Q7 format; when the range resolution is 0.977, X/Y/Z is expressed in Q5 format. So what is the relationship between Q format and range resolution? Is there any law?

    Thanks~
  • Hi,

    The converting formula is as follows

    xyzOutputQFormat = (uint32_t) ceil(log10(16./fabs(rangeResolution))/log10(2));

    A table below for your convenience to refer.

    rangeResolution>=16.0000000000, xyzOutputQFormat=0
    rangeResolution>=8.0000000000, xyzOutputQFormat=1
    rangeResolution>=4.0000000000, xyzOutputQFormat=2
    rangeResolution>=2.0000000000, xyzOutputQFormat=3
    rangeResolution>=1.0000000000, xyzOutputQFormat=4
    rangeResolution>=0.5000000000, xyzOutputQFormat=5
    rangeResolution>=0.2500000000, xyzOutputQFormat=6
    rangeResolution>=0.1250000000, xyzOutputQFormat=7
    rangeResolution>=0.0625000000, xyzOutputQFormat=8
    rangeResolution>=0.0312500000, xyzOutputQFormat=9
    rangeResolution>=0.0156250000, xyzOutputQFormat=10
    rangeResolution>=0.0078125000, xyzOutputQFormat=11
    rangeResolution>=0.0039062500, xyzOutputQFormat=12
    rangeResolution>=0.0019531250, xyzOutputQFormat=13
    rangeResolution>=0.0009765625, xyzOutputQFormat=14
    rangeResolution>=0.0004882813, xyzOutputQFormat=15
    rangeResolution>=0.0002441406, xyzOutputQFormat=16
    rangeResolution>=0.0001220703, xyzOutputQFormat=17
    rangeResolution>=0.0000610352, xyzOutputQFormat=18
    rangeResolution>=0.0000305176, xyzOutputQFormat=19
    rangeResolution>=0.0000152588, xyzOutputQFormat=20
    rangeResolution>=0.0000076294, xyzOutputQFormat=21
    rangeResolution>=0.0000038147, xyzOutputQFormat=22
    rangeResolution>=0.0000019073, xyzOutputQFormat=23
    rangeResolution>=0.0000009537, xyzOutputQFormat=24
    rangeResolution>=0.0000004768, xyzOutputQFormat=25
    rangeResolution>=0.0000002384, xyzOutputQFormat=26
    rangeResolution>=0.0000001192, xyzOutputQFormat=27
    rangeResolution>=0.0000000596, xyzOutputQFormat=28
    rangeResolution>=0.0000000298, xyzOutputQFormat=29
    rangeResolution>=0.0000000149, xyzOutputQFormat=30

    The formula is located in C:\ti\mmwave_sdk_01_01_00_02\packages\ti\demo\xwr14xx\mmw\main.c

                dataPathObj->xyzOutputQFormat    = (uint32_t) ceil(log10(16./fabs(dataPathObj->rangeResolution))/log10(2));

    You may also refer below posts for the detail