Signal Collection

Support for Modeling Signal Collection

To model the collection of a signal with a sensor element or sensor array, you can use the phased.Collector or phased.WideBandCollector. Both collector objects assume that incident signals have propagated to the location of the array elements, but have not been received by the array. In other words, the collector objects do not model the actual reception by the array. See Receiver Preamp for signal effects related to the gain and internal noise of the array's receiver.

In many array processing applications, the ratio of the signal's bandwidth to the carrier frequency is small. Expressed as a percentage, this ratio does not exceed a few percent. Examples include radar applications where a pulse waveform is modulated by a carrier frequency in the microwave range. These are narrowband signals. For narrowband signals, you can express the steering vector as a function of a single frequency, the carrier frequency. For narrowband signals, the phased.Collector object is appropriate.

In other applications, the narrowband assumption is not justified. In many acoustic and sonar applications, the wave impinging on the array is a pressure wave that is unmodulated. It is not possible to express the steering vector as a function of a single frequency. In these cases, the subband approach implemented in phased.WidebandCollector is appropriate. The wideband collector decomposes the input into subbands and computes the steering vector for each subband.

When you use the narrowband collector, phased.Collector, you must specify these aspects of the collector:

  • Operating frequency of the array

  • Propagation speed of the wave

  • Sensor (single element) or sensor array

  • Type of incoming wave. Choices are 'Plane' and 'Unspecified'. If you select 'Plane', the input signals are multiple plane waves impinging on the entire array. Each plane wave is received by all collecting elements. If you select 'Unspecified', the input signal are individual waves impinging on individual sensors.

  • Whether to apply weights to signals collected by different elements in the array. If you want to apply weights, you specify them when you call the step method.

When you use the wideband collector, phased.WidebandCollector, you must specify these aspects of the collector:

  • Carrier frequency

  • Whether the signal is demodulated to the baseband

  • Operating frequency of the array

  • Propagation speed of the wave

  • Sampling rate

  • Sensor (single element) or sensor array

  • Type of incoming wave. Choices are 'Plane' and 'Unspecified'. If you select 'Plane', the input signals are multiple plane waves impinging on the entire array. Each plane wave is received by all collecting elements. If you select 'Unspecified', the input signal are individual waves impinging on individual sensors.

  • Whether to apply weights to signals collected by different elements in the array. If you want to apply weights, you specify them when you call the step method.

Narrowband Collector for Uniform Linear Array

This example shows how to construct a narrowband collector that models a plane wave impinging on a two-element uniform linear array. The array has an element spacing of 0.5 m (default ULA). The operating frequency of the array is 300 MHz.

hula = phased.ULA('NumElements',2,'ElementSpacing',0.5);
hcol = phased.Collector('Sensor',hula,...
    'PropagationSpeed',physconst('LightSpeed'),...
    'OperatingFrequency',3e8,'Wavefront','Plane')
% create signal to create
x =[1 -1 1 -1]';
% simulate reception from an angle of [45;0]
y = step(hcol,x,[45;0]);

In the preceding case, the collector object multiplies the input signal, x, by the corresponding element of the steering vector for the two-element ULA. The following code produces the response in an equivalent manner.

% default ULA
hula = phased.ULA('NumElements',2,'ElementSpacing',0.5);
% Construct steering vector
hsv = phased.SteeringVector('SensorArray',hula);
sv = step(hsv,3e8,[45;0]);
x =[1 -1 1 -1]';
y1 = x*sv.';
% compare y1 to y

Narrowband Collector for a Single Antenna Element

The Sensor property of phased.Collector can consist of a single antenna element. In this example, create a custom antenna element using phased.CustomAntennaElement. The antenna element has a cosine response over elevation angles from [–90,90] degrees. Plot the polar pattern response of the antenna at 1 GHz using an elevation cut at zero degrees azimuth. Determine the antenna voltage response at 0 degrees azimuth and 45 degrees elevation.

ha = phased.CustomAntennaElement;
ha.AzimuthAngles = -180:180;
ha.ElevationAngles = -90:90;
ha.RadiationPattern = mag2db(...
    repmat(cosd(ha.ElevationAngles)',1,numel(ha.AzimuthAngles)));
plotResponse(ha,1e9,'Format','polar','RespCut','El');
resp = step(ha,1e9,[0; 45])

The antenna voltage response at zero degrees azimuth and 45 degrees elevation is cosd(45) as expected.

Assume a narrowband sinusoidal input incident on the antenna element from 0 degrees azimuth and 45 degrees elevation. Determine the signal collected at the element.

hc = phased.Collector('Sensor',ha,'OperatingFrequency',1e9)
x =[1 -1 1 -1]';
y = step(hc,x,[0; 45]);
% equivalent to y1 = x*cosd(45);

Wideband Signal Collection

This example shows how to simulate the reception of a wideband acoustic signal by a single omnidirectional microphone element.

x = randn(10,1);
hmic = phased.OmnidirectionalMicrophoneElement(...
    'FrequencyRange',[20 20e3],'BackBaffled',true)
hwb = phased.WidebandCollector('Sensor',hmic,...
    'PropagationSpeed',340,'SampleRate',50e3,...
    'ModulatedInput',false)
y = step(hwb,x,[30;10]);
Was this topic helpful?