Main Content

Model and Analyze Planar Photonic Band Gap Structure

This example shows how to create and analyze microwave planar Photonic Band Gap (PBG) structures using Antenna Toolbox™. Photonic Band Gap structures consist of a periodic lattice which provides effective and flexible control of the Electromagnetic wave propagation in one or multiple directions. Microwave planar PBG structures were first introduced around the year 2000 by Prof. Itoh and his group. These structures create a stop band over a certain frequency range and are easy to implement by cutting periodic patterns on the metal ground plane.

Specify Design Frequency and Board Parameters

The design shown in this example is the same as in [1]. A 50-ohm conventional microstrip is designed on a RT/Duroid 6010 substrate, with dielectric constant of 10.5 and 25 mil thickness. The strip width is 27 mil. The period of the lattice on the back is kept at 200 mil. The overall PCB board size is 6 periods by 9 periods.

period = 200*1e-3*0.0254; % period = 200mil;

boardLength = period*6;
boardWidth  = period*9;
boardThick  = 25*1e-3*0.0254; % board is 25mil thick
boardPlane = antenna.Rectangle(Length=boardLength,...
     Width=boardWidth);

sub = dielectric(Name="Duroid6010",EpsilonR=10.5,...
     Thickness=boardThick); 

stripWidth = 27*1e-3*0.0254; % 27mil;
stripLength = boardWidth;

strip = antenna.Rectangle(Length=stripWidth,...
     Width=stripLength,Center=[0,0]);

Create patch with holes of radius 25 mil

First section of the example uses a circle with radius of 25 mil as the unit etch shape on the ground. A lattice of size 3 by 9 is etched out from the ground plane. The constructed ground plane is shown below. Later section of the example shows the performance of the microstrip using circles of larger radii 50 mil and 90 mil.

gnd = boardPlane;
radius = 25*1e-3*0.0254;  % hole radius = 25mil;
posStart = [-period, -stripLength/2+period/2];
for i = 1:3
    for j =1:9
        pos = posStart+[(i-1)*period,(j-1)*period];
        circle = antenna.Circle(Radius=radius,...
             Center=pos,NumPoints=16);
        gnd = gnd - circle;
    end
end
figure
show(gnd)
axis equal;

Figure contains an axes object. The axes object with xlabel x (mm), ylabel y (mm) contains 2 objects of type patch. These objects represent PEC, mypolygon.

Create PCB Stack

Combine the top microstrip, substrate, and etched ground plane into pcbStack object for meshing and full wave analysis. View the constructed geometry.

obj = pcbStack(Name="2D Bandgap Structure");
obj.BoardShape = boardPlane;
obj.BoardThickness = boardThick;
obj.Layers = {strip,sub,gnd};
obj.FeedLocations = [0,-boardWidth/2,1,3;0,boardWidth/2,1,3];
obj.FeedDiameter = stripWidth/2;
figure
show(obj)
axis equal;
title(obj.Name);

Figure contains an axes object. The axes object with title 2D Bandgap Structure, xlabel x (mm), ylabel y (mm) contains 7 objects of type patch, surface. These objects represent PEC, feed, Duroid6010.

Manually mesh the structure using manual mesh mode to better control the output triangles and tetrahedra.

figure
mesh(obj,MaxEdgeLength=12*stripWidth,...
     MinEdgeLength=stripWidth,GrowthRate=0.85);

Figure contains an axes object and an object of type uicontrol. The axes object with title Metal-Dielectric, xlabel x (m), ylabel y (m) contains 4 objects of type patch, surface. These objects represent PEC, feed.

Calculate and Plot S-parameters

To observe the band gap effect, compute the S-parameters for the 2-port system. The band gap effect is shown in the S21 parameter. Calculate the S-parameters from 2 GHz to 16 GHz, and plot the S21 and S11 for the three different circle radii. To speed up the simulation, the S-parameters have been precomputed and stored in a MAT-file. The commented code shows how to calculate S-parameters. Load this MAT-file and plot the S-parameters.

%% S-parameters Calculation
% freq = linspace(2e9,16e9,141);
% sparam = sparameters(obj,freq);

load('atx_bandgap_data.mat','sparam_25mil');
load('atx_bandgap_data.mat','sparam_50mil');
load('atx_bandgap_data.mat','sparam_90mil');
figure
subplot(3,1,1);
rfplot(sparam_25mil,1,1,'-');
text(4e9,-40,'Radius = 25 mil', FontSize=8, Color='m')
hold on; 
rfplot(sparam_25mil,2,1,'--');
legend off;
subplot(3,1,2);
rfplot(sparam_50mil,1,1,'-');
text(4e9,-40,'Radius = 50 mil', FontSize=8, Color='m')
hold on; 
rfplot(sparam_50mil,2,1,'--');
legend off;
subplot(3,1,3);
rfplot(sparam_90mil,1,1,'-');
text(4e9,-40,'Radius= 90 mil', FontSize=8, Color='m')
hold on; 
rfplot(sparam_90mil,2,1,'--');

