invchebyshev.mws

syntfil[InvChebyshev]  - compute the inverse Chebyshev approximation

syntfil[InvChebyshevB]  - compute the inverse type B Chebyshev approximation

Calling sequence:

      InvChebyshev(order, Os, ap, var)

Parameters:

      order    - order of the Chebyshev approximation [-]

      Os       - stopband frequency of normalized lowpass (NLP) [1/s]

  ap       - passband ripple [dB]

      var      - variable symbol in tranfer and characteristic function

Parameter order  must be positive integer and for type B in addition even. Parameters Os   and   ap  must be positive numbers where Os  > 1 . Parameter   var   must be symbol .

Description:

Info level:

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

infolevel[syntfil] =

      2  - print polynomials of inverse transfer function characteristic function and zeros of transfer function on separate lines with description.

      3  - as level 2 +  print transfer function's poles and parameter epsilon .

      4  - as level 3 + print ellipse parameter ( a , b ) on which lies poles of transfer function and secondary parameter k1 .

      5  - for type B - as level 4 + print transfer function's poles and zeros for type A.

Example:

>    with(syntfil):

`Syntfil version 1.53 loaded`

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

>    G_a,Phi_a,zeros_a:=InvChebyshev(4,1.2,3,s);

G_a, Phi_a, zeros_a := (16.58879999+6.136435684*s^4+18.24562933*s^3+29.00242158*s^2+24.08370386*s)/(16.58879998+s^4+11.51999999*s^2), 6.054406899*s^4/(16.58879998+s^4+11.51999999*s^2), vector([1.298870...
G_a, Phi_a, zeros_a := (16.58879999+6.136435684*s^4+18.24562933*s^3+29.00242158*s^2+24.08370386*s)/(16.58879998+s^4+11.51999999*s^2), 6.054406899*s^4/(16.58879998+s^4+11.51999999*s^2), vector([1.298870...

>    infolevel[syntfil]:=3:

>    G_b,Phi_b,zeros_b:=InvChebyshevB(4,1.2,3,s);

epsilon = .9976283451

Poles of H:

[-.2636496923+1.018799929*I, -.2636496923-1.018799929*I, -1.217556347+.7169388538*I, -1.217556347-.7169388538*I]

InvChebyshevB:

G = (1.829360748+.8273937923*s^4+2.451081364*s^3+3.630556516*s^2+3.102333590*s)/(s^2+1.829360748)

Phi = .8273937923*s^4/(s^2+1.829360748)

Zeros = [1.352538631*I, -1.352538631*I]

G_b, Phi_b, zeros_b := (1.829360748+.8273937923*s^4+2.451081364*s^3+3.630556516*s^2+3.102333590*s)/(s^2+1.829360748), .8273937923*s^4/(s^2+1.829360748), vector([1.352538631*I, -1.352538631*I])
G_b, Phi_b, zeros_b := (1.829360748+.8273937923*s^4+2.451081364*s^3+3.630556516*s^2+3.102333590*s)/(s^2+1.829360748), .8273937923*s^4/(s^2+1.829360748), vector([1.352538631*I, -1.352538631*I])

Magnitude frequency response for type A  and B .

>    plot([MagnitudeHdB(1/G_a)(omega),MagnitudeHdB(1/G_b)(omega)],omega=0..8,-40..0,color=[red,green]);

[Maple Plot]

See also:

ChebyshevNLPOrder 
InvChebyshevPolesZeros, Chebyshev_asnew

DroppNLP, TestCharEqn, sortzeros, MagnitudeH, MagnitudeHdB, PhaseH, GroupDelayH
in addition to inverse Chebyshev approximation the following approximations can be used
Butterworth, Chebyshev, Cauer, CauerB, CauerC