Inner Loop Analysis - 2025.2 English - XD100

Vitis Tutorials: AI Engine Development (XD100)

Document ID
XD100
Release Date
2025-12-05
Version
2025.2 English

The inner loop of the system level MATLAB model as outlined in [4] is shown in the following code block. This captures the full algorithmic processing for a single radar pulse. The final SAR image is obtained by processing a large number of radar pulses and combining them coherently.

Line  1:  data_o.r_vec = linspace(-data_o.Nfft/2,data_o.Nfft/2-1,data_o.Nfft)*data_o.maxWr/data_o.Nfft;
Line  2:  % Loop through every pulse:
Line  3:    for ii = 1 :  data_o.Np
Line  4:      % Form the range profile with zero padding added:
Line  5:      rc = fftshift(ifft(data_o.phdata(:,ii),data_o.Nfft));
Line  6:      % Calculate differential range for each pixel in the image (m):
Line  7:      dist_sq = (data_o.AntX(ii)-data_o.x_mat).^2 + ...
Line  8:                (data_o.AntY(ii)-data_o.y_mat).^2 + ...
Line  9:                (data_o.AntZ(ii)-data_o.z_mat).^2;
Line 10:      dR = sqrt(dist_sq) - data_o.R0(ii); 
Line 11:      % Calculate phase correction for image: 
Line 12:      phCorr = exp(1i*4*pi*data_o.minF(ii)/c*dR);
Line 13:      % Determine which pixels fall within the range swath:
Line 14:      I = find(and(dR > min(data_o.r_vec), dR < max(data_o.r_vec)));
Line 15:      % Update the image using linear interpolation:
Line 16:      dist_part = interp1(data_o.r_vec,rc,dR(I),'linear');
Line 17:      data_o.im_final(I) = data_o.im_final(I) + dist_part .* phCorr(I);
Line 18:   end % ii

The MATLAB model of the SAR BP algorithm when run on the GOTCHA data set for the 40 degree azimuth scenario outlined above yields the following output image shown below. This matches very well to the image shown in [4]. A logarithmic scale has been used to display this grayscale image. The jet MATLAB colormap has been used to accentuate its dynamic range.

figure