# Omega-K algorithm implementation for synthetic aperture radar

I have been trying to develop Omega-k algorithm for SAR image formation. I am using the equations from chapter 8 in digital processing of Synthetic Aperture Radar data by Cumming and Wong. The steps I implemented are:

1. Range compression
2. Range IFFT
3. Two DFFT
4. Bulk Azimuth compression to a reference range (using eqn. 8.3)
5. Stolt Mapping (using eq. 8.5)
6. IFFT

I have confusions about the steps 4 to 6. Is there any norm for choosing the reference range in eqn. 8.3? I substituted eqn. 8.3 with 8.5 for stolt mapping and tried to interpolate the 2dfft spectra. However, the interpolation doesn't work. Do I need to compress the signal again after stolt mapping?

Any relevant answers will be highly appreciated. Thanks.

• It's been awhile since I looked at the book. If I recall correctly, the range compression is done via matched filter and not by Stretch processing?. Steps 2 & 3 look strange - why do an IFFT and then a 2D FFT? You could have just done a 1D FFT in the azimuth at step 2. – David May 24 '19 at 14:31
• Thanks David. I used the matched filter for range compression and directly performed 2DFFT on the range compressed signal (without taking the range IFFT). But confusions regarding steps 4 and 5 still remain. Do I need to perform azimuth compression twice before and after stolt mapping? – Rifat Afroz May 27 '19 at 4:40

Here is one way of performing OmegaK processing, refer to Bamler's paper "A comparison of Range-Doppler and Wavenumber Domain SAR Focusing Algorithms" for details:

Assuming range-compressed data, proceed as follows:

1) Perform 2D-FFT of data.

2) Perform Stolt Migration of data along each slow-time column.

3) Multiply with an additional exponential term (see (30) in the reference above).

4) Perform 2D-iFFT --> Done

For the Stolt Interpolation you can use interp1() if you're on Matlab. From my experience, shape-preserving piecewise cubic interpolation ("PCHIP") works fine, but no warranties given. Be sure to pick a suitable interpolator function; simple linear interpolation is not sufficient.

During interpolation, calculate the new supporting points from an equally-spaced $$k_r$$ grid created using

kr=[kr_min:kr_span/(N_fast-1):kr_max];


by means of (28) in the reference given above.

Note that there is another variant of the OmegaK algorithm, which firstly focuses point targets at the focus distance by multiplying with the PSF's Fourier transform. Then, Stolt Mapping is carried out to mitigate phase aberrations at distances apart from the focus distance. This algorithm operates as follows:

1) 2D FFT

2) Multiply with PSF's FT (see (32) in the given paper)

3) Stolt Interpolation

4) 2D iFFT -> Done

Both variants are equivalent from a systems theoretical point of view.