Main Content

phased.ConformalArray

Conformal array

Description

The phased.ConformalArray System object™ constructs a conformal array. A conformal array can have elements at arbitrary positions and pointing in any direction.

To create and use phased.ConformalArray :

  1. Create the phased.ConformalArray object and set its properties.

  2. Call the object with arguments, as if it were a function.

To learn more about how System objects work, see What Are System Objects?

Creation

Description

array = phased.ConformalArray creates a conformal array System object, array. By default, the array consists of one phased.IsotropicAntennaElement.

array = phased.ConformalArray(Name=Value) creates object, array, with each specified property Name set to the specified Value. You can specify additional name-value pair arguments in any order as (Name1=Value1,...,NameN=ValueN).

example

array = phased.ConformalArray(POS,NV,Name=Value) creates a conformal array object, array, with the ElementPosition property set to POS, the ElementNormal property set to NV, and other specified property Names set to the specified Values. POS and NV are value-only arguments equivalent to specifying the ElementPosition and ElementNormal properties. When specifying a value-only argument, specify all preceding value-only arguments. You can specify Name-Value arguments in any order.

Properties

expand all

Unless otherwise indicated, properties are nontunable, which means you cannot change their values after calling the object. Objects lock when you call them, and the release function unlocks them.

If a property is tunable, you can change its value at any time.

For more information on changing property values, see System Design in MATLAB Using System Objects.

Array sensor element, specified as a Phased Array System Toolbox™ antenna, microphone, or transducer element or an Antenna Toolbox™ antenna System object.

ElementPosition specifies the positions of the elements in the conformal array. ElementPosition must be a 3-by-N matrix, where N indicates the number of elements in the conformal array. Each column of ElementPosition represents the position, in the form [x; y; z] (in meters), of a single element in the local coordinate system of the array. The local coordinate system has its origin at an arbitrary point. The default value of this property represents a single element at the origin of the local coordinate system.

Example: [5; -10; 7]

Data Types: double

ElementNormal specifies the normal directions of the elements in the conformal array. Angle units are degrees. The value assigned to ElementNormal must be either a 2-by-N matrix or a 2-by-1 column vector. The variable N indicates the number of elements in the array. If the value of ElementNormal is a matrix, each column specifies the normal direction of the corresponding element in the form [azimuth;elevation] with respect to the local coordinate system. The local coordinate system aligns the positive x-axis with the direction normal to the conformal array. If the value of ElementNormal is a 2-by-1 column vector, it specifies the same pointing direction for all elements in the array.

You can use the ElementPosition and ElementNormal properties to represent any arrangement in which pairs of elements differ by certain transformations. The transformations can combine translation, azimuth rotation, and elevation rotation. However, you cannot use transformations that require rotation about the normal.

Example: [-10;6,-10;14]

Data Types: double

Element tapering or weighting, specified as a complex-valued scalar, 1-by-N row vector, or N-by-1 column vector. Weights are applied to each element in the sensor array. N is the number of elements in the array as determined by the size of the ElementPosition property. If the Taper parameter is a scalar, the same taper value is applied to all elements. If the value of Taper is a vector, each taper values is applied to the corresponding element.

Example: [0,2,2,0]

Data Types: double

Usage

Description

RESP = array(FREQ,ANG) returns the response, RESP, of the array elements at the operating frequencies specified in FREQ and in the directions specified in ANG.

example

Input Arguments

expand all

Operating frequencies of array specified as a length-L real-valued row vector of positive values. Typical values are within the range specified by an element property. That property is named FrequencyRange or FrequencyVector, depending on the type of element in the array. The element has zero response at frequencies outside that range. Units are in Hz.

Data Types: double

ANG is either a 2-by-M matrix or a row vector of length M.

If ANG is a 2-by-M matrix, each column of the matrix specifies the direction in the form [azimuth; elevation]. The azimuth angle must lie between –180° and 180°, inclusive. The elevation angle must lie between –90° and 90°, inclusive.

If ANG is a row vector of length M, each element specifies the azimuth angle of the direction. In this case, the corresponding elevation angle is assumed to be 0°.

Units are in degrees.

Example: [-30;3]

Data Types: double

Output Arguments

expand all

Array voltage responses returned as a N-by-M-by-L complex-valued array. The output depends on whether the array supports polarization or not.

  • If the array is not capable of supporting polarization, the voltage response, RESP, has the dimensions N-by-M-by-L. N is the number of elements in the array. The dimension M is the number of angles specified in ANG. L is the number of frequencies specified in FREQ. For any element, the columns of RESP contain the responses of the array elements for the corresponding direction specified in ANG. Each of the L pages of RESP contains the responses of the array elements for the corresponding frequency specified in FREQ.

  • If the array is capable of supporting polarization, the voltage response, RESP, is a MATLAB struct containing two fields, RESP.H and RESP.V. The field, RESP.H, represents the array’s horizontal polarization response, while RESP.V represents the array’s vertical polarization response. Each field has the dimensions N-by-M-by-L. N is the number of elements in the array, and M is the number of angles specified in ANG. L is the number of frequencies specified in FREQ. Each column of RESP contains the responses of the array elements for the corresponding direction specified in ANG. Each of the L pages of RESP contains the responses of the array elements for the corresponding frequency specified in FREQ.

