droppnlp.mws

syntfil[DroppNLP] - compute the element values of normalized lowpass (NLP) LC ladder

Calling sequence:

  DroppNLP(termination, R, direction, struct, pol, chpol)

  DroppNLP(termination, R, direction, struct, pol, chpol, zeros)

Parameters:

      termination - termination of NLP ( common , open , short )

      R           - value of normalized termination resistor (R=1)

      direction   - direction of processing NLP ( front  - from first element, rear  - from last element)

      struct      - structure of NLP ( PI  or T ) - structure begins at the front with shunt capacitor PI , direct inductor T

      pol         - inverse tranfer function

      chpol       - characteristic function

      zeros       - (optional) one dimensional array of transfer function's zeros

Parameter R  must be positive number. If termination  is open  then direction  must be front  and struct  must be T  for even order filter or PI  for odd order filter.
If the
termination  is short  then direction  must be rear  and struct  must be T .

Description:

Info level:

Setting of variable infolevel[syntfil]  can be used to get more detailed results .

infolevel[syntfil] =

      2  - print resulting reminder chain matrix, NLP type, values of termination resistors and individul branches of NLP

      3  - as level 2 +  print initial chain matrix

      4  - as level 3 + print interim chain matrices that are made up after removal of two individual branches of ladder structure

      5  - as level 4 + print element values of individual branches of ladder structure

Example:

>    with(syntfil):

`Syntfil version 1.53 loaded`

`You can set infolevel[syntfil] variable to 2..5 to get more detailed results!`

Inverse transfer function and characteristic function for normalized Butterworth approximation

>    pol,chpol:=s^3+2*s^2+2*s+1,s^3;

pol, chpol := s^3+2*s^2+2*s+1, s^3

>    DroppNLP(common,1,front,T,pol,chpol);

TABLE([1 = TABLE([Z = s*L1, elements = {L1 = 1.000000000}, orientation = direct]), 2 = TABLE([Z = 1/(s*C1), elements = {C1 = 2.000000000}, orientation = shunt]), 3 = TABLE([Z = s*L1, elements = {L1 = 1...
TABLE([1 = TABLE([Z = s*L1, elements = {L1 = 1.000000000}, orientation = direct]), 2 = TABLE([Z = 1/(s*C1), elements = {C1 = 2.000000000}, orientation = shunt]), 3 = TABLE([Z = s*L1, elements = {L1 = 1...
TABLE([1 = TABLE([Z = s*L1, elements = {L1 = 1.000000000}, orientation = direct]), 2 = TABLE([Z = 1/(s*C1), elements = {C1 = 2.000000000}, orientation = shunt]), 3 = TABLE([Z = s*L1, elements = {L1 = 1...
TABLE([1 = TABLE([Z = s*L1, elements = {L1 = 1.000000000}, orientation = direct]), 2 = TABLE([Z = 1/(s*C1), elements = {C1 = 2.000000000}, orientation = shunt]), 3 = TABLE([Z = s*L1, elements = {L1 = 1...
TABLE([1 = TABLE([Z = s*L1, elements = {L1 = 1.000000000}, orientation = direct]), 2 = TABLE([Z = 1/(s*C1), elements = {C1 = 2.000000000}, orientation = shunt]), 3 = TABLE([Z = s*L1, elements = {L1 = 1...

Compute inverse Chebyshev approximation

>    G,Phi,zeros:=InvChebyshev(3,1.4,1,s);

G, Phi, zeros := (2.613333333+.8209400523*s^3+2.296548463*s^2+2.603195468*s)/(s^2+2.613333334), .8209400523*s^3/(s^2+2.613333334), vector([1.616580754*I, -1.616580754*I])

>    elems_nlp:=DroppNLP(common,1,front,PI,G,Phi,zeros);

elems_nlp := TABLE([1 = TABLE([elements = {C1 = .4980605765}, Z = 1/(s*C1), orientation = shunt]), 2 = TABLE([elements = {L1 = .9961201436, C1 = .3841434827}, Z = 1/(1/(s*L1)+s*C1), orientation = direc...
elems_nlp := TABLE([1 = TABLE([elements = {C1 = .4980605765}, Z = 1/(s*C1), orientation = shunt]), 2 = TABLE([elements = {L1 = .9961201436, C1 = .3841434827}, Z = 1/(1/(s*L1)+s*C1), orientation = direc...
elems_nlp := TABLE([1 = TABLE([elements = {C1 = .4980605765}, Z = 1/(s*C1), orientation = shunt]), 2 = TABLE([elements = {L1 = .9961201436, C1 = .3841434827}, Z = 1/(1/(s*L1)+s*C1), orientation = direc...
elems_nlp := TABLE([1 = TABLE([elements = {C1 = .4980605765}, Z = 1/(s*C1), orientation = shunt]), 2 = TABLE([elements = {L1 = .9961201436, C1 = .3841434827}, Z = 1/(1/(s*L1)+s*C1), orientation = direc...
elems_nlp := TABLE([1 = TABLE([elements = {C1 = .4980605765}, Z = 1/(s*C1), orientation = shunt]), 2 = TABLE([elements = {L1 = .9961201436, C1 = .3841434827}, Z = 1/(1/(s*L1)+s*C1), orientation = direc...

Compute transfer function from table with filter description

>    MakeH(elems_nlp);

(1.000000000*s^2+2.613333333)/(.8209171381*s^3+2.296548279*s^2+2.603195281*s+2.613333334)

See also:

Butterworth, Chebyshev, InvChebyshev, InvChebyshevB, Cauer, CauerB, CauerC

MakeH, ElemsLP, ElemsHP, ElemsBP, ElemsBP2, ElemsBPm, ElemsBP2m, ElemsBS, ElemsBSm