Documentation

phased.Collector System object

Narrowband signal collector

Description

Thephased.CollectorSystem object™ implements a narrowband signal collector. A collector converts incident narrowband wave fields arriving from specified directions into signals to be further processed. Wave fields are incident on antenna and microphone elements, sensor arrays, or subarrays. The object collects signals in one of two ways controlled by theWavefrontproperty.

  • If theWavefrontproperty is set to'Plane',collected signals at each element or subarray are formed from the coherent sum of all incident plane wave fields sampled at each array element or subarray.

  • If theWavefrontproperty is set to'Unspecified',collected signals are formed from an independent field incident on each individual sensor element.

You can use this object to

  • model arriving signals as polarized or nonpolarized fields depending upon whether the element or array supports polarization and the value of thePolarizationproperty. Using polarization, you can receive a signal as a polarized electromagnetic field, or receive two independent signals using dual (i.e. orthogonal) polarization directions.

  • model incoming acoustic fields by using nonpolarized microphone and sonar transducer array elements and by setting thePolarizationto'None'. You must also set thePropagationSpeedto a value appropriate for the medium.

  • collect fields at subarrays created by thephased.ReplicatedSubarrayandphased.PartitionedArrayobjects. You can steer all subarrays in the same direction using the steering angle argument,STEERANG, or steer each subarray in a different direction using the subarray element weights argument,WS. You cannot set theWavefrontproperty to'Unspecified'for subarrays.

To collect arriving signals at the elements or arrays:

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

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

想要了解更多关于how System objects work, seeWhat Are System Objects?(MATLAB).

Creation

Syntax

collector = phased.Collector
collector = phased.Collector(Name,Value)

Description

collector= phased.Collectorcreates a narrowband signal collector object,collector, with default property values.

collector= phased.Collector(Name,Value)creates a narrowband signal collector with each propertyNameset to a specifiedValue. You can specify additional name-value pair arguments in any order as (Name1,Value1,...,NameN,ValueN). Enclose each property name in single quotes.

Example:collector = phased.collector('Sensor',phased.URA,'OperatingFrequency',300e6)sets the sensor array to a uniform rectangular array (URA) with default URA property values. The beamformer has an operating frequency of 300 MHz.

Properties

expand all

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

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

For more information on changing property values, seeSystem Design in MATLAB Using System Objects(MATLAB).

Sensor element or sensor array, specified as a System object belonging to Phased Array System Toolbox. A sensor array can contain subarrays.

Example:phased.URA

Signal propagation speed, specified as a real-valued positive scalar. Units are in meters per second. The default propagation speed is the value returned byphysconst('LightSpeed').

Example:3e8

Data Types:double

工作频率, specified as a positive scalar. Units are in Hz.

Example:1e9

Data Types:double

The type of incoming wavefront, specified as'Plane'or'Unspecified':

  • 'Plane'— input signals are multiple plane waves impinging on the entire array. Each plane wave is received by all collecting elements.

  • 'Unspecified'— collected signals are independent fields incident on individual sensor elements. If theSensorproperty is an array that contains subarrays, you cannot set theWavefrontproperty to'Unspecified'.

Data Types:char

Sensor gain measure, specified as'dB'or'dBi'.

  • When you set this property to'dB',input signal power is scaled by the sensor power pattern (in dB) at the corresponding direction and then combined.

  • When you set this property to'dBi',input signal power is scaled by the directivity pattern (in dBi) at the corresponding direction and then combined. This option is useful when you want to compare results with the values predicted by the radar equation that uses dBi to specify the antenna gain. The computation using the'dBi'option is expensive as it requires an integration over all directions to compute the total radiated power of the sensor.

Dependencies

To enable this property, set theWavefrontproperty to'Plane'.

Data Types:char

Polarization configuration, specified as'None','Combined', or'Dual'. When you set this property to'None',incident fields are considered scalar fields. When you set this property to'Combined',incident fields are polarized and represent a single arriving signal whose polarization reflects the sensor's inherent polarization. When you set this property to'Dual',HandVpolarization components of the fields are independent signals.

Example:'Dual'

Data Types:char

Enable weights input, specified asfalseortrue. Whentrue, use the object input argumentWto specify weights. Weights are applied to individual array elements (or at the subarray level when subarrays are supported).

Data Types:logical

Usage

For versions earlier than R2016b, use thestepfunction to run the System object™ algorithm. The arguments tostepare the object you created, followed by the arguments shown in this section.

For example,y = step(obj,x)andy = obj(x)perform equivalent operations.

Syntax

Y = collector(X,ANG)
Y = collector(X,ANG,LAXES)
[YH,YV] = collector(X,ANG,LAXES)
[___] = collector(___,W)
[___] = collector(___,STEERANG)
[___] = collector(___,WS)

Description

example

Y= collector(X,ANG)collects the signals,X, arriving from the directions specified byANG.Ycontains the collected signals.

Y= collector(X,ANG,LAXES)also specifiesLAXESas the local coordinate system axes directions. To use this syntax, set thePolarizationproperty to'Combined'.

