HI,
The ADC on the AWR1843 has 12 quantization bits, but the data acquired by the millimeter wave studio is 16 bits.
How are these 4-bit differences handled?
Thanks in advance,
Regards,
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.
HI,
The ADC on the AWR1843 has 12 quantization bits, but the data acquired by the millimeter wave studio is 16 bits.
How are these 4-bit differences handled?
Thanks in advance,
Regards,
Hi,
Please see similar thread
https://e2e.ti.com/support/sensors-group/sensors/f/sensors-forum/932561/awr2243boost-awr2243boost
Thank you
Cesar
Hi, Cesar
From the contents of the link, it was found that the ADC actually outputs 16 bits, but in 12 bit mode, the lower 4 bits are dropped.
I am using the DCA1000 to get the output of the ADC, what data type should I use to restore the original ADC data?A
When I opened the test ADC data with int16 of matlab, an integer value of ± 1 to 700 appeared.
If LSB4bit is 0 in 16bit, the value should be read in multiples of 32 (= 2 ^ 5). How can this phenomenon be explained?
Regards,
Here is some matlab code sniped that reads the raw data collected with DCA1000
Thank you
Cesar
%*********************************************************************
%% read binary file
%*********************************************************************
fname = strcat(DirName,fileName);
fid = fopen(fname,'r');
adcOut = [];
inputLoadingPosition = 0;
numFrames = 20;
for indexFrames=1:2
fseek(fid, inputLoadingPosition, 'bof');
dataChunk = fread(fid, chunkSize,'uint16','l');
inputLoadingPosition = ftell(fid);
dataChunk = dataChunk - (dataChunk >= 2^15) * 2^16;
% radar_data has data in the following format.
% Rx0I0, Rx0I1, Rx0Q0, Rx0Q1, Rx0I2, Rx0I3, Rx0Q2, Rx0Q3, ...
% The following script reshapes it into a 3-dimensional array.
% size(adcOut) = [ADC samples per chirp x Chirps per Frame x Number of virtual Channels]
len = length(dataChunk) / 2;
adcOut(1:2:len) = dataChunk(1:4:end) + 1j*dataChunk(3:4:end);
adcOut(2:2:len) = dataChunk(2:4:end) + 1j*dataChunk(4:4:end);
adcOut = reshape(adcOut, Chirp_NUM_ADC_sample_size, numTXAnt*4, Chirp_NUM_Chirps);
adcOut = permute(adcOut, [1, 3, 2]);
%*********************************************************************
%% Radar signal processing
%*********************************************************************
% Plot ADC Data for the 1st Chirp
figure(1);clf
plot(real(adcOut(:,1,1)),'r');
hold on
plot(imag(adcOut(:,1,1)));
legend('I-Channel', 'Q-Channel'); grid on
title('ADC data')
% 1D range-FFT across the 2nd dimensions (samples), no zero padding
fftSize1D = size(adcOut,1);
Hi, Cesar
Thanks to you, my understanding has improved.
Is "adc_Out" written at the end of the Matlab code the tone of the voltage value acquired by the ADC?
Since the full scale of ADC is 1V, for example,
1V => 32767
+0V => 0
-1V => -32768
Is this correct?
Regards,