Respected ,
Please reply as soon as possible and go through the below detailed explanation.
Here i am trying to build my own radar post processing algorithm in matlab .For algorithm input i was capturing the real time ADC data of AWR1243boost EVM with DCA1000 EVM .
Using AWR1243boost +DCA1000EVM with mmwave studio , after opening the mmwave studio 02_00_00_02 application i connected the device and updated the firmware BSS,MSS .
When setting up TDM MIMO in mmWave Studio. I defining a chirp with only a single TX antenna associated with it for that chirp. Then defining subsequent chirps with different single TX enabled.
For example, let's say that I define three chirps starting at chirp #0 and go to chirp #2. Each chirp only enables one TX. In mmWave Studio, this would look like the following:
--TDM MIMO (all three TX enabled)
ar1.ChirpConfig(0, 0, 0, 0, 0, 0, 0, 1, 0, 0)
ar1.ChirpConfig(1, 1, 0, 0, 0, 0, 0, 0, 0, 1)
ar1.ChirpConfig(2, 2, 0, 0, 0, 0, 0, 0, 1, 0)
Now when I go to configure my frame to use these three chirps, this would look like the following:
ar1.FrameConfig(0, 2, 20, 128, 64,40, 0, 1)
From the above settings , I know that in adc.bin file the chirps are Tx1,Tx3,T2,Tx1,Tx3,T2,Tx1,Tx3,T2,Tx1,Tx3,T2,............................... Tx1,Tx3,T2. for all four antennas .
______________________________________________________________________________________________________________________________________________________________
Here my algorithm starts
Separation of chirps configuration in accordance with Tx
Tx1,Tx3,T2,Tx1,Tx3,T2,Tx1,Tx3,T2,Tx1,Tx3,T2,............................... Tx1,Tx3,T2. for all four antennas .
for i=1: Nframe
for j=1:Txantennas
1DFFT
2DFFT
end
CFAR detection
Detection matrix
for n=1:detection objects list
doppler compensation for TX3 i.e., X(5:8)
doppler compensation for TX2 i.e., X(9:12)
3DFFT
end
angle plot
end
i applied below logic as doppler compensation
dopplerCompensationIdx =current_doppler_index;
where current_doppler_index is lies between -dopplerfftsize/2:1:dopplerfftsize/2-1 ( for now the fft size is 64)
If (dopplerCompensationIdx >=numDopplerBins/2)
{
dopplerCompensationIdx -=(int32_t) numberDopplerBins;
}
%% for azimuth 1/2 and for elevation 1/3 is refered
dopplerCompensationIdx =dopplerCompensationIdx /2 ;
if (dopplerCompensationIdx < 0)
{
dopplerCompensationIdx +=(int32_t) numDopplerBins;
}
expDoppComp=azimuthModCoefs[dopplerCompensationIdx];
if (mod((dopplerIdx/2 ),1)~=0)
{
expDoppComp= azimuthModCoefsHalfBin;
}
X(5:8)=X(5:8)*expDoppComp;
X(9:12)=X(9:12)*expDoppComp;
these compensated values are given to angle estimation
even processing the data as mentioned above i am not getting correct azimuth angle
When i am doing angle fft on 8 antenna peaks i am getting error .i.e., X=[P1,P2,P3,P4,P5,P6,P7,P8] combined angle fft result showing error
if i do angle fft separately for X=[P1,P2,P3,P4] and X=[P5,P6,P7,P8] i was getting result correct ........................
If needed i can also send you the adc.bin file and adc_log_txt file to understand the problem and help me through ........................
Please help me ............................
Reference : doxygen document of AWR14XX and AWR16XX (algorithm flow and implementation is done with reference to SDK code's)
Thanks in advance