[YH,YV] = collector(X,ANG,LAXES)returns an H-polarization component of the field,YH, and a V-polarization component,YV. To use this syntax, set thePolarizationproperty to'Dual'.

[___] = collector(___,W)also specifiesWas array element or subarray weights. To use this syntax, set theWeightsInputPortproperty totrue.

[___] = collector(___,STEERANG)also specifiesSTEERANGas the subarray steering angle. To use this syntax, set theSensorproperty to an array that supports subarrays and set theSubarraySteeringproperty of that array to either'Phase'or'Time'.

[___] = collector(___,WS)also specifiesWSas the weights applied to each element within each subarray. To use this syntax, set theSensorproperty to an array that supports subarrays and set theSubarraySteeringof that array to'Custom'.

Input Arguments

expand all

Arriving signals, specified as a complex-valuedM-by-Lmatrix or complex-valued 1-by-Lcell array of structures.Mis the number of signal samples andLis the number of arrival angles. This argument represents the arriving fields.

  • If thePolarizationproperty value is set to'None',Xis anM-by-Lmatrix.

  • If thePolarizationproperty value is set to'Combined'or'Dual',X是1-by-Lcell array of structures. Each cell corresponds to a separate arriving signal. Eachstructcontains three column vectors containing theX,Y, andZcomponents of the polarized fields defined with respect to the global coordinate system.

The size of the first dimension of this input matrix can vary to simulate a changing signal length. This size change occurs, for example, in the case of a pulse waveform with variable pulse repetition frequency.

Dependencies

To enable this argument, set thePolarizationproperty to'None'or'Combined'.

Data Types:double
Complex Number Support:Yes

Arrival directions of signals, specified as a real-valued 2-by-Lmatrix. Each column specifies an arrival direction in the form[AzimuthAngle;ElevationAngle]. The azimuth angle must lie between –180° and 180°, inclusive. The elevation angle must lie between –90° and 90°, inclusive. When theWavefrontproperty isfalse,number of angles must equal the number of array elements,N. Units are in degrees.

Example:[30,20;45,0]

Data Types:double

Local coordinate system, specified as a real-valued 3-by-3 orthogonal matrix. The matrix columns specify the local coordinate system's orthonormalx,y, andzaxes with respect to the global coordinate system.

Example:rotx(30)

Dependencies

To enable this argument, set thePolarizationproperty to'Combined'or'Dual'.

Data Types:double

Element or subarray weights, specified as a complex-valuedN-by-1 column vector whereNis the number of array elements (or subarrays when the array supports subarrays).

Dependencies

To enable this argument, set theWeightsInputPortproperty totrue.

Data Types:double
Complex Number Support:Yes

Subarray element weights, specified as complex-valuedNSE-by-Nmatrix or 1-by-Ncell array whereN子串的数量。这些重量是:ied to the individual elements within a subarray.

Subarray element weights

Sensor Array Subarray weights
phased.ReplicatedSubarray

All subarrays have the same dimensions and sizes. Then, the subarray weights form anNSE-by-Nmatrix.NSEis the number of elements in each subarray andN子串的数量。Each column ofWSspecifies the weights for the corresponding subarray.

phased.PartitionedArray

Subarrays may not have the same dimensions and sizes. In this case, you can specify subarray weights as

  • anNSE-by-Nmatrix, whereNSEis now the number of elements in the largest subarray. The firstQentries in each column are the element weights for the subarray whereQis the number of elements in the subarray.

  • a 1-by-Ncell array. Each cell contains a column vector of weights for the corresponding subarray. The column vectors have lengths equal to the number of elements in the corresponding subarray.

Dependencies

To enable this argument, set theSensorproperty to an array that contains subarrays and set theSubarraySteeringproperty of the array to'Custom'.

Data Types:double
Complex Number Support:Yes

Subarray steering angle, specified as a length-2 column vector. The vector has the form[azimuthAngle;elevationAngle]. The azimuth angle must be between –180° and 180°, inclusive. The elevation angle must be between –90° and 90°, inclusive. Units are in degrees.

Example:[20;15]

Dependencies

To enable this argument, set theSensorproperty to an array that supports subarrays and set theSubarraySteeringproperty of that array to either'Phase'or'Time'

Data Types:double

Output Arguments

expand all

Collected signal, returned as a complex-valuedM-by-Nmatrix.Mis the length of the input signal.Nis the number of array elements (or subarrays when subarrays are supported). Each column corresponds to the signal collected by the corresponding array element (or corresponding subarrays when subarrays are supported).

Dependencies

To enable this argument, set thePolarizationproperty to'None'or'Combined'.

Data Types:double
Complex Number Support:Yes

Collected horizontal polarization signal, returned as a complex-valuedM-by-Nmatrix.Mis the length of the input signal.Nis the number of array elements (or subarrays when subarrays are supported). Each column corresponds to the signal collected by the corresponding array element (or corresponding subarrays when subarrays are supported).

Dependencies

To enable this argument, set thePolarizationproperty to'Dual'.

Data Types:double
Complex Number Support:Yes

