Signal Radiation
Support for Modeling Signal Radiation
You can use the phased.Radiator
and phased.Collector
objects
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 phased.Radiator
.
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™.
Radiate Signal with Uniform Linear Array
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.
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 phased.SteeringVector
.
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.
disp(y1-y)
0 0 0 0