Filter Designer is a console program that designs 4 basic filters for given inputs. It is written in Python and Jupyter Notebook will be available soon. It is not recommended to use frequencies above 200-300 MHz since wavelength decreases in lumped element model filters. Use distributed element model for higher frequencies.
Filters are circuits that can pass or stop given frequencies or frequency bands. Passive filters contain passive elements unlike active filters. These elements are resistors, capacitors and inductors. Resistor is not a good practice in RF circuits. Therefore inductors are used instead of resistors since they boost the current.
In practice, passive filters are designed by using Normalized Filter Coefficient Tables. Filter order and characteristic are determined by performance requirements. This is, usually, done by providing attenuation on unwanted frequency components. Bode plots are used to analyze frequency response of RF circuits such as filters and magnitude is in Decibel (dB) scale.
Basically there are 5 types of program inputs. These inputs are explained as follow:
- Filter Type:
- LPF: Defines Low Pass Filter.
- HPF: Defines High Pass Filter.
- BPF: Defines Band Pass Filter.
- BSF: Defines Band Stop Filter.
- Cutoff Frequency: Defines -3dB point(s) of the filter. Low and high cutoff frequencies are given as inputs for Bandpass Filter or Bandstop Filter. Scientific notation is used for cutoff frequencies in Hz.
- Filter Characteristic: Defines filter characteristics to calculate zeros and poles. Only Butterworth and Chebyshev filters are available. Bessel response will be implemented in further updates.
- Impedance: Filter impedance. Typically 50 ohms. It is considered as source impedance is equal to load impedance in calculations. For impedance matching networks see Impedance Matching calculation tool repo.
- Filter Order: Filter order directly effects Transfer Function of the circuit in analysis. It's also can be obtained by number of delay elements of a circuit as seen in Finite Impulse Response (FIR) filter designs.
Filter coefficients, capacitor and inductor values are given as outputs at then end of program. Scientific notation is used for values of capacitors and inductors. All arrays are printed to console.
It's strictly recommended to simulate the circuit by obtained values in filter topologies. Run the program in the console and make an AC Analysis in LTSpice in order to analyze Frequency Response for obtained circuit. All the tests are done by simulation and few of obtained circuits are built on PCB's. Use a Vector Network Analyzer (VNA) for measurements on real PCB's. S21 parameters on VNA must be matched with simulations.
Some of the simulations and measurements are given in following images.
Circuit topologies for High Pass and Low Pass Filters can be seen in image. Each circuit is labeled by its type, characteristic and cutoff frequency.
Simulation outputs can be observed as following for given generated circuits. Butterworth Low Pass Filter output is plotted in blue color. Butterworth and Chebyshev High Pass Filters are plotted in red and cyan colors.
For Bandstop Filter type simulation results may not be satisfying for good performance over attenuating the band. Transition width may need to be improved. Constructed circuit in LTSpice and simulation output is given as following.
Using circuit topologies in Filter_Simulations.asc file will be practical. Pi filter topology is used in this filter simulation file. Kicad files for given circuit topologies can be found in Kicad folder. GERBER files can be directly loaded to a PCB manufacturer. These circuits are designed by using 0603 / 1608 (metric) components. Therefore, power will be limited.
- WINDER, S., Analog and Digital Filter Design.
- Getopt structure will be implemented.
- AC Analysis will be implemented. Simulation will be integrated within single script.
- User Interface may be implemented.