This is machine translation

Translated by Microsoft
Mouseover text to see original. Click the button below to return to the English verison of the page.

Note: This page has been translated by MathWorks. Please click here
To view all translated materals including this page, select Japan from the country navigator on the bottom of this page.


System object: phased.CustomAntennaElement
Package: phased

Output response of antenna element





Starting in R2016b, instead of using the step method to perform the operation defined by the System object™, you can call the object with arguments, as if it were a function. For example, y = step(obj,x) and y = obj(x) perform equivalent operations.

RESP = step(H,FREQ,ANG) returns the antenna’s voltage response RESP at operating frequencies specified in FREQ and directions specified in ANG. The form of RESP depends upon whether the antenna element supports polarization as determined by the SpecifyPolarizationPattern property. If SpecifyPolarizationPattern is set to false, RESP is an M-by-L matrix containing the antenna response at the M angles specified in ANG and at the L frequencies specified in FREQ. If SpecifyPolarizationPattern is set to true, RESP is a MATLAB® struct containing two fields, RESP.H and RESP.V, representing the antenna's response in horizontal and vertical polarization, respectively. Each field is an M-by-L matrix containing the antenna response at the M angles specified in ANG and at the L frequencies specified in FREQ.


The object performs an initialization the first time the step method is executed. This initialization locks nontunable properties (MATLAB) and input specifications, such as dimensions, complexity, and data type of the input data. If you change a nontunable property or an input specification, the System object issues an error. To change nontunable properties or inputs, you must first call the release method to unlock the object.

Input Arguments


Antenna element object.


Operating frequencies of antenna in hertz. FREQ is a row vector of length L.


Directions 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 of the matrix specifies the direction 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 element specifies a direction’s azimuth angle. In this case, the corresponding elevation angle is assumed to be 0.

Output Arguments


Voltage response of antenna element. The output depends on whether the antenna element supports polarization or not.

  • If the antenna element does not support polarization, RESP is an M-by-L matrix. In this matrix, M represents the number of angles specified in ANG while L represents the number of frequencies specified in FREQ.

  • If the antenna element supports polarization, RESP is a MATLAB struct with fields RESP.H and RESP.V containing responses for the horizontal and vertical polarization components of the antenna radiation pattern. RESP.H and RESP.V are M-by-L matrices. In these matrices, M represents the number of angles specified in ANG while L represents the number of frequencies specified in FREQ.


expand all

Construct a user-defined antenna with an omnidirectional response in azimuth and a cosine pattern in elevation. The antenna operates at 1 GHz. Plot the response pattern. Then, find the antenna response at 30°

antenna = phased.CustomAntennaElement;
antenna.AzimuthAngles = -180:180;
antenna.ElevationAngles = -90:90;
antenna.MagnitudePattern = mag2db(repmat(cosd(antenna.ElevationAngles)',...

Find the response at 30° elevation for an operating frequency of 1 GHz.

fc = 1.0e9;
resp = antenna(fc,[0;30])
resp = 0.8660

Create a custom antenna element object. The radiation pattern has a cosine dependence on elevation angle but is independent of azimuth angle.

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 myObject(x) with step(myObject,x).

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, ...

Display the radiation pattern.

      -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);

The following code illustrates how nearest-neighbor interpolation method 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(ang(1,:))', deg2rad(ang(2,:))','nearest',0);
h = interp1(antenna.FrequencyVector,...
antresp = h.*g;

Compare the value of antresp to the response of the antenna.



The total response of a custom antenna element is a combination of its frequency response and spatial response. phased.CustomAntennaElement calculates both responses using nearest neighbor interpolation, and then multiplies the responses to form the total response.

Was this topic helpful?