# thinnedArray

## Syntax

## Description

creates a duplicate System object™
`thinarray`

= thinnedArray(`array`

,`freq`

,`steerang`

,`sll`

)`thinarray`

with a reduced number of elements created by thinning an
`array`

. A thinned array is a copy of an `array`

with the `Taper`

property set to the product of the
`Taper`

values of `array`

and the derived thinning
coefficients. Thinning coefficients are either `0`

or `1`

.
Zeros indicate that the corresponding array elements are `'off'`

(inactive)
and ones indicate that the corresponding array elements are `'on'`

(active). This object function applies only to the `phased.ULA`

or `phased.URA`

System objects. The
`freq`

argument is the array operating frequency,
`steerang`

is the array steering direction, and
`sll`

is the desire sidelobe level. This object function uses an
optimization procedure to find a thinned set of array tapers for the original
`array`

such that the resulting array pattern evaluated at the
frequency `freq`

, for the steering direction
`steerang`

, has a sidelobe level equal to or below
`sll`

.

You must have a Global Optimization Toolbox license to use this object function.

returns a thinned array `thinarray`

= thinnedArray(___,Name = Value)`thinarray`

with thinning coefficients computed
so that the specified parameter `Name`

is set to the specified
`Value`

. You can specify additional name-value pair arguments in any
order as (`Name1`

= `Value1`

, ...,
`NameN`

= `ValueN`

).

## Examples

## Input Arguments

## Output Arguments

## Algorithms

This object function utilizes a global optimization procedure based on the genetic
algorithm to compute the array thinning coefficients. The global optimization does not
guarantee that the found solution is the optimal solution. It also does not guarantee
satisfaction of the sidelobe level and the null region constraints. The maximum sidelobe level
and the minimum null region depth reported in the returned `info`

`struct`

are the values computed during the optimization by evaluating the
array pattern over an angular grid. The actual values can be higher if the array pattern is to
be evaluated over a finer angular grid. Additionally, due to the nature of the genetic
algorithm the same set of input values will produce different results at each run. To ensure
the reproducibility of the results from run to run, fix the random number generator seed using
the `rng`

function before calling
`thinnedArray`

.

## References

[1] Rocca, Paolo, Giacomo Oliveri,
Robert J. Mailloux, and Andrea Massa. "Unconventional phased array architectures and design
methodologies - a review". *Proceedings of the IEEE 104*, no. 3 (2016):
544-560.

[2] Haupt, Randy L. "Thinned arrays
using genetic algorithms". *IEEE transactions on antennas and propagation 42, no. 7
(1994)*: 993-999.

## Version History

**Introduced in R2023b**