You can use the
to model narrowband signal radiation and collection with an array.
The array can be a single microphone or antenna element, or an array
of sensor elements.
To radiate a signal from a sensor array, use
When you use this object, you must specify these aspects of the radiator:
Whether the output of all sensor elements is combined
Operating frequency of the array
Propagation speed of the wave
Sensor (single element) or sensor array
Whether or not to apply weights to signals radiated by different elements in the array. You apply weights, when you execute the System object™.
Construct a radiator using a two-element ULA with elements spaced 0.5 meters apart (the default ULA). The operating frequency is 300 MHz, the propagation speed is the speed of light, and the element outputs are combined to simulate the far field radiation pattern.
Note: This example runs only in R2016b or later. If you are using an earlier release, replace each call to the function with the equivalent
step syntax. For example, replace
array = phased.ULA('NumElements',2,'ElementSpacing',0.5); radiator = phased.Radiator('Sensor',array,... 'OperatingFrequency',300e6,... 'PropagationSpeed',physconst('LightSpeed'),... 'CombineRadiatedSignals',true);
Create a signal to radiate and propagate to the far field at an angle of (45°,0°) .
x = [1 -1 1 -1]'; y = radiator(x,[45;0]);
The far field signal results from multiplying the signal by the array pattern. The array pattern is the product of the array element pattern and the array factor. For a uniform linear array, the array factor is the superposition of elements in the steering vector
The following code produces an identical far-field signal by explicitly using the array factor.
array = phased.ULA('NumElements',2,'ElementSpacing',0.5); steervec = phased.SteeringVector('SensorArray',array,... 'IncludeElementResponse',true); sv = steervec(300e6,[45;0]); y1 = x*sum(sv);
Compare y1 to y.
0 0 0 0