Microwave filters GUI  2.0.3
Public Member Functions | List of all members
libfreefilters.CharPolys Class Reference

Characteristic polynomials class. More...

Public Member Functions

def __init__
 Compute characteristic polynomials and characteristic constants.
def symmetrizeTZ
 A list of transmission zeros in unnormalized frequency (Hz) is symmetrized in the normalized frequency axis.
def checkUnormSymTZ
 Check if list of transmission zeros (in Hz) is symmetric with respect to center frequency f0.
def checkNormSymTZ
 Check if list of normalized transmission zeros is symmetric with respect to zero.
def polyStr
 Return string with polynomial coefficients separated by commas.
def saveCharPolys
 Save Characteristic Polynomials and constants in output file.

Detailed Description

Characteristic polynomials class.

Characteristic polynomials and constants are defined as [TN 101 eq. (1)] :

\[ S_{11}(s) = \left[ \frac{F(s)}{\epsilon_r E(s)} \right], S_{12}(s) = S_{21} = \left[ \frac{P(s)}{\epsilon E(s)} \right], S_{22}(s) = \left[ \frac{(-1)^N F(s)^*}{\epsilon_r E(s)} \right] \]

where $ F(s)^* = F^*(-s) $ is the 'Paraconjugate' polynomial of $ F(s) $ [Cameron pp. 208 footnote] and is computed using polyConj function.

Definition at line 83 of file libfreefilters.py.

Constructor & Destructor Documentation

def libfreefilters.CharPolys.__init__ (   self,
  P,
  FT,
  symmetrizeZeros = None 
)

Compute characteristic polynomials and characteristic constants.

        @param P = Parameter class instance containing filter, synthesis and sweep parameters.
        @param  FT = Frequency transformation class instance.
        @param symmetrizeZeros = Automatically symmetrize Generalized Chebyshev zeros in Hz in order to compute a folded matrix with uniform Q in resonators. 
                                                     Equivalent to answering "Yes" in the GUI when it asks the user if he wants to symmetrize Generalized Chebyshev zeros in Hz.
        @return CharPolys class instance.

Characteristic polynomial $ P(s) $ Characteristic polynomial $ E(s) $ Characteristic polynomial $ F(s) $ Characteristic polynomial $ F_{22}(s) $ Characteristic constant $ \epsilon $ in the denominator of $ S_{12} $ and $ S_{21} $ Characteristic constant $ \epsilon_R $ in the denominator of $ S_{11} $ Roundoff error estimation in the computation of lossless characteristic polynomials, given by the rootsErr return value in CharPolys.factorization method. Value 'a' of the (s-a)/(s+a) zero/pole added in lossy filters synthesis case 3.

Definition at line 93 of file libfreefilters.py.

References libcommonfunc.askQuestion(), libfreefilters.butterworthFilter(), libfreefilters.chebyshevFilter(), libfreefilters.CharPolys.checkNormSymTZ(), libfreefilters.CharPolys.checkUnormSymTZ(), libfreefilters.CharPolys.eps, libfreefilters.CharPolys.epsR, libfreefilters.CharPolys.Es, libfreefilters.CharPolys.F22s, libfreefilters.CharPolys.flagCase1, libfreefilters.CharPolys.flagCase2, libfreefilters.CharPolys.flagCase3, libfreefilters.CharPolys.flagComplexTZ, libfreefilters.CharPolys.flagExtraFilter, libfreefilters.CharPolys.flagSymTZ, libfreefilters.CharPolys.flagSymTZnorm, libfreefilters.CharPolys.flagSymTZunorm, libfreefilters.CharPolys.Fs, libfreefilters.CharPolys.nuqDelta, libfreefilters.polyConj(), libfreefilters.CharPolys.Ps, libfreefilters.quasiElipticFilter(), libfreefilters.CharPolys.rootsErr, and libfreefilters.CharPolys.symmetrizeTZ().

Here is the call graph for this function:

Member Function Documentation

def libfreefilters.CharPolys.checkNormSymTZ (   self,
  TZ 
)

Check if list of normalized transmission zeros is symmetric with respect to zero.

Parameters
TZ= List of normalized transmission zeros.
Returns
symmetricFlag = True is zeros are symmetric with relative error < 1e-3, False otherwise.

Definition at line 282 of file libfreefilters.py.

Referenced by libfreefilters.CharPolys.__init__().

Here is the caller graph for this function:

def libfreefilters.CharPolys.checkUnormSymTZ (   self,
  TZ,
  FT 
)

Check if list of transmission zeros (in Hz) is symmetric with respect to center frequency f0.

Parameters
TZ= List of transmission zeros in Hz.
FT= Frequency transform class instance. It will be used to get f0.
Returns
symmetricFlag = True is zeros are symmetric with relative error < 1e-3, False otherwise.

Definition at line 264 of file libfreefilters.py.

Referenced by libfreefilters.CharPolys.__init__().

Here is the caller graph for this function:

def libfreefilters.CharPolys.polyStr (   self,
  pol,
  prec 
)

Return string with polynomial coefficients separated by commas.

Rounds polynomial coefficients to given precision using complexStr() function.

Parameters
pol= Polynomial (numpy.poly1d object).
prec= Number of significant digits (int).
Returns
stcoef = String representation of pol.

Definition at line 302 of file libfreefilters.py.

References libcommonfunc.complexStr().

Referenced by libfreefilters.CharPolys.saveCharPolys().

Here is the call graph for this function:

Here is the caller graph for this function:

def libfreefilters.CharPolys.saveCharPolys (   self,
  P,
  prec 
)

Save Characteristic Polynomials and constants in output file.

Rounds polynomial coefficients to given precision using complexStr() function. Polynomials are of type numpy.poly1d.

Parameters
P= Parameter class instance.
prec= Number of correct significant digits to print.

Definition at line 321 of file libfreefilters.py.

References libcommonfunc.complexStr(), libfreefilters.CharPolys.eps, libfreefilters.CharPolys.epsR, libfreefilters.CharPolys.Es, libfreefilters.CharPolys.Fs, libcommonfunc.myPrint(), libcommonfunc.pkgNameVersion(), libfreefilters.CharPolys.polyStr(), and libfreefilters.CharPolys.Ps.

Here is the call graph for this function:

def libfreefilters.CharPolys.symmetrizeTZ (   self,
  TZ,
  FT 
)

A list of transmission zeros in unnormalized frequency (Hz) is symmetrized in the normalized frequency axis.

The positive zeros are averaged with the corresponding negative zeros in the normalized frequency axis.

Parameters
TZ= List of transmission zeros. Unnormalized frequency (Hz).
FT= Frequency transform class instance.
Returns
TZsym = List of transmission zeros, symmetrized n the normalized frequency axis. Unnormalized frequency (Hz).

Definition at line 245 of file libfreefilters.py.

Referenced by libfreefilters.CharPolys.__init__().

Here is the caller graph for this function:


The documentation for this class was generated from the following file: