Main Content


Range migration image formation algorithm for stepped FM waveform

Since R2022a



slcimg = rangeMigrationSFM(raw,waveform,fc,v,rc) returns a single-look complex image of raw synthetic aperture radar (SAR) data obtained with a stepped frequency modulated (SFM) pulse waveform. The function uses the range migration algorithm.

slcimg = rangeMigrationSFM(raw,waveform,fc,v,rc,Name=Value) specifies additional inputs using name-value arguments. You can specify the squint angle of the antenna and the signal propagation speed.


collapse all

Load a file that contains simulated unfocused synthetic aperture radar (SAR) data obtained with a stepped frequency modulated waveform. The waveform has a sample rate of 200 MHz, a pulse width of 250 nanoseconds, a pulse repetition frequency of 2/3 MHz, a frequency step size of 200 kHz, and 128 frequency steps.

data = load('RangeMigrationSFMExampleData.mat');
raw = data.raw;

wvf = phased.SteppedFMWaveform(SampleRate=200e6, ...

The system works at an operating frequency of 4 GHz. The platform moves at a velocity of 400 meters per second and the distance between the beam center on the ground and the radar is 60 meters.

fc = 4e9;
v = 400;
rc = 60;

Generate a single-look complex image from the data. Plot the image.

slcimg = rangeMigrationSFM(raw,wvf,fc,v,rc);

xlabel('Cross-Range Samples')
ylabel('Range Samples')

Input Arguments

collapse all

Raw SAR data, specified as a matrix. The data is the unfocused in-phase and quadrature (I/Q) raw data collected by the SAR system. The rows of raw correspond to the frequency steps. The columns of raw correspond to the bursts. raw must have at least two rows.

Data Types: double

Input waveform, specified as a phased.SteppedFMWaveform object.

Example: phased.SteppedFMWaveform(NumSteps=3,FrequencyStep=20e3)

Data Types: double

Platform velocity, specified as a positive scalar. Units are in meters per second.

Data Types: double

Operating frequency, specified as a positive scalar. Units are in Hz.

Example: 2.8e9 Hz specifies a typical S-band operating-frequency value for airport and weather radar systems.

Data Types: double

Distance between radar and beam center on the ground, specified as a positive scalar. Units are in meters.

Data Types: double

Name-Value Arguments

Specify optional pairs of arguments as Name1=Value1,...,NameN=ValueN, where Name is the argument name and Value is the corresponding value. Name-value arguments must appear after other arguments, but the order of the pairs does not matter.

Example: SquintAngle=45,PropagationSpeed=343

Squint angle of the antenna from the broadside direction in degrees, specified as a scalar in the range (-90, 90).

Data Types: double

Signal propagation speed in meters per second, specified as a positive scalar.

Example: 343 meters per second approximates the speed of sound at sea level and at a temperature of 20 °C under normal atmospheric conditions.

Data Types: double

Output Arguments

collapse all

Single-look complex (SLC) image, returned as a matrix. slcimg is the same size as raw and contains the focused data processed by the range migration algorithm.


[1] Cumming, Ian G., and Frank Hay-chee Wong. Digital Processing of Synthetic Aperture Radar Data: Algorithms and Implementation. Artech House Remote Sensing Library. Boston: Artech House, 2005.

[2] Tolman, Matthew A. "A Detailed Look at the Omega-k Algorithm for Processing Synthetic Aperture Radar Data.". MS thesis, Brigham Young University, 2008.

Extended Capabilities

C/C++ Code Generation
Generate C and C++ code using MATLAB® Coder™.

Version History

Introduced in R2022a