We are seeking your comments/opinions on the following. We are creating a tool, plain ANSI C based, that will return the ladder LC model filter coefficients for any input filter specification. The input specification would include e.g., for a low-pass 5th order Chebyschev filter with pass-band ripple of 0.2dB, cut-off frequency of 500 MHz, The output is in SPICE text based input format, specifically a SPICE 'SUBCKT' and consists entirely of discrete components, Our queries are:
Is a GUI needed ?
Any other points that we might be missing.
All comments/opinions are welcome. Thanks in advance,
Sure -- might show graphs, play with parts values, etc.
Bonus points for being able to specify real parts (i.e., finite Q, and/or parasitic L/C).
Even better to start with a prototype design (such as one of the standard filter types), and adjust node and branch subcircuits. AADE Filter Design allows this (more or less, but it doesn't seem to have a "remove stage" function, bizarrely).
Bonus points (and by "points", I mean real monetary bucks -- even I'd pay for this!) for parts value optimizations -- best fit or bounded constraint to a frequency (and/or phase or group delay) curve, using real valued components, or limited to selections from a database (e.g., E12 values, inventory stock). Plotting first order derivatives would be cool too (not directly, but as part of evaluating parts value sensitivity).
I've heard of such features in super expensive suites, but they're so cryptic on interface and capability, not to mention price (if you have to ask?..), that I have no problem plodding along with meager tools without them.
(Oh, boy! I havent written to Santa Claus in a looong time.)
Dear Filta Claus:
Being able to specify constraints that are closer to what users actually ca re about would be good too.
Usually phase linearity is more about time domain overshoot and settling ti me, except maybe with FM or fancy digital modulation schemes.
Return loss is another very useful item--absorptive filters (or filters plu s diplexers) really help the spurious signal performance of mixers. I'd pay money just for that. 20 dB return loss is a nice number.
For super fancy filters, that might have to be trimmed, it would be useful to have plots of what temperature does to the response, and what size trimm ers to use, where to put them, and approximately where in their range to st art from. (Temperature is probably hard since capacitor tempcos are nonline ar and hard to predict.)
Optimal matching networks are probably outside your interest, but maximizin g power transfer from some weird source such as a photodiode over some spec ified bandwidth is another thing I run into.
There are theorems that tell you the maximum average efficiency for many co mmon cases, but designing the right network is nontrivial.
We bought the Nuhertz LC filter program. I think it cost around $1000 and paid for itself quickly. It does a zillion different filter forms, many that we'd never heard of, and can design a filter using standard L and C values. It works really well, but the user interface is clunky. The guy who runs Nuhertz is brilliant and sort of crabby.
Somebody could make some money buying that and running solutions for a fee. Few people need to design LC filters full-time.
I use the free Filterpro for active filters. V2 seems to be better than later editions.
John Larkin Highland Technology, Inc
picosecond timing laser drivers and controllers
Maybe. The problem with this is that it then becomes very specific to a particular OS. If you only want to support Windows, that's fine, but you then get to make updates to track what Microsoft does to you.
For a while, Java was supposed to be the solution to cross-platform GUIs, but it's sort of going away, these days. Qt is a slightly newer solution, but it 1) costs money for commercial use and 2) is a pain in the butt to use.
If you make this program, I'd suggest writing the core program as a command-line thing that takes input from the command line or a configuration file. Then, write a GUI to drive it. This lets people use the GUI if they want, or generate their own command lines or configuration files to run the program directly. The command-line version can also be instantly ported to just about any OS people might like to run. Having the command-line version also makes it easier for people to automate it with shell scripts, batch files, or equal. They could even put it on a server, make an HTML GUI, and use cgi-bin or similar to drive it.
A1. Yes A2. Yes, because it is not clear why you would bother writing an LC filter design program.
Why? Because FILSYN (S/FILSYN) is the single most powerful filter design tool ever written, particularly for LC filters, and it is now in public domain.
It is a bit quirky, can crash, and is not super-easy to use, but it is worth the effort to learn if you ever need anything beyond cookbook designs. FILSYN will not export SPICE lists, but really, that is not so important compared to what it can do.
Output example: *** Filsyn *** Filter Program 23-Feb-2015 16:43 1 +---R---+ 50.000000 ohm 3 +---C---+ 300.000000 fF 4 | C 41.721050pF 5 +---C---+ 11.576369pF | .-+. 6 | L C 22.000000nH res.frequency | `-+' 21.765163pF 230.000000 MHz 7 +---C---+ 24.284063pF 8 | C 116.237958pF +-L-. | 33.000000nH 9 | +-C-+ 119.779503pF res. frequency +-C-' | 12.763563pF 245.232036 MHz
11 +---C---+ 3.000000pF
12 | C 32.133646pF
13 +---C---+ 4.309304pF | .-+.
14 | L C 22.000000nH res.frequency | `-+' 25.812482pF 211.200000 MHz
15 +---C---+ 8.191478pF
16 | C 64.289364pF +-L-. | 33.000000nH
17 | +-C-+ 64.883740pF res. frequency +-C-' | 24.826674pF 175.834421 MHz
19 +---C---+ 2.500000pF
20 | C 40.204568pF
21 +---C---+ 1.714493pF | .-+.
22 | L C 22.000000nH res.frequency | `-+' 26.741230pF 207.500000 MHz
23 +---C---+ 1.772733pF
24 | C 50.028972pF +-L-. | 33.000000nH
25 | +-C-+ 72.006394pF res. frequency +-C-' | 25.996699pF 171.832005 MHz
27 +---C---+ 7.371066pF
28 | C 236.624737pF
29 +---C---+ 2.951900pF | .-+.
30 | L C 22.000000nH res.frequency | `-+' 24.227277pF 218.000000 MHz
31 +---C---+ 3.996633pF
32 | C 38.733111pF
33 +---C---+ 4.000000pF
35 +---R---+ 50.000000 ohm
Band-pass filter Equal-ripple pass band Bandedge loss = 0.500000 dB. Lower passband edge frequency = 107.000000 MHz Upper passband edge frequency = 194.000000 MHz Specified stopband type Parametric bandpass Multiplicity of zero at zero = 1 Multiplicity of zero at infinity = 1 Number of finite transmission zeros = 7 Overall filter degree = 16 Transmission zeros real part imaginary part 0.0000000D+00 8.8500000D+07 0.0000000D+00 7.6100000D+07 0.0000000D+00 9.2500000D+07 0.0000000D+00 2.0750000D+08 0.0000000D+00 2.1120000D+08 0.0000000D+00 2.1800000D+08 0.0000000D+00 2.3000000D+08 Value of freal = 144.076369 MHz Input termination = 50.000000 ohm Output termination = 50.000000 ohm Requested termination ratio = 1.0000000D+00
-------------- Try doing the above with anything else. You can't. Only QuikFil comes close on the LC alone basis, and it is a DOS program. BTW, QuickFil is in public domain too. You'd need DOSbox for it.
ar e derived via compiled scripts. If one purchases Winbatch (another vendor) , they can develop their own scripts. I have never done that. The "front- end" scripts drive the FILSYN engine.
However, I should mention one of the main quirks, and this will probably an noy people, is that the scripting starts filling out the fields in the GUI and pop-ups for the main engine. If you click in another program while it is doing this, say Excel for example, the script input will then be re-dire cted to the other program, and start filling in cells. That is not good. It is not "multi-task." You have to wait for it to finish. If the program is run in a VM, then the problem is circumvented.
It is strange, but for me it is easy to look past given what is otherwise o ffered... for free. It isn't that hard to work around.
The program was written by George Szentirmai. Work on the program began in the '60's.
I should say that one can also drive the main engine by direct entry. Scri pts are not required. I do direct entry often. (The filter I showed was d esigned that way.) The scripting quirk is never seen for direct entry becau se there is no script to be run.
Dear Sir, Our package was developed on a multitasking platform (Linux) and has been easily ported to Windows 7. On Windows, it can be run under the native Visual Studio .NET framework, or the far more convenient Cygwin/MingW framework. The choice is yours. Our teste so far do not show ANY of the quirks that you have mentioned in your posts. The main strength of our package is that the output is in SPICE format text file that can easily be used for performance anaylsis, after making simple modifications to the SPICE file to add in signal source, analysis directives (e.g. .AC, .TRAN etc.,) We use Ngspice-26. The workflow is simple(please check below for sample input/output). We provide the user two options to design a band-pass filter.
User specifies filter specifications in a simple text file to be used as input to the program. This input text file contains cut-off frequency (low/high Butterworths/ Chebyschev), pass-band ripple (Chebyschev) filter name(Butterworths/Chebyschev), bandwidth/center frequency(band-pass filter) filter type(band-pass, high-pass, low-pass) and of course filter order (1|2|3|4|5|6|7|8|9|10)
The output is in a SPICE input format text file. EXAMPLES: (A) To create a 8th irder Butterworths low pass filter, provide the specification in a text file:
8 950000000 50 bw 0.0 l 0.0 0.0
Program prints name of SPICE format output file: Filter order 8 bw8O50950000000l.cir
Thank you very much for your suggestions. The core program is already working(please see sample output posted with responses to another message). As the output filter design is in SPICE text format, the user is provided the maximum flexibility to choose parameters for performance analysis, - signal source, .AC, .TRAN analysis etc., I do agree with your comments on both Java and Qt.
n tool ever written, particularly for LC filters, and it is now in public d omain.
worth the effort to learn if you ever need anything beyond cookbook designs . FILSYN will not export SPICE lists, but really, that is not so important compared to what it can do.
close on the LC alone basis, and it is a DOS program. BTW, QuickFil is in public domain too. You'd need DOSbox for it.
tion in a text
Spice lists are convenient, no doubt about that. So is automatic input to A WR, or similar tools. If desired, these listings could be generated by scr ipt processing the text output of FILSYN, for example, or the text output o f other programs. A spice listing is a trivial part of the more general fi lter problem. Formulaic synthesis of Butterworth and Cheby has been known since the 1950's. The Amstutz method for elliptic designs has been known s ince the late 70's (iirc). What you've mentioned is simply canned/cookbook stuff that is not that important given that these things are widely availa ble for free.
FILSYN is a *general* synthesis and manipulation program. It goes so far b eyond cookbook basics that it is not proper to compare it to cookbook-only programs. It is like comparing a child T-ball star to Hank Aaron.
Do you understand the scope of what a "full-featured" synthesis program ent ails? (Plus, there is "no money" in that business.) A spice listing is fros ting on the smallest sliver of cake. I mean, when you are reporting a Butt erworth/Cheby output as notable progress, I think you are 1/1000th of the w ay "there." Have you done Butterworth and Cheby yet with unequal terminati ons? (Your listing shows equal terms.) Heck, I did the Butterworth/Cheby sy nthesis in m-code years ago. I never use it. Very good LC filter programs have already been written, and are cheap or free. The only "new stuff" is along the lines of the cross coupling approach such as that of GWT. But t hat is for a restricted class of filters.
ign tool ever written, particularly for LC filters, and it is now in public domain.
s worth the effort to learn if you ever need anything beyond cookbook desig ns. FILSYN will not export SPICE lists, but really, that is not so importa nt compared to what it can do.
es close on the LC alone basis, and it is a DOS program. BTW, QuickFil is i n public domain too. You'd need DOSbox for it.
cation in a text
AWR, or similar tools. If desired, these listings could be generated by s cript processing the text output of FILSYN, for example, or the text output of other programs. A spice listing is a trivial part of the more general filter problem. Formulaic synthesis of Butterworth and Cheby has been know n since the 1950's. The Amstutz method for elliptic designs has been known since the late 70's (iirc). What you've mentioned is simply canned/cookbo ok stuff that is not that important given that these things are widely avai lable for free.
beyond cookbook basics that it is not proper to compare it to cookbook-onl y programs. It is like comparing a child T-ball star to Hank Aaron.
ntails? (Plus, there is "no money" in that business.) A spice listing is fr osting on the smallest sliver of cake. I mean, when you are reporting a Bu tterworth/Cheby output as notable progress, I think you are 1/1000th of the way "there." Have you done Butterworth and Cheby yet with unequal termina tions? (Your listing shows equal terms.) Heck, I did the Butterworth/Cheby synthesis in m-code years ago. I never use it. Very good LC filter progra ms have already been written, and are cheap or free. The only "new stuff" is along the lines of the cross coupling approach such as that of GWT. But that is for a restricted class of filters.
Thanks for the feedback. A few points:
Most of what we EEs(UNLIKE physicists) do is "cookbook". Digital IC designers rely heavily on "standard cell libraries" and the CAD tool pulls out those particular standard cells that can be opti mized for a particular design. An engineering mahager would not like his/her subordinates spending days writing out/verifying the transfer function for say a 10th order band pass filterand then finding all the poles/zeros etc., Even the design for a single transistor RF amplifier runs over 8 - 10 pages, - one small error, and the design goes down the drain. Given that no one does filter design full-time, a reliable tool is essential.
Just because examples provided are based on the common Butterworths and Chebyschev filters, DOES NOT mean that we ignore Bessel, Cauer/Zolatarev etc., filters .
We are happy that you think that "you are 1/1000th of the way "there." ". That is progress.
Sure a lot of packages are "free" but come with their own quirks(a few of which you point out for FILSYN). I have used Linux all my career, but that definitely does not mean that all distributions of Linux are bug-free. Let us not even get into Microsoft's products.
Oh yes, we are aware of Guided Wave Technology and we do have definite plans of adding hard-core microwave related features in the near future.