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.

Post processing

Other Parts Discussed in Thread: AWR1243

Hi,

            I am working on developing my own post processing script (matlab) on the AWR1243 adc data (captured using DCA 1000)  but I see that the 1D FFT for range estimation on the mmWave studio post processing and my matlab post processing is similar but still very different. Could you point out what maybe the reasons for these differences :

1.5dBFs difference in power levels of peak

2.Large number of side lobes or noise from the system in my post processing

3.Very high levels of noise

WIth regards,

Mohan

  • Hi,

    The post processing performs a winodowing+1D FFT on the data similar to this code snippet. Maybe you are using a different window.

    This code snippet is NOT the studio post processing script. It is just an example we have used for a project

    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;
    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);
        radar_data_1dFFT = fft(adcOut,[], 1);%.*window_1D
       

    Thank you

    Cesar