Main Content

Bandstop and Bandpass Filters with Open Microstrip Line Stubs Using Behavioral and EM Simulation

This example shows different ways to create microstrip Line bandpass and bandstop filters using open circuit stub.

Convert the RF PCB catalog into a circuit element using a pcbElement object and build a Tee shaped circuit. Analyze the circuit using the behavioral model and EM simulation. Use the traceTee shape object in RF PCB Toolbox to create a tee shaped trace. Convert the shape into a PCB component and analyze it. Analyze the PCB using EM Simulation and compare the results with the circuit counterpart.

The dimensions of the microstrip line and the stub in the figure are taken from the reference. The left image shows the circuit representation with the port numbers and the right side image shows the traceTee structure with same dimensions.

Circuit Element with Behavioral Model for Microstrip Line

Create a circuit object and three microstripLine objects to build the circuit as shown in the figure. Update the value of EpsilonR and Height to 2.33 and 1.57 mm respectively.

ckt = circuit;
c1 = microstripLine('Length',46e-3,'Width',4.6e-3,'Height',1.57e-3);
c1.Substrate.EpsilonR = 2.33;

c2 = microstripLine('Length',46e-3,'Width',4.6e-3,'Height',1.57e-3);
c2.Substrate.EpsilonR = 2.33;

c3 = microstripLine('Length',18.4e-3,'Width',4.6e-3,'Height',1.57e-3);
c3.Substrate.EpsilonR = 2.33;

Use the pcbElement object to convert the microstrip lines to circuit objects and set the Behavioral flag to true so that the computation is done using the analytical equations. In the circuit model, the microstrip discontinuities are not modelled, hence the results might be slightly different from EM analysis.

p1  = pcbElement(c1,'Behavioral',true);
p2 = pcbElement(c2,'Behavioral',true);
p3 = pcbElement(c3,'Behavioral',true);

Use the add function to form the circuit and use the ports numbers as shown in the circuit above. Use port numbers 1 and 2 for the first microstrip line and connect another microstrip line from ports 2 to 3 which forms a series connection. Connect the third microstrip line from the port 2 to 4 which forms a tee network.

add(ckt,[1 2 0 0],p1);
add(ckt,[2 3 0 0],p2);
add(ckt,[2 4 0 0],p3);
setports(ckt,[1 0],[3 0]);

Use the sparameters function to calculate the s-parameters for the circuit and plot it using the rfplot function.

S = sparameters(ckt,linspace(1e9,10e9,21));
figure,rfplot(S);

Circuit Element with EM simulation for Microstrip Line

Use the pcbElement object to convert the microstrip lines to circuit objects and set the Behavioral flag to false so that the computation is done using EM Simulation.

ckt1 = circuit;
p1   = pcbElement(c1,'Behavioral',false);
p2   = pcbElement(c2,'Behavioral',false);
p3   = pcbElement(c3,'Behavioral',false);

Use the add function to form the circuit and use the port numbers as shown in the circuit above. Use port numbers 1 and 2 for the first microstrip line and connect another microstrip line from ports 2 to 3 which forms a series connection. Connect the third microstrip line from the port 2 to 4 which forms a tee network.

add(ckt1,[1 2 0 0],p1);
add(ckt1,[2 3 0 0],p2);
add(ckt1,[2 4 0 0],p3);
setports(ckt1,[1 0],[3 0]);

Use the sparameters function to calculate the s-parameters for the circuit and plot it using the rfplot function. Each microstripLine section is solved using the EM solver and the s-parameters calculated are combined to give the combined response of the circuit.

S = sparameters(ckt1,linspace(1e9,10e9,21));
figure;
rfplot(S);

Creating PCB Stack of traceTee Shape with EM Simulation

Use the traceTee shape to create the open circuit stub and use the dimensions as shown in the figure above and visualize it.

obj = traceTee;
obj.Length = [92e-3 18.4e-3];
obj.Width  = [4.6e-3 4.6e-3];
figure;
show(obj);

Use the pcbComponent to convert the shape into a PCB stack. The pcbComponent creates the PCB stack up for traceTee shape and assigns the FeedLocations at the three open ends of the shape. Assign the dielectric and groundplane to the Layers property of the pcbComponent. Also assign the BoardShape to the grounplane. In the current design, the stub is required as open circuit, hence delete the feed at the third location.

pcb = pcbComponent(obj);
gnd = traceRectangular('Length',obj.Length(1),'Width',90e-3);
d   = dielectric('EpsilonR',2.33);
d.Thickness = 1.57e-3;
pcb.BoardThickness = 1.57e-3;
pcb.Layers{2}      = d;
pcb.Layers{3}      = gnd;
pcb.BoardShape     = gnd;
pcb.FeedLocations(3,:)=[];
figure;
show(pcb);

Use the mesh function to manually mesh the structure and set the MaxEdgeLength to 10 mm.

figure,mesh(pcb,'MaxEdgeLength',10e-3);

Use the sparameters function to calculate the s-parameters of the structure and plot it using rfplot function.

S1 = sparameters(pcb,linspace(1e9,8e9,35));
figure;
rfplot(S1);

Design at Specific Frequency

The resonance of the bandstop filter depends on the stub length which needs to be quarter wavelength at the resonant frequency. In the above example the stub is quarter wavelength at 2.9 GHz and hence is resonance is observed at that frequency. If the resonance is expected at any other frequency then the stub length needs to be quarter wavelength at that frequency.

References

  1. Alexander B. Yakovlev, Ahmed I. Khalil , Efficient MOM-based generalized scattering matrix method for the integrated circuit and multilayered structures in waveguide