Accelerating the pace of engineering and science

# phased.ConstantGammaClutter System object

Package: phased

Constant gamma clutter simulation

## Description

The ConstantGammaClutter object simulates clutter.

To compute the clutter return:

1. Define and set up your clutter simulator. See Construction.

2. Call step to simulate the clutter return for your system according to the properties of phased.ConstantGammaClutter. The behavior of step is specific to each object in the toolbox.

The clutter simulation that ConstantGammaClutter provides is based on these assumptions:

• The radar system is monostatic.

• The propagation is in free space.

• The terrain is homogeneous.

• The clutter patch is stationary during the coherence time. Coherence time indicates how frequently the software changes the set of random numbers in the clutter simulation.

• The signal is narrowband. Thus, the spatial response can be approximated by a phase shift. Similarly, the Doppler shift can be approximated by a phase shift.

• The radar system maintains a constant height during simulation.

• The radar system maintains a constant speed during simulation.

## Construction

H = phased.ConstantGammaClutter creates a constant gamma clutter simulation System object™, H. This object simulates the clutter return of a monostatic radar system using the constant gamma model.

H = phased.ConstantGammaClutter(Name,Value) creates a constant gamma clutter simulation object, H, with additional options specified by one or more Name,Value pair arguments. Name is a property name, and Value is the corresponding value. Name must appear inside single quotes (''). You can specify several name-value pair arguments in any order as Name1,Value1,…,NameN,ValueN.

## Properties

Sensor

Handle of sensor

Specify the sensor as an antenna element object or as an array object whose Element property value is an antenna element object. If the sensor is an array, it can contain subarrays.

Default: phased.ULA with default property values

PropagationSpeed

Signal propagation speed

Specify the propagation speed of the signal, in meters per second, as a positive scalar.

Default: Speed of light

OperatingFrequency

System operating frequency

Specify the operating frequency of the system in hertz as a positive scalar. The default value corresponds to 300 MHz.

Default: 3e8

SampleRate

Sample rate

Specify the sample rate, in hertz, as a positive scalar. The default value corresponds to 1 MHz.

Default: 1e6

PRF

Pulse repetition frequency

Specify the pulse repetition frequency in hertz as a positive scalar or a row vector. The default value of this property corresponds to 10 kHz. When PRF is a vector, it represents a staggered PRF. In this case, the output pulses use elements in the vector as their PRFs, one after another, in a cycle.

Default: 1e4

Gamma

Terrain gamma value

Specify the $\gamma$ value used in the constant $\gamma$ clutter model, as a scalar in decibels. The $\gamma$ value depends on both terrain type and the operating frequency.

Default: 0

EarthModel

Earth model

Specify the earth model used in clutter simulation as one of | 'Flat' | 'Curved' |. When you set this property to 'Flat', the earth is assumed to be a flat plane. When you set this property to 'Curved', the earth is assumed to be a sphere.

Default: 'Flat'

PlatformHeight

Specify the radar platform height (in meters) measured upward from the surface as a nonnegative scalar.

Default: 300

PlatformSpeed

Specify the radar platform's speed as a nonnegative scalar in meters per second.

Default: 300

PlatformDirection

Specify the direction of radar platform motion as a 2-by-1 vector in the form [AzimuthAngle; ElevationAngle] in degrees. The default value of this property indicates that the platform moves perpendicular to the radar antenna array's broadside.

Both azimuth and elevation angle are measured in the local coordinate system of the radar antenna or antenna array. Azimuth angle must be between –180 and 180 degrees. Elevation angle must be between –90 and 90 degrees.

Default: [90;0]

Specify the depression angle in degrees of the broadside of the radar antenna array. This value is a scalar. The broadside is defined as zero degrees azimuth and zero degrees elevation. The depression angle is measured downward from horizontal.

Default: 0

MaximumRange

Maximum range for clutter simulation

Specify the maximum range in meters for the clutter simulation as a positive scalar. The maximum range must be greater than the value specified in the PlatformHeight property.

Default: 5000

AzimuthCoverage

Azimuth coverage for clutter simulation

Specify the azimuth coverage in degrees as a positive scalar. The clutter simulation covers a region having the specified azimuth span, symmetric to 0 degrees azimuth. Typically, all clutter patches have their azimuth centers within the region, but the PatchAzimuthWidth value can cause some patches to extend beyond the region.

Default: 60

PatchAzimuthWidth

Azimuth span of each clutter patch

