Electronics-Related.com
Forums

Request feedback on the following -- filter design tool

Started by Unknown May 7, 2015
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:
1. Is a GUI needed ?
2. Any other points that we might be
missing.

All comments/opinions are welcome. 
Thanks in advance,
      
1. Sure -- might show graphs, play with parts values, etc.

Basically, this: http://www-users.cs.york.ac.uk/~fisher/lcfilter/

Bonus points for being able to specify real parts (i.e., finite Q, and/or 
parasitic L/C).

2. 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.

Tim

-- 
Seven Transistor Labs, LLC
Electrical Engineering Consultation and Contract Design
Website: http://seventransistorlabs.com

<dakupoto@gmail.com> wrote in message 
news:3478209a-4efe-46fa-a4f4-9fbb04ffc6cf@googlegroups.com...
> 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: > 1. Is a GUI needed ? > 2. Any other points that we might be > missing. > > All comments/opinions are welcome. > Thanks in advance, >
(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 care about would be good too. 

Usually phase linearity is more about time domain overshoot and settling time, except maybe with FM or fancy digital modulation schemes. 

Return loss is another very useful item--absorptive filters (or filters plus 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 trimmers to use, where to put them, and approximately where in their range to start from. (Temperature is probably hard since capacitor tempcos are nonlinear and hard to predict.)

Optimal matching networks are probably outside your interest, but maximizing power transfer from some weird source such as a photodiode over some specified bandwidth is another thing I run into. 

There are theorems that tell you the maximum average efficiency for many common cases, but designing the right network is nontrivial. 

Oh, I forgot--I'd also like a pony. ;)

Cheers

Phil Hobbs
On Thu, 7 May 2015 04:39:02 -0500, "Tim Williams"
<tiwill@seventransistorlabs.com> wrote:

>1. Sure -- might show graphs, play with parts values, etc. > >Basically, this: http://www-users.cs.york.ac.uk/~fisher/lcfilter/ > >Bonus points for being able to specify real parts (i.e., finite Q, and/or >parasitic L/C). > >2. 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. > >Tim
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 jlarkin att highlandtechnology dott com http://www.highlandtechnology.com
> > I use the free Filterpro for active filters. V2 seems to be better > than later editions. > >
and there is this free tool http://www.tonnesoftware.com/elsie.html Mark
dakupoto@gmail.com wrote:
> We are creating a tool, plain ANSI C based, that will return the > ladder LC model filter coefficients for any input filter > specification. [...] > > 1. Is a GUI needed ?
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. Matt Roberds
dakupoto@gmail.com Wrote in message:
> 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: > 1. Is a GUI needed ? > 2. Any other points that we might be > missing. > > All comments/opinions are welcome. > Thanks in advance, > >
Why would you use plain ANSI C to write a tool like this? That seems pathological. -- ----Android NewsGroup Reader---- http://usenet.sinaapp.com/
John Larkin <jlarkin@highlandtechnology.com> Wrote in message:
> On Thu, 7 May 2015 04:39:02 -0500, "Tim Williams" > <tiwill@seventransistorlabs.com> wrote: > >>1. Sure -- might show graphs, play with parts values, etc. >> >>Basically, this: http://www-users.cs.york.ac.uk/~fisher/lcfilter/ >> >>Bonus points for being able to specify real parts (i.e., finite Q, and/or >>parasitic L/C). >> >>2. 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. >> >>Tim > > 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 > > jlarkin att highlandtechnology dott com > http://www.highlandtechnology.com > >
Do you still need a thingie that generates equivalent gate drive RLC ladder networks from MOSFET S parameters? I had some ideas. -- ----Android NewsGroup Reader---- http://usenet.sinaapp.com/
On 07/05/2015 22:27, mroberds@att.net wrote:
> dakupoto@gmail.com wrote: >> We are creating a tool, plain ANSI C based, that will return the >> ladder LC model filter coefficients for any input filter >> specification. [...] >> >> 1. Is a GUI needed ? > > 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. > > Matt Roberds >
Qt is free for commercial use if your program is not statically linked with Qt code.
On Wednesday, May 6, 2015 at 8:43:11 PM UTC-7, daku...@gmail.com wrote:
> 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: > 1. Is a GUI needed ? > 2. Any other points that we might be > missing.
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. See http://alkeng.com/ 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 <New Passive Filter> 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.