Custom Antenna Element
Support for Custom Antenna Elements
The phased.CustomAntennaElement
object enables
you to model a custom antenna element. When you use phased.CustomAntennaElement
,
you must specify these aspects of the antenna:
Operating frequency vector for the antenna element
Frequency response of the element at the frequencies in the operating frequency vector
Azimuth angles and elevation angles where the custom response is evaluated
Magnitude radiation pattern. This pattern shows the spatial response of the antenna at the azimuth and elevation angles you specify.
Tip
You can import a radiation pattern that uses u/v coordinates or φ/θ angles, instead of azimuth/elevation angles. To use such a pattern with
phased.CustomAntennaElement
, first convert your pattern to azimuth/elevation form. Useuv2azelpat
orphitheta2azelpat
to do the conversion. For an example, see Antenna Array Analysis with Custom Radiation Pattern.
For your custom antenna element, the antenna response depends on the frequency response and radiation pattern. Specifically, the frequency and spatial responses are interpolated separately using nearest-neighbor interpolation and then multiplied together to produce the total response. To avoid interpolation errors, the range of azimuth angles should include +/– 180 degrees and the range of elevation angles should include +/– 90 degrees.
Antenna with Custom Radiation Pattern
Create a custom antenna element object. The radiation pattern has a cosine dependence on elevation angle but is independent of azimuth angle.
az = -180:90:180; el = -90:45:90; elresp = cosd(el); magpattern = mag2db(repmat(elresp',1,numel(az))); phasepattern = zeros(size(magpattern)); antenna = phased.CustomAntennaElement('AzimuthAngles',az,... 'ElevationAngles',el,'MagnitudePattern',magpattern, ... 'PhasePattern',phasepattern);
Display the radiation pattern.
disp(antenna.MagnitudePattern)
-Inf -Inf -Inf -Inf -Inf -3.0103 -3.0103 -3.0103 -3.0103 -3.0103 0 0 0 0 0 -3.0103 -3.0103 -3.0103 -3.0103 -3.0103 -Inf -Inf -Inf -Inf -Inf
Calculate the antenna response at the azimuth-elevation pairs (-30,0) and (-45,0) at 500 MHz.
ang = [-30 0; -45 0]; resp = antenna(500.0e6,ang); disp(resp)
0.7071 1.0000
The following code illustrates how nearest-neighbor interpolation is used to find the antenna voltage response in the two directions. The total response is the product of the angular response and the frequency response.
g = interp2(deg2rad(antenna.AzimuthAngles),... deg2rad(antenna.ElevationAngles),... db2mag(antenna.MagnitudePattern),... deg2rad(ang(1,:))', deg2rad(ang(2,:))','nearest',0); h = interp1(antenna.FrequencyVector,... db2mag(antenna.FrequencyResponse),500e6,'nearest',0); antresp = h.*g;
Compare the value of antresp
to the response of the antenna.
disp(mag2db(antresp))
-3.0103 0