Main Content

collectPlaneWave

System object: phased.HeterogeneousURA
Namespace: phased

Simulate received plane waves

Syntax

Y = collectPlaneWave(H,X,ANG)
Y = collectPlaneWave(H,X,ANG,FREQ)
Y = collectPlaneWave(H,X,ANG,FREQ,C)

Description

Y = collectPlaneWave(H,X,ANG) returns the received signals at the sensor array, H, when the input signals indicated by X arrive at the array from the directions specified in ANG.

Y = collectPlaneWave(H,X,ANG,FREQ), in addition, specifies the incoming signal carrier frequency in FREQ.

Y = collectPlaneWave(H,X,ANG,FREQ,C), in addition, specifies the signal propagation speed in C.

Input Arguments

H

Array object.

X

Incoming signals, specified as an M-column matrix. Each column of X represents an individual incoming signal.

ANG

Directions from which incoming signals arrive, in degrees. ANG can be either a 2-by-M matrix or a row vector of length M.

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

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

FREQ

Carrier frequency of signal in hertz. FREQ must be a scalar.

Default: 3e8

C

Propagation speed of signal in meters per second.

Default: Speed of light

Output Arguments

Y

Received signals. Y is an N-column matrix, where N is the number of elements in the array H. Each column of Y is the received signal at the corresponding array element, with all incoming signals combined.

Examples

expand all

Simulate two received signals at a 2-by-2 element heterogeneous URA with two different cosine antenna patterns. The signals arrive from 10° and 30° azimuth. Both signals have an elevation angle of 0°.

antenna1 = phased.CosineAntennaElement('CosinePower',1.5);
antenna2 = phased.CosineAntennaElement('CosinePower',1.8);
array = phased.HeterogeneousURA(...
    'ElementSet',{antenna1,antenna2},...
    'ElementIndices',[1 2; 1 2]);
y = collectPlaneWave(array,randn(4,2),[10 30],1e8,physconst('LightSpeed'))
y = 4×4 complex

   0.8433 - 0.1314i   0.8433 - 0.1314i   0.8433 + 0.1314i   0.8433 + 0.1314i
   0.5632 + 0.1721i   0.5632 + 0.1721i   0.5632 - 0.1721i   0.5632 - 0.1721i
  -2.6683 + 0.3175i  -2.6683 + 0.3175i  -2.6683 - 0.3175i  -2.6683 - 0.3175i
   1.1895 - 0.1671i   1.1895 - 0.1671i   1.1895 + 0.1671i   1.1895 + 0.1671i

Algorithms

collectPlaneWave modulates the input signal with a phase corresponding to the delay caused by the direction of arrival. This method does not account for the response of individual elements in the array.

For further details, see [1].

References

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