Figure contains 3 axes objects. Axes object 1 with xlabel Frequency (GHz), ylabel Magnitude (dB) contains 3 objects of type line, text. These objects represent dB(S_{11}), dB(S_{21}). Axes object 2 with xlabel Frequency (GHz), ylabel Magnitude (dB) contains 3 objects of type line, text. These objects represent dB(S_{11}), dB(S_{21}). Axes object 3 with xlabel Frequency (GHz), ylabel Magnitude (dB) contains 3 objects of type line, text. These objects represent dB(S_{11}), dB(S_{21}).

It is observed from the calculated S-parameters that there is a stop band around 11GHz, which converts the 50-ohm matched transmission line into a bandstop filter. By varying the etching shape on the groundplane, different filter structures such as low pass or high pass, etc. can be realized.

90-degree Bend Microstrip Structure

Create a compensated right-angled microstrip bend with patterned groundplane. The etched circles on the ground plane follow the right-angle bend.

Specify Board Parameters

bendboardLength = period*9;
bendboardWidth = period*9;
boardThick = 25*1e-3*0.0254; % board is 25mil thick
bendboardPlane = antenna.Rectangle(Length=bendboardLength, Width=bendboardWidth);
bendgnd = bendboardPlane;

stripLength = bendboardWidth/2;
strip_1 = antenna.Rectangle(Length=stripLength, Width=stripWidth,...
    Center=[stripLength/2,0]);
strip_2 = antenna.Rectangle(Length=stripWidth, Width=stripLength+stripWidth/2,...
    Center=[0,-stripLength/2+stripWidth/4]);

bendstrip = strip_1 + strip_2;

Create Patch with Holes of Radius 50mil

Create and view the patch with right-angle patterned holes of radius 50mil.

radius = 50*1e-3*0.0254;  % hole radius = 50mil;
posStart = [-period, -stripLength+period/2];
pos = zeros(27,2);
for i = 1:3
    for j =1:6
        pos = posStart+[(i-1)*period,(j-1)*period];
        circle = antenna.Circle(Radius=radius, Center=pos, NumPoints=15);
        bendgnd = bendgnd - circle;
    end
end
posStart = [period, -period];
for i = 1:3
    for j = 1:3
        pos = posStart+[(i)*period,(j-1)*period];
        circle = antenna.Circle(Radius=radius, Center=pos);
        bendgnd = bendgnd - circle;
    end
end
figure
show(bendgnd)
axis equal;

Figure contains an axes object. The axes object with xlabel x (mm), ylabel y (mm) contains 2 objects of type patch. These objects represent PEC, mypolygon.

Use the same procedure to construct the patch with right-angle patterned holes of radius 90mil.

Create PCB Stack

Create the layer stack up by organizing the PCB layers, setting the feed locations for the ports.

bendobj = pcbStack(Name="2-D Bandgap Bend Structure");
bendobj.BoardShape = bendboardPlane;
bendobj.BoardThickness = boardThick;
bendobj.Layers = {bendstrip,sub,bendgnd};
bendobj.FeedLocations = [0,-bendboardLength/2,1,3;bendboardWidth/2,0,1,3];
bendobj.FeedDiameter = stripWidth/2;
figure
show(bendobj)
axis equal;
title(bendobj.Name);

Figure contains an axes object. The axes object with title 2-D Bandgap Bend Structure, xlabel x (mm), ylabel y (mm) contains 7 objects of type patch, surface. These objects represent PEC, feed, Duroid6010.

Calculate and Plot S-parameters

To speed up the simulation, the S-parameters have been precomputed and stored in a MAT-file. The commented code shows how to calculate S-parameters. Load this MAT-file and plot the S-parameters. The analysis results compare favorably with the measured results reported in [1] and the PBG properties of the structure are captured effectively. It is noted here that the analysis predicts almost perfect reflection within the stop band while the measured results shown in Fig. 3 of [1] reveal the presence of a loss mechanism that improves the impedance match slightly.

%% S-parameters Calculation
% freq= linspace(2e9,16e9,141);
% sparam = sparameters(obj,freq);

load('atx_bandgap_data.mat','sparam_bend_50mil');
figure
rfplot(sparam_bend_50mil,1,1,'-');
hold on; 
rfplot(sparam_bend_50mil,2,1,'--');

Figure contains an axes object. The axes object with xlabel Frequency (GHz), ylabel Magnitude (dB) contains 2 objects of type line. These objects represent dB(S_{11}), dB(S_{21}).

Conclusion

The result obtained for the three designs matches well with the result published in [1].

Reference

[1] V. Radisic, Y. Qiang, R. Coccioli, and T. Itoh, "Novel 2-D Photonic Bandgap Structure for Microstrip Lines", IEEE Microwave and Guided Wave Letters, vol. 8, No. 2, 1998;

See Also