Collected horizontal polarization signal, returned as a complex-valuedM-by-Nmatrix.Mis the length of the input signal.Nis the number of array elements (or subarrays when subarrays are supported). Each column corresponds to the signal collected by the corresponding array element (or corresponding subarrays when subarrays are supported).

Dependencies

To enable this argument, set thePolarizationproperty to'Dual'.

Data Types:double
Complex Number Support:Yes

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 namedobj, use this syntax:

release(obj)

expand all

step Run System object algorithm
release Release resources and allow changes to System object property values and input characteristics
reset Reset internal states of System object

Examples

expand all

Use thephased.CollectorSystem object™ to construct a signal arriving at a single isotropic antenna from 10° azimuth and 30° elevation.

antenna = phased.IsotropicAntennaElement; collector = phased.Collector('Sensor',antenna); x = [1;0;-1]; incidentAngle = [10;30]; y = collector(x,incidentAngle)
y =3×11 0 -1

Collect a far-field signal arriving at a 3-element uniform linear array (ULA) of isotropic antenna elements.

antenna = phased.ULA('NumElements',3); collector = phased.Collector('Sensor',antenna,'OperatingFrequency',1e9); x = [1;0;-1]; incidentAngle = [10 30]'; y = collector(x,incidentAngle)
y =3×3 complex-0.0051 - 1.0000i 1.0000 + 0.0000i -0.0051 + 1.0000i 0.0000 + 0.0000i 0.0000 + 0.0000i 0.0000 + 0.0000i 0.0051 + 1.0000i -1.0000 + 0.0000i 0.0051 - 1.0000i

Collect different signals at a three-element array. Each input signal comes from a different direction.

array = phased.ULA('NumElements',3); collector = phased.Collector('Sensor',array,'OperatingFrequency',1e9,...'Wavefront','Unspecified');

Each column is a signal for one element

x = rand(10,3)
x =10×30.8147 0.1576 0.6557 0.9058 0.9706 0.0357 0.1270 0.9572 0.8491 0.9134 0.4854 0.9340 0.6324 0.8003 0.6787 0.0975 0.1419 0.7577 0.2785 0.4218 0.7431 0.5469 0.9157 0.3922 0.9575 0.7922 0.6555 0.9649 0.9595 0.1712

Specify three incident angles.

incidentAngles = [10 0; 20 5; 45 2]'; y = collector(x,incidentAngles)
y =10×30.8147 0.1576 0.6557 0.9058 0.9706 0.0357 0.1270 0.9572 0.8491 0.9134 0.4854 0.9340 0.6324 0.8003 0.6787 0.0975 0.1419 0.7577 0.2785 0.4218 0.7431 0.5469 0.9157 0.3922 0.9575 0.7922 0.6555 0.9649 0.9595 0.1712

Construct a 4-element uniform linear array (ULA). The array operating frequency is 1 GHz. The array element spacing is one half the corresponding wavelength. Model the collection of a 200 Hz sinusoid from the far field incident on the array at 45° azimuth and 10° elevation.

Create the array.

fc = 1e9; lambda = physconst('LightSpeed')/fc; array = phased.ULA('NumElements',4,'ElementSpacing',lambda/2);

Create the sinusoid signal.

t = linspace(0,1,1e3); x = cos(2*pi*200*t)';

Construct the collector object and obtain the received signal.

collector = phased.Collector('Sensor',array,...'PropagationSpeed',physconst('LightSpeed'),'Wavefront','Plane',...'OperatingFrequency',fc); incidentangle = [45;10]; receivedsig = collector(x,incidentangle);

Use a dual-polarization system to obtain target scattering information. Simulate a transmitter and receiver where the vertical and horizontal components are transmitted successively using the input ports of the transmitter. The signals from the two polarization output ports of the receiver is then used to determine the target scattering matrix.

scmat = [0 1i; 1i 2]; radiator = phased.Radiator('Sensor',...phased.CustomAntennaElement('SpecifyPolarizationPattern',true),...'Polarization','Dual'); target = phased.RadarTarget('EnablePolarization',true,'ScatteringMatrix',...scmat); collector = phased.Collector('Sensor',...phased.CustomAntennaElement('SpecifyPolarizationPattern',true),...'Polarization','Dual'); xh = 1; xv = 1;

Transmit a horizontal component and display the reflected Shh and Svh polarization components.

x =散热器(xh 0(0, 0),眼(3));xrefl =目标(x,[0;0],eye(3)); [Shh,Svh] = collector(xrefl,[0;0],eye(3))
Shh = 0
Svh = 0.0000 + 3.5474i

Transmit a vertical component and display the reflected Shv and Svv polarization components.

x = radiator(0,xv,[0;0],eye(3)); xrefl = target(x,[0;0],eye(3)); [Shv,Svv] = collector(xrefl,[0;0],eye(3))
Shv = 0.0000 + 3.5474i
Svv = 7.0947

Algorithms

If theWavefrontproperty value is'Plane',phased.Collectorcollects each plane wave signal using the phase approximation of the time delays across collecting elements in the far field.

If theWavefrontproperty value is'Unspecified',phased.Collectorcollects each channel independently.

For further details, see[1].

References

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

Extended Capabilities

Introduced in R2012a

Was this topic helpful?