This is machine translation

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

Note: This page has been translated by MathWorks. Click here to see
To view all translated materials including this page, select Country from the country navigator on the bottom of this page.


Single-feed or multi-feed PCB antenna


The pcbStack object is a single-feed or multi-feed printed circuit board (PCB) antenna. Using the PCB stack, you can create antennas using single-layer or multilayer metal or metal-dielectric substrates. You can also use the PCB stack to create antennas with an arbitrary number of feeds and vias. You can also use Antenna Toolbox™ catalog antennas to create a PCB antenna.



pcbant = pcbStack
pcbant = pcbStack(Name,Value)
pcbant = pcbStack(ant)



pcbant = pcbStack creates an air-filled single-feed PCB with two metal layers.


pcbant = pcbStack(Name,Value) creates a PCB antenna, with additional properties specified by one or more name-value pair arguments. Name is the property name and Value is the corresponding value. You can specify several name-value pair arguments in any order as Name1, Value1, ..., NameN, ValueN. Properties not specified retain their default values.


pcbant = pcbStack(ant) converts any 2D or 2.5D antenna from the antenna catalog into a PCB antenna for further modeling and analysis.


expand all

Name of PCB antenna, specified a character vector.

Example: 'Name','PCBPatch'

Data Types: char

Revision details of PCB antenna design, specified as a character vector.

Example: 'Revision','2.0'

Data Types: char

Shape of PC board, specified as an object. Rectangle is the only supported board shape.

Example: 'BoardShape',antenna.Rectangle

Thickness of PC board, specified as a positive scalar.

Example: 'BoardThickness',0.02000

Data Types: double

Metal and dielectric layers, specified a cell array of metal layer shapes and dielectric. You can specify one metal shape or one dielectric per layer starting with the top layer and proceeding down.

Data Types: double

Feed locations for PCB antenna in Cartesian coordinates, specified as N -by-3 or N-by-4 array. The arrays translate to the following:

  • N -by-3 – [x, y, Layer]

  • N-by-4 – [x, y, SigLayer, GndLayer]

Example: 'FeedLocations',[-0.0187 0 1 2]

Data Types: double

Center pin diameter of feed connector, specified as a positive scalar in meters.

Example: 'FeedDiameter',2.000e-04

Data Types: double

Electrical short locations for antenna in Cartesian coordinates, specified as a real vector of size M-by-4 array. The arrays translate to the following:

  • M-by-4 – [x, y, SigLayer, GndLayer]

Example: 'ViaLocations',[0 -0.025 1 2]

Data Types: double

Electrical shorting pin diameter between metal layers, specified a positive scalar in meters.

Example: 'ViaDiameter',1.0e-3

Data Types: double

Magnitude voltage applied at the feeds, specified as a positive scalar in volts.

Example: 'FeedVoltage',2

Data Types: double

Model for approximating feed and via, specified as one of the following:

  • 'strip' – A rectangular strip approximation to the feed or via cylinder. This approximation is the simplest and results in a small mesh.

  • 'square' – A 4-sided polyhedron approximation to the feed or via cylinder.

  • 'hexagon' – A 6-sided polyhedron approximation to the feed or via cylinder.

  • 'octagon' – A 8-sided polyhedron approximation to the feed or via cylinder.

Example: 'FeedViaModel','octagon'

Data Types: double

Excitation phase at each feed, specified as a real vector in degrees.

Example: 'FeedPhase',2

Data Types: double

Lumped elements added to the antenna feed, specified as a lumped element object handle. For more information, see lumpedElement.

Example: 'Load',lumpedelement. lumpedelement is the object handle for the load created using lumpedElement.

Example: pcbant.Load = lumpedElement('Impedance',75)

Tilt angle of antenna, specified as a scalar or vector with each element unit in degrees.

Example: 'Tilt',90

Example: 'Tilt',[90 90 0]

Data Types: double

Tilt axis of the antenna, specified as:

  • A three-element vector of Cartesian coordinates in meters. In this case, each vector starts at the origin and lies along the specified points on the X, Y, and Z axes.

  • Two points in space as three-element vectors of Cartesian coordinates. In this case, the antenna rotates along the line joining the two points.

  • A string input describing simple rotations around the principal axis, X, Y, or Z.

For more information see, Rotate Antenna and Arrays

Example: 'TiltAxis',[0 1 0]

Example: 'TiltAxis',[0 0 0;0 1 0]

Example: 'TiltAxis','Z'

Data Types: double

Object Functions

