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.

AWR1843BOOST: AWR1843 Problem with Velocity Detection

Part Number: AWR1843BOOST
Other Parts Discussed in Thread: DCA1000EVM

Tool/software:

Hello,

I am currently using the AWR1843BOOST with DCA1000EVM to measure the velocity of moving objects. For signal processing, I am using MATLAB.

The issue I am facing is that the x-axis(velocity) of the velocity graph is limited, allowing us to measure speeds only up to 2.5 m/s. However, we need to measure speeds up to 100 km/h.

From my research, I found that modifying the configuration file might resolve this issue.

Below is our current config file:

[sensorStop
flushCfg
dfeDataOutputMode 1
channelCfg 15 5 0
adcCfg 2 1
adcbufCfg -1 0 1 1 1
profileCfg 0 77 429 7 57.14 0 0 70 1 256 5209 0 0 30
chirpCfg 0 0 0 0 0 0 0 1
chirpCfg 1 1 0 0 0 0 0 4
frameCfg 0 1 16 0 100 1 0
lowPower 0 0
guiMonitor -1 0 0 0 0 0 0
cfarCfg -1 0 2 8 4 3 0 15 1
cfarCfg -1 1 0 4 2 3 1 15 1
multiObjBeamForming -1 1 0.5
clutterRemoval -1 0
calibDcRangeSig -1 0 -5 8 256
extendedMaxVelocity -1 0
lvdsStreamCfg -1 0 1 0
compRangeBiasAndRxChanPhase 0.0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0
measureRangeBiasAndRxChanPhase 0 1.5 0.2
CQRxSatMonitor 0 3 5 121 0
CQSigImgMonitor 0 127 4
analogMonitor 0 0
aoaFovCfg -1 -90 90 -90 90
cfarFovCfg -1 0 0 8.92
cfarFovCfg -1 1 -1 1.00
calibData 0 0 0
sensorStart

]

Below is our current matlab code:

[

clear dca
dca = dca1000("AWR1843BOOST");


fs = dca.ADCSampleRate * 1e3;
fc = 77e9; 
c = 3e8; 
lambda = c / fc; 
ns = dca.SamplesPerChirp; 
nchirp = dca.NumChirps; 
sweepSlope = dca.SweepSlope * 1e12;
sweepTime = dca.ChirpCycleTime * 1e-6;
prf = 1 / (2 * sweepTime);


rangeGrid = (0:ns/2-1) * (c / (2 * sweepSlope) * fs / ns);


dopplerGrid = (-nchirp/2:nchirp/2-1) * (prf / nchirp) * lambda / 2;


figure;
subplot(2,1,1);
h1 = plot(dopplerGrid, zeros(size(dopplerGrid))); 
title("Speed Spectrum");
xlabel("Speed (m/s)");
ylabel("Magnitude");
ylim([0 10e4]);
grid on;

subplot(2,1,2);
h2 = plot(rangeGrid, zeros(size(rangeGrid))); 
title("Range Spectrum");
xlabel("Range (m)");
ylabel("Magnitude");
grid on;

stopTime = 100;
ts = tic;

while (toc(ts) < stopTime)
iqData = dca();
iqData = squeeze(iqData(:, 1, :));


iqData = iqData - mean(iqData, 1);

fftRange = abs(fft(iqData, ns, 1));
fftRange = mean(fftRange, 2); 
fftRange = fftRange(1:ns/2); 

fftSpeed = abs(fftshift(fft(iqData, nchirp, 2), 2));
fftSpeed = mean(fftSpeed, 1); 

set(h1, 'YData', fftSpeed(1:length(dopplerGrid)));
set(h2, 'YData', fftRange(1:length(rangeGrid)));

drawnow;
end

dca.release;

]

Could you advise on which parameters should be modified and how?

Thank you for your support.

Best regards,
HJ