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.

AWR1642: how to deal with raw data in MMW demo?

Part Number: AWR1642

Hi,

I have written a little parser for the data captured from the mmwave demo, and I have succesfully parsed all the TLVs, however I'm having trouble understanding one thing:

the peakVal in the detected objects doesn't match the corrsponding peaks in the range profile, 

I did proper conversion of range profile data and got it to match in my matlab plot the same dB values in the demo visualizer, but the orange dots of detected points doesn't have same dB values.

I was looking in the javascript code of the demo visualizer source and I think it doesn't use the peakVal reported in the detected object list, looks like it uses the range index of the detected object to put an orange dot on the curve! 

Did I understand it correctly? and if this is the case, what do those peak values in the detected object mean??

  • Please check the definition of the peak values in the demo documentation

    thank you

    Cesar
  • for sure I did that, otherwise I couldn't have implemented the parser,
    but I still can't figure out the math to get things to match, here are some numbers:

    Here is a detected point:
    rangeIdx = 18, dopplerIdx = 0, peakVal = 1615, (x = -0.123047, y = 0.775391, z = 0)

    and the corresponding range profile:
    range = [28451 31937 32569 31777 29407 26458 26062 26368 26903 27934 28335 28515 27945 27051 27174 27876 32168 35845 36465 34877 32903 31689 32151 32458 29266 27263 28276 29185 28991 28583 28894 29007 28685 29312 29798 30061 29183 30695 30956 28678 30126 29480 28944 28702 29585 27938 28154 27667 26221 25510 25870 26929 30016 31758 31219 29542 29292 31257 31831 33214 31751 30536 31310 29319 29082 28244 28482 29463 30818 31589 30709 27674 26424 30232 32330 31818 28814 25968 26568 26805 27373 27153 26746 27075 26464 26015 25475 25516 26803 26154 24379 23957 23511 23605 24457 25353 24510 24798 25074 24247 24653 25679 26767 26460 25427 24267 24079 22460 22278 22496 22598 22469 22956 23606 24692 24010 22442 23594 25710 26465 25478 27737 27768 25774 23924 23464 23867 24738 26852 27283 26821 26713 25673 23226 27314 27316 25691 27380 28275 29093 28079 28394 27038 27897 28813 28465 27419 25051 24191 24726 24232 24237 24446 22762 24047 26695 26823 26986 27640 25766 23038 24342 22915 21527 23071 24130 22319 20617 19947 19674 20559 20953 20907 20624 20723 20716 19933 19429 20167 20465 21081 19865 19203 19999 20310 20490 19923 19925 19919 20035 18842 19216 19039 19792 20908 20813 20010 20545 20766 20654 20189 19382 20217 20332 19617 19653 18841 18772 19243 19442 18830 19990 18892 19285 19327 18423 18238 19382 19433 18248 18280 18143 19134 18212 18903 19193 19238 18955 18295 18615 18301 18434 17417 17176 16949 17383 16702 17663 17810 16609 15388 14844 14799 14462 15720 15504 16274 17251 16400 15045 15919 15437 19463 22039 23124 26232 ];



    range[18] = 36465
    when converting to dB
    36465 / 256 / 4 * 10 * log10(2) = 107.2 dB

    now, how does 1615 peakVal map to 107.2 dB ???
    where 10 log10(1615) = 32.08
  • HI

    The range profile and the noise profile that we display in GUI are just the two columns of the same range detection matrix used for displaying range/Doppler heat-map, range profile is a zero Doppler column and noise profile is a N¬dop_fft/2-1 column. Each element of the detection matrix is a sum (or average in awr14xx)of log2 magnitudes of 2D FFT values across antennas. The log2 magnitude is in Q8 (awr16xx) or Q9 (awr14xx) format. So, on awr16xx, to get heat-map values to dB need to do the same calculation as is used to convert range profile to dB
    Value in dB = received value * 20*log10(2) / (256 * numTxAnt * numRxAnt) + some dB offset related to FFT size scale compensation in 1DFFT and 2DFFT (see processRangeNoiseProfile(), dspFftScalComp1() and dspFftScalComp2() in mmWave.js)

    Again the peakVal in the cloud point is the energy at range,Doppler,Azimuth index, while the corresponding peak in the Range/Doppler heat-map correspond to the energy of all cloud points at that range/Doppler index (may include more targets (detected or not detected) coming from different azimuth angles). Also there is difference in the computation. In the heat-map we do sum of log2 magnitudes across antennas (approximation function), while the peakVal in cloud point is coming from azimuth FFT peak as a square root of the sum of magnitude squares across antennas.


    Thank you
    Cesar
  • Closing the thread due to inactivity. If you have a related question, please open a new thread.