Hi,
I would like confirmation on one variable in your oob demo. Your clutter reduction algorithm involves three loops over indices, rngIdx, antIdx and dopIdx. The rngIdx are over the range bins since the first fft has been done. The antIdx are over the number of virtual antennas. The dopIdx are over ?. It is listed as the doppler bins but the second fft has not been done yet. So would it not be over the number of chirps but then numDopplerchirp != number of chirps.
It the inner loop is actually over the doppler bins, how does one access the fft'ed data for the first chirp for each of the virtual antennas?
Thanks.
Al
for (rngIdx = 0; rngIdx < dataPathObj->numRangeBins; rngIdx++)
{
for (antIdx = 0; antIdx < dataPathObj->numVirtualAntennas; antIdx++)
{
meanVal.real = 0;
meanVal.imag = 0;
for (dopIdx = 0; dopIdx < dataPathObj->numDopplerBins; dopIdx++)
{
meanVal.real += fftOut1D[rngIdx*(dataPathObj->numDopplerBins*dataPathObj->numVirtualAntennas) +
antIdx + dopIdx*(dataPathObj->numVirtualAntennas)].real;
meanVal.imag += fftOut1D[rngIdx*(dataPathObj->numDopplerBins*dataPathObj->numVirtualAntennas) +
antIdx + dopIdx*(dataPathObj->numVirtualAntennas)].imag;
}
meanVal.real = meanVal.real/dataPathObj->numDopplerBins;
meanVal.imag = meanVal.imag/dataPathObj->numDopplerBins;
for (dopIdx = 0; dopIdx < dataPathObj->numDopplerBins; dopIdx++)
{
fftOut1D[rngIdx*(dataPathObj->numDopplerBins*dataPathObj->numVirtualAntennas) +
antIdx + dopIdx*(dataPathObj->numVirtualAntennas)].real -= meanVal.real;
fftOut1D[rngIdx*(dataPathObj->numDopplerBins*dataPathObj->numVirtualAntennas) +
antIdx + dopIdx*(dataPathObj->numVirtualAntennas)].imag -= meanVal.imag;
}
}
}
}