ISAR image processing
Overview
The script computes and displays an inverse synthetic aperture radar (ISAR) image from backscattered radar cross section (RCS) data over frequency and angle. Windowing functions, resampling and extracting the local maxima positions to file are supported. The script requires a far field RCS request or far field RCS data imported from a file containing far field data (*.ffe file). Data imported from an ffe file must be added manually to a 3D view.
The plugin comes in two primary parts:
 pf_ISAR.lua: The main POSTFEKO script to calculate and display ISAR results.
 cf_ISAR_resolution_range.lua: A CADFEKO script that helps to set up the frequency and angular sampling for the required ISAR image resolution and range.
Preconditions
Backscattered RCS data must be in the UV plane of the local coordinate system or in the XY plane of the global coordinate system. Equivalently, the backscattered RCS should be requested in the θ’ = 90 cut. Subranges of the total angular phi range could be used to change the viewing angle.
It is assumed that the image will be centred at the global origin. Thus the downrange (X) and crossrange (Y) should be sufficient to include all the structures / targets relative to the global origin.
The extent and resolution of the ISAR image depend on the frequency range, number of frequencies, angular range and number of incident angles.
Example 1
Introduction
In this example the view direction of the ISAR image is changed using the local workplane of the incident plane wave excitation. It is also possible to change the view direction and crossrange resolution of the ISAR image by using a subset of the angular data range (see Example 2 below).
The model for this example, Three_Spheres_VPol_MoM.cfx, can be downloaded below.
Setting up the model in CADFEKO
CADFEKO ISAR script
form dialog. 
Three spheres with different radii are positioned at points A1, A2 and A3. The model is solved with a full method of moments (MoM) solution to obtain the backscattered RCS.
The CADFEKO cf_ISAR_resolution_range.lua script is used to calculate the required frequency and angular ranges and associated sampling to create a 3.5m x 3m (downrange x crossrange) ISAR image with 0.05m resolution in both downrange (X) and crossrange (Y). The script calculates the required start frequency (f1), end frequency (f2) and the number of frequency samples (nf) for a given centre frequency (f0). It also calculates the required start angle (phi1), end angle (phi2) and angular increment (dphi). The script assumes that the polar to Cartesian interpolation will be applied to the RCS data.
The XY_plane solution configuration uses the abovementioned angular and frequency variables to create a plane wave excitation (XY_v0) in the global coordinate system with the ISAR view direction along the X axis.
The UV_plane solution configuration uses the same angular and frequency variables in its plane wave excitation (UV_v0), but the excitation is defined using a local workplane. The workplane is obtained from the XY workplane, rotating it by 20° around the local N axis and then by 10° around the local V axis.
Each configuration contains a far field request set to calculate fields in the plane wave incident direction.
Top view of the XY_plane solution configuration (left) and normal view of the UV_plane solution configuration (right) showing the positions of the three spheres with the plane wave excitation. The yellow frame dimensions are 3.5m x 3m.

Postprocessing results in POSTFEKO
The pf_ISAR.lua script uses an input form to select an RCS far field request and the following input parameters:
POSTFEKO ISAR script form dialog.

Polar to Cartesian transformation,
resampled area enclosed in green. 
POSTFEKO ISAR script
viewing angle dialog. 
POSTFEKO ISAR script
angular range dialog. 
 Supported windowing functions
 Hamming (default)
 Dirichlet
 Bartlett
 Blackman
 Interpolate to Cartesian grid (Default): The 2D FFT requires that the X and Y distances should be uniformly spaced. The basic ISAR implementation assumes that the angle range is small enough such that the polar sampling approximates a Cartesian grid. The small angle range assumption can be relaxed by transforming the polar grid to Cartesian. This reduces smearing and shift of the scattering points and increasing accuracy of the resulting ISAR image.
 Component: Specify which Efield component to use to generate the ISAR result. Supported options are:
 Theta (Default)
 Phi
 LHC (Left Hand Circular)
 RHC (Right Hand Circular)
 Image offset (Default: 0.2m): Offset distance of the ISAR image above the plane wave workplane.
 Resample factor (Default: 1): Factor used to up sample the image resolution to create a smoother image with more points. Note it does not change the underlying image resolution based on the frequency and angular information.
 Create 3D view (Default): Generates a normal view of the partially transparent ISAR image. By default the RCS data is displayed in a dB scale.
 Find local maxima: Calculates the first N local maxima in descending order in the ISAR image.
 Export local maxima to CSV: Export the N local maxima to a CSV file. Find local maxima has to be checked for this to work.
 Number of local maxima (Default: 3): The number of local maxima to find.