showDisplay antenna or array structure; Display shape as filled patch
infoDisplay information about antenna or array
axialRatioAxial ratio of antenna
beamwidthBeamwidth of antenna
chargeCharge distribution on metal or dielectric antenna or array surface
currentCurrent distribution on metal or dielectric antenna or array surface
designDesign prototype antenna for resonance at specified frequency
EHfieldsElectric and magnetic fields of antennas; Embedded electric and magnetic fields of antenna element in arrays
impedanceInput impedance of antenna; scan impedance of array
meshMesh properties of metal or dielectric antenna or array structure
meshconfigChange mesh mode of antenna structure
patternRadiation pattern of antenna or array; Embedded pattern of antenna element in array
patternAzimuthAzimuth pattern of antenna or array
patternElevationElevation pattern of antenna or array
returnLossReturn loss of antenna; scan return loss of array
sparametersS-parameter object
showDisplay antenna or array structure; Display shape as filled patch
vswrVoltage standing wave ratio of antenna


collapse all

Create and view a default PCB antenna.

p = pcbStack
p = 
  pcbStack with properties:

              Name: 'MyPCB'
          Revision: 'v1.0'
        BoardShape: [1x1 antenna.Rectangle]
    BoardThickness: 0.0100
            Layers: {[1x1 antenna.Rectangle]  [1x1 antenna.Rectangle]}
     FeedLocations: [-0.0187 0 1 2]
      FeedDiameter: 1.0000e-03
      ViaLocations: []
       ViaDiameter: []
      FeedViaModel: 'strip'
       FeedVoltage: 1
         FeedPhase: 0
              Tilt: 0
          TiltAxis: [1 0 0]
              Load: [1x1 lumpedElement]


Setup parameters.

vp  = physconst('lightspeed');
f   = 850e6;
lambda = vp./f;

Build a planar dipole with capacitive loading at the ends.

L = 0.15;
W = 1.5*L;
stripL = L;
gapx = .015;
gapy = .01;
r1 = antenna.Rectangle('Center',[0,0],'Length',L,'Width',W,'Center',[lambda*0.35,0]);
r2 = antenna.Rectangle('Center',[0,0],'Length',L,'Width',W,'Center',[-lambda*0.35,0]);
r3 = antenna.Rectangle('Length',0.5*lambda,'Width',0.02*lambda,'NumPoints',2);
s = r1 + r2 + r3;

Assign the radiator shape to pcbStack and make the changes to the board shape and feed diameter properties.

boardShape = antenna.Rectangle('Length',0.6,'Width',0.3);
p = pcbStack;
p.BoardShape = boardShape;
p.Layers = {s};
p.FeedDiameter = .02*lambda/2;
p.FeedLocations = [0 0 1];

Analyze the impedance of the antenna. Effect of the end-loading should result in the series resonance to be pushed lower in the band.


Create a pcb stack antenna with 2 mm dielectric thickness at the radiator and air below it. Display the structure.

p = pcbStack;
d1 = dielectric('FR4');
d1.Thickness = 2e-3;
d2 = dielectric('Air');
d2.Thickness = 8e-3;
p.Layers = {p.Layers{1},d1,d2,p.Layers{2}};
p.FeedLocations(3:4) = [1 4];

Create a PCB stack antenna from reflector backed bowtie.

b = design(bowtieRounded,1e9);
b.Tilt = 90
b = 
  bowtieRounded with properties:

        Length: 0.0959
    FlareAngle: 90
          Tilt: 90
      TiltAxis: [1 0 0]
          Load: [1x1 lumpedElement]

b.TiltAxis = [0 1 0];
r = reflector('Exciter',b);
p = pcbStack(r);

Plot the directivity pattern of the antenna at 1 GHz.


Create a coplanar inverted F antenna.

fco = invertedFcoplanar('Height',14e-3,'GroundPlaneLength', 100e-3,  ...
                  'GroundPlaneWidth', 100e-3);

Use this antenna to create a pcbStack object.

p = pcbStack(fco);

Create a circular microstrip patch.

p = patchMicrostripCircular;
d = dielectric;
d.EpsilonR = 4.4;
p.Radius = .0256;
p.Height = 1.6e-3;
p.Substrate = d;
p.GroundPlaneLength = 3*.0256;
p.GroundPlaneWidth = 3*.0256;
p.FeedOffset = [.0116 0];

Create a PCB circular microstrip patch using pcbStack.

pb = pcbStack(p);
pb.FeedDiameter = 1.27e-3;
pb.ViaLocations = [0 pb.FeedLocations(1)/1.1 1 3];
pb.ViaDiameter = pb.FeedDiameter;

C = SMA_Jack_Cinch;
O = PCBServices.MayhewWriter;
O.DefaultViaDiam = pb.ViaDiameter;
O.Filename = 'Microstrip circular patch-9a';
Am = PCBWriter(pb,O,C);

Images using Mayhew Labs 3-D Viewer.


[1] Balanis, C. A. Antenna Theory. Analysis and Design. 3rd Ed. Hoboken, NJ: John Wiley & Sons, 2005.

[2] Stutzman, W. L. and Gary A. Thiele. Antenna Theory and Design. 3rd Ed. River Street, NJ: John Wiley & Sons, 2013.

Introduced in R2017a

Was this topic helpful?