collectPlaneWave

System object: phased.PartitionedArray
Package: 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) uses FREQ as the incoming signal's carrier frequency.

Y = collectPlaneWave(H,X,ANG,FREQ,C) uses C as the signal's propagation speed. C must be a scalar.

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 degrees, inclusive. The elevation angle must be between –90 and 90 degrees, 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 subarrays in the array H. Each column of Y is the received signal at the corresponding subarray, with all incoming signals combined.

Examples

expand all

Plane Waves Received at Array Containing Subarrays

Simulate the received signal at a 16-element ULA partitioned into four 4-element ULAs.

Create a 16-element ULA, and partition it into 4-element ULAs.

ha = phased.ULA('NumElements',16);
hpa = phased.PartitionedArray('Array',ha,...
   'SubarraySelection',....
   [1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0;...
    0 0 0 0 1 1 1 1 0 0 0 0 0 0 0 0;...
    0 0 0 0 0 0 0 0 1 1 1 1 0 0 0 0;...
    0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1]);

Simulate receiving signals from 10 degrees and 30 degrees azimuth. Both signals have an elevation angle of 0 degrees. Assume the propagation speed is the speed of light and the carrier frequency of the signal is 100 MHz.

Y = collectPlaneWave(hpa,randn(4,2),[10 30],...
   1e8,physconst('LightSpeed'));

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 and only models the array factor among subarrays. Therefore, the result does not depend on whether the subarray is steered.

Was this topic helpful?