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.

AWR1843: ADC data acquisition

Part Number: AWR1843

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, 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,

  • Yes, adc_Out is the raw ADC data

    thank you

    Cesar