Specify the azimuth span of each clutter patch in degrees as a positive scalar.

Default: 1

TransmitSignalInputPort

Add input to specify transmit signal

Set this property to true to add input to specify the transmit signal in the step syntax. Set this property to false omit the transmit signal in the step syntax. The false option is less computationally expensive; to use this option, you must also specify the TransmitERP property.

Default: false

TransmitERP

Effective transmitted power

Specify the transmitted effective radiated power (ERP) of the radar system in watts as a positive scalar. This property applies only when you set the TransmitSignalInputPort property to false.

Default: 5000

CoherenceTime

Clutter coherence time

Specify the coherence time in seconds for the clutter simulation as a positive scalar. After the coherence time elapses, the step method updates the random numbers it uses for the clutter simulation at the next pulse. A value of inf means the random numbers are never updated.

Default: inf

OutputFormat

Output signal format

Specify the format of the output signal as one of | 'Pulses' | 'Samples' |. When you set the OutputFormat property to 'Pulses', the output of the step method is in the form of multiple pulses. In this case, the number of pulses is the value of the NumPulses property.

When you set the OutputFormat property to 'Samples', the output of the step method is in the form of multiple samples. In this case, the number of samples is the value of the NumSamples property. In staggered PRF applications, you might find the 'Samples' option more convenient because the step output always has the same matrix size.

Default: 'Pulses'

NumPulses

Number of pulses in output

Specify the number of pulses in the output of the step method as a positive integer. This property applies only when you set the OutputFormat property to 'Pulses'.

Default: 1

NumSamples

Number of samples in output

Specify the number of samples in the output of the step method as a positive integer. Typically, you use the number of samples in one pulse. This property applies only when you set the OutputFormat property to 'Samples'.

Default: 100

SeedSource

Source of seed for random number generator

Specify how the object generates random numbers. Values of this property are:

 'Auto' The default MATLAB® random number generator produces the random numbers. Use 'Auto' if you are using this object with Parallel Computing Toolbox™ software. 'Property' The object uses its own private random number generator to produce random numbers. The Seed property of this object specifies the seed of the random number generator. Use 'Property' if you want repeatable results and are not using this object with Parallel Computing Toolbox software.

Default: 'Auto'

Seed

Seed for random number generator

Specify the seed for the random number generator as a scalar integer between 0 and 232–1. This property applies when you set the SeedSource property to 'Property'.

Default: 0

## Methods

 clone Create constant gamma clutter simulation object with same property values getNumInputs Number of expected inputs to step method getNumOutputs Number of outputs from step method isLocked Locked status for input attributes and nontunable properties release Allow property value and input characteristics changes reset Reset random numbers and time count for clutter simulation step Simulate clutter using constant gamma model

## Examples

expand all

### Clutter Simulation of System with Known Power

Simulate the clutter return from terrain with a gamma value of 0 dB. The effective transmitted power of the radar system is 5 kW.

Set up the characteristics of the radar system. This system has a 4-element uniform linear array (ULA). The sample rate is 1 MHz, and the PRF is 10 kHz. The propagation speed is 300,000 km/s, and the operating frequency is 300 MHz. The radar platform is flying 1 km above the ground with a path parallel to the ground along the array axis. The platform speed is 2000 m/s. The mainlobe has a depression angle of 30 degrees.

```Nele = 4;
c = 3e8;
fc = 3e8;
lambda = c/fc;
ha = phased.ULA('NumElements',Nele,'ElementSpacing',lambda/2);
fs = 1e6;
prf = 10e3;
height = 1000;
direction = [90;0];
speed = 2000;
depang = 30;
```

Create clutter simulation object

Create the clutter simulation object. The configuration assumes the earth is flat. The maximum clutter range of interest is 5 km, and the maximum azimuth coverage is +/-60 degrees.

```Rmax = 5000;
Azcov = 120;
tergamma = 0;
tpower = 5000;
hclutter = phased.ConstantGammaClutter('Sensor',ha,...
'PropagationSpeed',c,'OperatingFrequency',fc,'PRF',prf,...
'SampleRate',fs,'Gamma',tergamma,'EarthModel','Flat',...
'TransmitERP',tpower,'PlatformHeight',height,...
'PlatformSpeed',speed,'PlatformDirection',direction,...
'AzimuthCoverage',Azcov,'SeedSource','Property',...
'Seed',40547);
```

Simulate clutter return

Simulate the clutter return for 10 pulses.

