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.

AWR1642BOOST: How to determine range and angle for plotting the azimuthal heat map TLV?

Part Number: AWR1642BOOST

Hi,

I have used the following matlab code to parse the heatmap TLV from the .dat file I have stored from the visulaizer. 

fin = fopen('StoredData.dat');
counter=1;
while ~feof(fin)
nbytes = 0;
outputpkt(counter).magicWord = fread(fin,4,'uint16');

if ((outputpkt(counter).magicWord(1)~=hex2dec('102')) ...
|| (outputpkt(counter).magicWord(2)~=hex2dec('304')) ...
|| (outputpkt(counter).magicWord(3)~=hex2dec('506')) ...
|| (outputpkt(counter).magicWord(4)~=hex2dec('708')))
a=5;
break;
end
% end

outputpkt(counter).version = fread(fin,1,'uint32');
outputpkt(counter).totalPacketLen = fread(fin,1,'uint32');
outputpkt(counter).platform = fread(fin,1,'uint32');
outputpkt(counter).frameNumber = fread(fin,1,'uint32');
outputpkt(counter).timeCpuCycles = fread(fin,1,'uint32');
outputpkt(counter).numDetectedObj = fread(fin,1,'uint32');
outputpkt(counter).numTLVs = fread(fin,1,'uint32');
outputpkt(counter).subFrameNumber = fread(fin,1,'uint32');
outputpkt(counter).tlv = struct;

for tlvcounter = 1:outputpkt(counter).numTLVs
outputpkt(counter).tlv(tlvcounter).tlv_type = fread(fin,1,'uint32');
outputpkt(counter).tlv(tlvcounter).tlv_length = fread(fin,1,'uint32');

%Reading the complex TLV data
outputpkt(counter).tlv(tlvcounter).azimuth = fread(fin,4096,'int16');

%Combining the complex data

for i=1:1:2048
outputpkt(counter).tlv(tlvcounter).azimuthAbs(i) = (complex(outputpkt(counter).tlv(tlvcounter).azimuth(i),outputpkt(counter).tlv(tlvcounter).azimuth(2*i)));
end

%Reshaping  into a [256,8] - (256 FFT range bins, 8 virtual antennas) matrix


outputpkt(counter).tlv(tlvcounter).azimuthAbsReshape = reshape((outputpkt(counter).tlv(tlvcounter).azimuthAbs),[256,8]);

%Obtaining row FFT for each range bin
outputpkt(counter).tlv(tlvcounter).azimuthIfft = fft((outputpkt(counter).tlv(tlvcounter).azimuthAbsReshape),[],2);
outputpkt(counter).tlv(tlvcounter).azimuthIfftAbs = abs(outputpkt(counter).tlv(tlvcounter).azimuthIfft);
end
counter = counter+1;
end
fclose(fin)

I have a few questions :

1. Is my parsing of heatmap TLV correct ? (All the other parsed variables seem to have an appropriate value)

2. What is the algorithm for determining the range and angle corresponding to each element in the matrix ? 

I am using sdk 1.2 and configuration is such that only azimuth heat map TLV is selected.

Thanks and best regards,

Karthik