After accepting the input from the main form, the script will process the RCS data and display a dialog asking for the viewing angle. The default viewing angle is the average of the start angle and end angle. The user can select a different viewing angle, but should take note that this setting could reduce the maximum angular data range.
With the viewing angle specified, the script will calculate the maximum angular range that can be used. The user can then select an angular range from the list. Note that the angular range affects the crossrange resolution.
The ISAR images associated with the XY_plane and UV_plane solution configurations are shown below. A resampling factor of 2 was used with default values for the rest of the input parameters.
ISAR image (3.5m x 3m) obtained from the XY_plane solution configuration (left) and the UV_plane solution configuration (right). 
The ISAR dataset can also be used to generate 2D graphs, such as the image below showing the RCS versus X position corresponding to each sphere’s Y coordinate.
Example 2
Introduction
In this example the view direction and crossrange resolution of the ISAR image is changed by using a subset of the angular data range. Some of the script's postprocessing options are demonstrated.
The model for this example, Missile_RCS_Vpol_PO.cfx, can be downloaded below.
CADFEKO model
The physical optics (PO) high frequency approximation is used to obtain the backscattered RCS. The RCS data is computed from phi1 = 18° to phi2 = 57° with (1/3)° increments and over a frequency range from 8 GHz to 12 GHz with 81 samples. Assuming a minimum angular range of 24° the view direction angle can be changed between 30° and 45°.
POSTFEKO results
The images below show some results obtained by using different postprocessing options available in the script.
The first ISAR image shows the result obtained without any postprocessing of the RCS data for a view angle phi_{0} = 45° and angular range of 24°. The downrange and crossrange resolutions are 0.0370m and 0.0356m, respectively.
The angular smear away from the image origin can be reduced by transforming the polar data to Cartesian coordinates using bilinear interpolation. ISAR image with polar to Cartesian transformation for a view angle phi_{0} = 45° and angular range of 24°. The downrange and crossrange resolutions are 0.0382m and 0.0435m, respectively.
The image can be further processed by windowing the RCS data. The next ISAR image is the result of using polar to Cartesian transformation and a Hamming window for a view angle phi_{0} = 45° and angular range of 24°. The downrange and crossrange resolutions are 0.0382m and 0.0435m, respectively.
The script can be used to change the view angle and the angular range. the ISAR image below is obtained using polar to Cartesian transformation and a Hamming window for a view angle phi_{0} = 37.33° and angular range of 38.67°. The downrange and crossrange resolutions are 0.0408m and 0.0265m, respectively.
ISAR image with polar to Cartesian transformation and using a Hamming window with a different view angle.

Download Archive Contents
Main scripts
cf_ISAR_resolution_range.lua  CADFEKO script to help set up frequency and angular sampling for the required ISAR image resolution and range.
pf_ISAR.lua  The main POSTFEKO script to calculate and display ISAR results.
Helper scripts
ComplexHelper.lua  Functions for complex mathematics.
FileHelper.lua  Functions used for naming stored data.
FTHelper.lua  Efficient twodimensional Fourier transform.
LocalMaximumMinimum.lua  Find local maxima.
MathHelper.lua  Functions used for windowing.