Where To Find This Example

Select Help > Open Examples... from the menus and type either the example name listed above or one of the keywords below.

Or in Version 13 or higher you can open the project directly from this page using this button. Make sure to select the Enable Guided Help before clicking this button.

<script src="https://s3.amazonaws.com/downloads.awrcorp.com/gh/ghcommon.bas"
<button class="gh-button gh-projectopen" onclick="runAwrScript('awrGhOpenProject','Discrete_Filter_Optimization.emp')">Open Install Example</button>

Design Notes

Bandpass filter using discrete variables


This project demonstrates the use of the “stepped()” function to discretely tune and optimize variables.  Without discrete optimization, values can be assigned unrealistic values, for example a transmission line width of 32.456 mils.  The approach discussed here allows the values to only be assigned discrete values. 


The lengths, widths and spacings of the filter can be tuned and optimized over a range of discrete values defined by the stepped functions (shown below).




The arguments (x,y,z) of the stepped function f=stepped(x,y,z) are the start, stop, step values, respectively.   Then, a second variable is assigned as an index into the original vectors defined with the stepped function.  For example, L0=Len[15] will set L0 to a value of 114.  This syntax will also display the current value from the vector.  You may have to redraw the schematic to see this setting. 

The schematic titled Discrete Filter contains the discrete variables to be optimized. Note that vector variables are defined for each parameter that will be discretely optimized. Then, the parameters themselves are set equal to a certain array index of the vector. It is the array index that changes during the optimization. The indices can also be tuned.


For this example, select Simulate->Optimize and select the Pointer - Robust Optimization optimizer. Be sure the Show all iteration" box is check, then click Start.  The results of the optimization can be watched in real time on the Filter Response graph. The circuit is only optimized over the range of values defined in the array.  You may want to set fewer frequency points in the Project Options so each optimization iteration will be faster. To go back to the starting stage click  Revert > Initial in Optimizer window. 

Filter Response Graph

This graph shows the insertion loss and return loss for the Discrete Filter schematic.

Schematic - Discrete_Filter

Schematic Layout - Discrete_Filter

Graph - Filter Response