Object Functions

To use an object function, specify the System object as the first input argument. For example, to release system resources of a System object named obj, use this syntax:

release(obj)

expand all

beamwidthCompute and display beamwidth of an array
collectPlaneWaveSimulate received plane waves
directivityDirectivity of conformal array
getElementNormalNormal vector to array elements
getElementPositionPositions of array elements
getNumElementsNumber of elements in array
getTaperArray element tapers
isPolarizationCapablePolarization capability
patternPlot conformal array pattern
patternAzimuthPlot conformal array directivity or pattern versus azimuth
patternElevationPlot conformal array directivity or pattern versus elevation
perturbationsPerturbations defined on array
perturbedArrayApply perturbations to phased array
perturbedPatternDisplay pattern of perturbed array
sidelobelevelPeak and integrated side-lobe levels
viewArrayView array geometry
stepRun System object algorithm
releaseRelease resources and allow changes to System object property values and input characteristics
resetReset internal states of System object

Examples

collapse all

Using the ConformalArray System object™, construct an 8-element uniform circular array (UCA) of isotropic antenna elements. Plot a normalized azimuth power pattern at 0 degrees elevation. Assume the operating frequency is 1 GHz and the wave propagation speed is the speed of light.

N = 8;
azang = (0:N-1)*360/N-180;
sCA = phased.ConformalArray(...
    'ElementPosition',[cosd(azang);sind(azang);zeros(1,N)],...
    'ElementNormal',[azang;zeros(1,N)]);
fc = 1e9;
c = physconst('LightSpeed');
pattern(sCA,fc,[-180:180],0,...
    'PropagationSpeed',c,'Type','powerdb',...
    'CoordinateSystem','polar')

Figure contains an axes object. The hidden axes object contains 3 objects of type line, text. This object represents 1 GHz .

Construct a 31-element acoustic uniform circular sonar array (UCA) using the ConformalArray System object™. Assume the array is one meter in diameter. Using the ElevationAngles parameter, restrict the display to +/-40 degrees in 0.1 degree increments. Assume the operating frequency is 4 kHz. A typical value for the speed of sound in seawater is 1500.0 m/s.

Construct the array

N = 31;
theta = (0:N-1)*360/N-180;
Radius = 0.5;
sMic = phased.OmnidirectionalMicrophoneElement(...
    'FrequencyRange',[0,10000],'BackBaffled',true);
sArray = phased.ConformalArray('Element',sMic,...
    'ElementPosition',Radius*[zeros(1,N);cosd(theta);sind(theta)],...
    'ElementNormal',[ones(1,N);zeros(1,N)]);

Plot the magnitude pattern

fc = 4000;
c = 1500.0;
pattern(sArray,fc,0,[-40:0.1:40],...
    'PropagationSpeed',c,...
    'CoordinateSystem','polar',...
    'Type','efield')

Figure contains an axes object. The hidden axes object contains 3 objects of type line, text. This object represents 4 kHz .

Plot the directivity pattern

pattern(sArray,fc,0,[-40:0.1:40],...
    'PropagationSpeed',c,...
    'CoordinateSystem','polar',...
    'Type','directivity')

Figure contains an axes object. The hidden axes object contains 3 objects of type line, text. This object represents 4 kHz .

Using the ConformalArray System object™, construct an 8-element uniform circular array (UCA) of isotropic antenna elements. The radius of the array is one meter. Assume the operating frequency is 1 GHz and the wave propagation speed is the speed of light.

N = 8;
azang = (0:N-1)*360/N-180;
sCA = phased.ConformalArray(...
    'ElementPosition',[cosd(azang);sind(azang);zeros(1,N)],...
    'ElementNormal',[azang;zeros(1,N)]);

Get the element response at 35 degrees azimuth and 5 degrees elevation.

fc = 1e9;
ang = [30;5];
resp = step(sCA,fc,ang)
resp = 8×1

     1
     1
     1
     1
     1
     1
     1
     1

References

[1] Josefsson, L. and P. Persson. Conformal Array Antenna Theory and Design. Piscataway, NJ: IEEE Press, 2006.

[2] Van Trees, H. Optimum Array Processing. New York: Wiley-Interscience, 2002.

Extended Capabilities

Version History

Introduced in R2011a