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.

DCA1000EVM: Data alignment of multiple Chirp Tx capture data

Other Parts Discussed in Thread: DCA1000EVM, AWR1843

We are capturing data of Tx 2ch + Rx 4ch with AWR1243Boot + DCA1000EVM and trying to process the signal with Matlab.

We captured data with TDM MIMO (2 Tx + 4 Rx) with reference to the following QA thread.
DCA1000EVM: AWR1642EVM mmWave studio TDM or BPM MIMO setting
e2e.ti.com/.../713215

It was confirmed that the capture data size was correct.
Data size IQ (32bit) x number of samples (256) x number of Chirp loops (128) x number of Rx (4) x Chirp Tx (2) = 1024 Byte

However, the data alignment of the saved binary file is unknown. Could you tell me the format rules?
Initially I thought it was the following data alignment, but when Config = 2 in the Post Proc of mmWave Studio, it did not match the result in Matlab.

mmwave_studio_user_guide.pdf has a description of the data format when captured by DCM1000EVM with one Chirp parameter, but there is no format description with multiple Chrip parameters.

  • To TI Engineer

    We have additional question.

    We confirmed the following link.

    https://e2e.ti.com/support/sensors/f/1023/p/713215/2643238?tisearch=e2e-sitesearch&keymatch=DCA1000EVM%2525252520AND%2525252520TDM%2525252520MIMO#2643238

    The profile and chirp of the SensorConfig tab were set to the following referring to the link.

    In addition, I set the Frame as follows.

    What pattern is the raw.bin data alignment that DCM1000EVM stores?

    We think following pattern.

    Chirp Index Tx
    Chirp1 Tx1 Rx0 I 0 Rx1 I 0 Rx2 I 0 Rx3 I 0 Rx0 Q 0 Rx1 Q 0 Rx2 Q 0 Rx0 Q 255 Rx1 Q 255 Rx2 Q 255 Rx3 Q 255
    Chirp2 Tx1 Rx0 I 0 Rx1 I 0 Rx2 I 0 Rx3 I 0 Rx0 Q 0 Rx1 Q 0 Rx2 Q 0 Rx0 Q 255 Rx1 Q 255 Rx2 Q 255 Rx3 Q 255
    Chirp3 Tx1 Rx0 I 0 Rx1 I 0 Rx2 I 0 Rx3 I 0 Rx0 Q 0 Rx1 Q 0 Rx2 Q 0 Rx0 Q 255 Rx1 Q 255 Rx2 Q 255 Rx3 Q 255
    Chirp4 Tx1 Rx0 I 0 Rx1 I 0 Rx2 I 0 Rx3 I 0 Rx0 Q 0 Rx1 Q 0 Rx2 Q 0 Rx0 Q 255 Rx1 Q 255 Rx2 Q 255 Rx3 Q 255
    Chirp256 Tx1 Rx0 I 0 Rx1 I 0 Rx2 I 0 Rx3 I 0 Rx0 Q 0 Rx1 Q 0 Rx2 Q 0 Rx0 Q 255 Rx1 Q 255 Rx2 Q 255 Rx3 Q 255
    Chirp1 Tx2 Rx0 I 0 Rx1 I 0 Rx2 I 0 Rx3 I 0 Rx0 Q 0 Rx1 Q 0 Rx2 Q 0 Rx0 Q 255 Rx1 Q 255 Rx2 Q 255 Rx3 Q 255
    Chirp2 Tx2 Rx0 I 0 Rx1 I 0 Rx2 I 0 Rx3 I 0 Rx0 Q 0 Rx1 Q 0 Rx2 Q 0 Rx0 Q 255 Rx1 Q 255 Rx2 Q 255 Rx3 Q 255
    Chirp3 Tx2 Rx0 I 0 Rx1 I 0 Rx2 I 0 Rx3 I 0 Rx0 Q 0 Rx1 Q 0 Rx2 Q 0 Rx0 Q 255 Rx1 Q 255 Rx2 Q 255 Rx3 Q 255
    Chirp4 Tx2 Rx0 I 0 Rx1 I 0 Rx2 I 0 Rx3 I 0 Rx0 Q 0 Rx1 Q 0 Rx2 Q 0 Rx0 Q 255 Rx1 Q 255 Rx2 Q 255 Rx3 Q 255
    Chirp256 Tx2 Rx0 I 0 Rx1 I 0 Rx2 I 0 Rx3 I 0 Rx0 Q 0 Rx1 Q 0 Rx2 Q 0 Rx0 Q 255 Rx1 Q 255 Rx2 Q 255 Rx3 Q 255

    Chirp Index Tx
    Chirp1 Tx1 Rx0 I 0 Rx1 I 0 Rx2 I 0 Rx3 I 0 Rx0 Q 0 Rx1 Q 0 Rx2 Q 0 Rx0 Q 255 Rx1 Q 255 Rx2 Q 255 Rx3 Q 255
    Chirp2 Tx2 Rx0 I 0 Rx1 I 0 Rx2 I 0 Rx3 I 0 Rx0 Q 0 Rx1 Q 0 Rx2 Q 0 Rx0 Q 255 Rx1 Q 255 Rx2 Q 255 Rx3 Q 255
    Chirp3 Tx1 Rx0 I 0 Rx1 I 0 Rx2 I 0 Rx3 I 0 Rx0 Q 0 Rx1 Q 0 Rx2 Q 0 Rx0 Q 255 Rx1 Q 255 Rx2 Q 255 Rx3 Q 255
    Chirp4 Tx2 Rx0 I 0 Rx1 I 0 Rx2 I 0 Rx3 I 0 Rx0 Q 0 Rx1 Q 0 Rx2 Q 0 Rx0 Q 255 Rx1 Q 255 Rx2 Q 255 Rx3 Q 255
    Chirp256 Tx2 Rx0 I 0 Rx1 I 0 Rx2 I 0 Rx3 I 0 Rx0 Q 0 Rx1 Q 0 Rx2 Q 0 Rx0 Q 255 Rx1 Q 255 Rx2 Q 255 Rx3 Q 255
    Chirp1 Tx1 Rx0 I 0 Rx1 I 0 Rx2 I 0 Rx3 I 0 Rx0 Q 0 Rx1 Q 0 Rx2 Q 0 Rx0 Q 255 Rx1 Q 255 Rx2 Q 255 Rx3 Q 255
    Chirp2 Tx2 Rx0 I 0 Rx1 I 0 Rx2 I 0 Rx3 I 0 Rx0 Q 0 Rx1 Q 0 Rx2 Q 0 Rx0 Q 255 Rx1 Q 255 Rx2 Q 255 Rx3 Q 255
    Chirp3 Tx1 Rx0 I 0 Rx1 I 0 Rx2 I 0 Rx3 I 0 Rx0 Q 0 Rx1 Q 0 Rx2 Q 0 Rx0 Q 255 Rx1 Q 255 Rx2 Q 255 Rx3 Q 255
    Chirp4 Tx2 Rx0 I 0 Rx1 I 0 Rx2 I 0 Rx3 I 0 Rx0 Q 0 Rx1 Q 0 Rx2 Q 0 Rx0 Q 255 Rx1 Q 255 Rx2 Q 255 Rx3 Q 255
    Chirp256 Tx2 Rx0 I 0 Rx1 I 0 Rx2 I 0 Rx3 I 0 Rx0 Q 0 Rx1 Q 0 Rx2 Q 0 Rx0 Q 255 Rx1 Q 255 Rx2 Q 255 Rx3 Q 255

    Are we misunderstood in the first place?

    Best Regards,

    Suzukimo

  • Hi,

    The data format is described in the mmWave Studio User's Guide.

    Here is a small section of matlab code that we use to read raw data captured in MIMO for AWR1843.

    Thank you

    Cesar

    % Data capture
    chunkSize = 2*Samples_Per_Chirp*Chirps_Per_Frame*numAnt;

    %*********************************************************************
    %% read binary file
    %*********************************************************************
    fname = strcat(DirName,fileName);
    fid = fopen(fname,'r');
        
    adcOut = [];
    inputLoadingPosition = 0;
    for indexFrames=1:numFrames
        
        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);

  • To Cesar

    Thank you for your replay, and matlab code.

    I'll try this.

    Best regards,

    suzuki