```Nsamp = fs/prf;
Npulse = 10;
csig = zeros(Nsamp,Nele,Npulse);
for m = 1:Npulse
csig(:,:,m) = step(hclutter);
end
```

Plot angle-Doppler response

Plot the angle-Doppler response of the clutter at the 20th range bin.

```hresp = phased.AngleDopplerResponse('SensorArray',ha,...
'OperatingFrequency',fc,'PropagationSpeed',c,'PRF',prf);
plotResponse(hresp,shiftdim(csig(20,:,:)),...
'NormalizeDoppler',true);
```

### Clutter Simulation Using Known Transmit Signal

Simulate the clutter return from terrain with a gamma value of 0 dB. The step syntax includes the transmit signal of the radar system as an input argument. In this case, you do not record the effective transmitted power of the signal in a property.

Set up the characteristics of the radar system. This system has a 4-element uniform linear array (ULA). The sample rate is 1 MHz, and the PRF is 10 kHz. The propagation speed is 300,000 km/s, and the operating frequency is 300 MHz. The radar platform is flying 1 km above the ground with a path parallel to the ground along the array axis. The platform speed is 2000 m/s. The mainlobe has a depression angle of 30 degrees.

```Nele = 4;
c = 3e8;
fc = 3e8;
lambda = c/fc;
ha = phased.ULA('NumElements',Nele,'ElementSpacing',lambda/2);
fs = 1e6;
prf = 10e3;
height = 1000;
direction = [90;0];
speed = 2000;
depang = 30;
```

Create clutter simulation object

Create the clutter simulation object and configure it to take a transmit signal as an input argument to step. The configuration assumes the earth is flat. The maximum clutter range of interest is 5 km, and the maximum azimuth coverage is +/-60 degrees.

```Rmax = 5000;
Azcov = 120;
tergamma = 0;
hclutter = phased.ConstantGammaClutter('Sensor',ha,...
'PropagationSpeed',c,'OperatingFrequency',fc,'PRF',prf,...
'SampleRate',fs,'Gamma',tergamma,'EarthModel','Flat',...
'TransmitSignalInputPort',true,'PlatformHeight',height,...
'PlatformSpeed',speed,'PlatformDirection',direction,...
'AzimuthCoverage',Azcov,'SeedSource','Property',...
'Seed',40547);
```

Simulate clutter return

Simulate the clutter return for 10 pulses. At each step, pass the transmit signal as an input argument. The software automatically computes the effective transmitted power of the signal. The transmit signal is a rectangular waveform with a pulse width of 2 microseconds.

```tpower = 5000;
pw = 2e-6;
X = tpower*ones(floor(pw*fs),1);
Nsamp = fs/prf;
Npulse = 10;
csig = zeros(Nsamp,Nele,Npulse);
for m = 1:Npulse
csig(:,:,m) = step(hclutter,X);
end
```

Plot angle-Doppler response

Plot the angle-Doppler response of the clutter at the 20th range bin.

```hresp = phased.AngleDopplerResponse('SensorArray',ha,...
'OperatingFrequency',fc,'PropagationSpeed',c,'PRF',prf);
plotResponse(hresp,shiftdim(csig(20,:,:)),...
'NormalizeDoppler',true);
```

## Extended Capabilities

### Parallel Computing

You can use this System object to perform Monte Carlo simulations with Parallel Computing Toolbox constructs, such as parfor. In this situation, set the SeedSource property to 'Auto' to ensure correct, automatic handling of random number streams on the workers.

Do not use this System object in a parallel construct whose iterations represent data from consecutive pulses. Because such iterations are not independent of each other, they must run sequentially. For more information about parallel computing constructs, see Deciding When to Use parfor or parfor Programming Considerations.

To perform computations on a GPU instead of a CPU, use phased.gpu.ConstantGammaClutter instead of phased.ConstantGammaClutter.

## References

[1] Barton, David. "Land Clutter Models for Radar Design and Analysis," Proceedings of the IEEE. Vol. 73, Number 2, February, 1985, pp. 198–204.

[2] Long, Maurice W. Radar Reflectivity of Land and Sea, 3rd Ed. Boston: Artech House, 2001.

[3] Nathanson, Fred E., J. Patrick Reilly, and Marvin N. Cohen. Radar Design Principles, 2nd Ed. Mendham, NJ: SciTech Publishing, 1999.

[4] Ward, J. "Space-Time Adaptive Processing for Airborne Radar Data Systems," Technical Report 1015, MIT Lincoln Laboratory, December, 1994.