Main Content


Cardioid antenna element

Since R2021b


The CardioidAntennaElement System object™ models an antenna with a Cardioid Response. Cardioid antennas are often used in direction finding. The cardioid response can be implemented by placing two isotropic radiators in an array, a quarter-wavelength apart and 90° out of phase. The default rotation of the cardioid pattern has a null at 180° azimuth and 0° elevation. The 0° azimuth and 0° elevation is considered to be the main response axis of the antenna. When placed in a linear or a rectangular array, the main response axis is aligned with the array normal.

To compute the response of the antenna element for specified directions:

  1. Create the phased.CardioidAntennaElement object and set its properties.

  2. Call the object with arguments, as if it were a function.

To learn more about how System objects work, see What Are System Objects?



antenna = phased.CardioidAntennaElement creates a cardioid antenna System object, antenna. This object models an antenna element whose response is a cardioid with a null at 180° azimuth and 0° elevation.


antenna = phased.CardioidAntennaElement(Name=Value) creates a cardioid antenna object, antenna, with each specified property set to the specified value. You can specify multiple name-value arguments in any order. For example, FrequencyRange=[1e6 1e9] specifies that the antenna operates in a frequency range from 1 MHz to 1 GHz.


expand all

Unless otherwise indicated, properties are nontunable, which means you cannot change their values after calling the object. Objects lock when you call them, and the release function unlocks them.

If a property is tunable, you can change its value at any time.

For more information on changing property values, see System Design in MATLAB Using System Objects.

Operating frequency range of the antenna, specified as a nonnegative, real-valued, 1-by-2 row vector in the form [LowerBound HigherBound]. The antenna element has no response outside the specified frequency range. Units are in Hz.

Data Types: double

Null axis direction, specified as one of these:


Cardioid pattern with null axis direction minus x

Cardioid pattern with null axis direction minus y

Cardioid pattern with null axis direction minus z


Cardioid pattern with null axis direction plus x

Cardioid pattern with null axis direction plus y

Cardioid pattern with null axis direction plus z

For more information, see Cardioid Response.

Data Types: double




RESP = antenna(FREQ,ANG) returns the antenna voltage response RESP at operating frequencies specified in FREQ and directions specified in ANG.


The object performs an initialization the first time the object is executed. This initialization locks nontunable properties 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

expand all

Operating frequency of the antenna element, specified as a nonnegative scalar or nonnegative, real-valued 1-by-L row vector. Frequency units are in Hz.

FREQ must lie within the range of values specified by the FrequencyRange or the FrequencyVector property of the element. Otherwise, the element produces no response and the response is returned as –Inf. Element objects use the FrequencyRange property, except for phased.CustomAntennaElement, which uses the FrequencyVector property.

Example: [1e8 2e6]

Data Types: double

Azimuth and elevation angles of the response directions, specified as a real-valued 1-by-M row vector or a real-valued 2-by-M matrix, where M is the number of angular directions. Angle units are in degrees. The azimuth angle must lie in the range –180° to 180°, inclusive. The elevation angle must lie in the range –90° to 90°, inclusive.

  • If ANG is a 1-by-M vector, each element specifies the azimuth angle of the direction. In this case, the corresponding elevation angle is assumed to be zero.

  • If ANG is a 2-by-M matrix, each column of the matrix specifies the direction in the form [azimuth;elevation].

The azimuth angle is the angle between the x-axis and the projection of the direction vector onto the xy-plane. This angle is positive when measured from the x-axis toward the y-axis. The elevation angle is the angle between the direction vector and xy-plane. This angle is positive when measured toward the z-axis. See the definition of Azimuth and Elevation Angles.

Example: [110 125; 15 10]

Data Types: double

Output Arguments

expand all

Voltage response of the antenna element, returned as a matrix of size M-by-L. In this matrix, M represents the number of angles specified in ANG and L represents the number of frequencies specified in FREQ.

Data Types: double

Object Functions

To use an object function, specify the System object as the first input argument. For example, to release system resources of a System object named obj, use this syntax:


expand all

patternElevationPlot antenna or transducer element directivity and pattern versus elevation
patternAzimuthPlot antenna or transducer element directivity and pattern versus azimuth
patternPlot antenna or transducer element directivity and patterns
beamwidthCompute and display beamwidth of sensor element pattern
directivityDirectivity of antenna or transducer element
isPolarizationCapableAntenna element polarization capability
stepRun System object algorithm
releaseRelease resources and allow changes to System object property values and input characteristics
resetReset internal states of System object


collapse all

Create a cardioid antenna and plot its azimuth response. The antenna can work between 800 MHz and 1.2 GHz and has an operating frequency of 1 GHz.

element = phased.CardioidAntennaElement( ...
    FrequencyRange=[800e6 1.2e9]);
fc = 1e9;


Find the response of the antenna at the boresight.

ang = [0 0]';
resp = element(fc,ang)
resp = 1

More About

expand all

Extended Capabilities

Version History

Introduced in R2021b