mwavepy.transmissionLine.functions
index
/home/alex/docs/python/path/mwavepy/transmissionLine/functions.py

#       functions.py
#       
#       Copyright 2010 alex arsenovic <arsenovic@virginia.edu>
#       
#       This program is free software; you can redistribute it and/or modify
#       it under the terms of the GNU General Public License as published by
#       the Free Software Foundation; either version 2 of the License, or
#       (at your option) any later versionpy.
#       
#       This program is distributed in the hope that it will be useful,
#       but WITHOUT ANY WARRANTY; without even the implied warranty of
#       MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
#       GNU General Public License for more details.
#       
#       You should have received a copy of the GNU General Public License
#       along with this program; if not, write to the Free Software
#       Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
#       MA 02110-1301, USA.

 
Modules
       
numpy

 
Functions
       
Gamma0_2_Gamma_in = reflection_coefficient_at_theta(Gamma0, theta)
reflection coefficient at electrical length theta
takes:
        Gamma0: reflection coefficient at theta=0
        theta: electrical length, (may be complex)
returns:
        Gamma_in
        
note: 
         = Gamma0 * exp(-2j* theta)
Gamma0_2_zin = reflection_coefficient_2_input_impedance_at_theta(z0, Gamma0, theta)
calculates the input impedance at electrical length theta, given a
reflection coefficient and characterisitc impedance of the medium
takes:
        z0 - characteristic impedance. 
        Gamma: reflection coefficient
        theta: electrical length of the line, (may be complex) 
returns 
        zin: input impedance at theta
Gamma0_2_zl = reflection_coefficient_2_input_impedance(z0, Gamma)
calculates the input impedance given a reflection coefficient and 
characterisitc impedance of the medium
takes:
        
        Gamma: reflection coefficient
        z0 - characteristic impedance.
array(...)
array(object, dtype=None, copy=True, order=None, subok=False, ndmin=True)
 
Create an array.
 
Parameters
----------
object : array_like
    An array, any object exposing the array interface, an
    object whose __array__ method returns an array, or any
    (nested) sequence.
dtype : data-type, optional
    The desired data-type for the array.  If not given, then
    the type will be determined as the minimum type required
    to hold the objects in the sequence.  This argument can only
    be used to 'upcast' the array.  For downcasting, use the
    .astype(t) method.
copy : bool, optional
    If true (default), then the object is copied.  Otherwise, a copy
    will only be made if __array__ returns a copy, if obj is a
    nested sequence, or if a copy is needed to satisfy any of the other
    requirements (`dtype`, `order`, etc.).
order : {'C', 'F', 'A'}, optional
    Specify the order of the array.  If order is 'C' (default), then the
    array will be in C-contiguous order (last-index varies the
    fastest).  If order is 'F', then the returned array
    will be in Fortran-contiguous order (first-index varies the
    fastest).  If order is 'A', then the returned array may
    be in any order (either C-, Fortran-contiguous, or even
    discontiguous).
subok : bool, optional
    If True, then sub-classes will be passed-through, otherwise
    the returned array will be forced to be a base-class array (default).
ndmin : int, optional
    Specifies the minimum number of dimensions that the resulting
    array should have.  Ones will be pre-pended to the shape as
    needed to meet this requirement.
 
Examples
--------
>>> np.array([1, 2, 3])
array([1, 2, 3])
 
Upcasting:
 
>>> np.array([1, 2, 3.0])
array([ 1.,  2.,  3.])
 
More than one dimension:
 
>>> np.array([[1, 2], [3, 4]])
array([[1, 2],
       [3, 4]])
 
Minimum dimensions 2:
 
>>> np.array([1, 2, 3], ndmin=2)
array([[1, 2, 3]])
 
Type provided:
 
>>> np.array([1, 2, 3], dtype=complex)
array([ 1.+0.j,  2.+0.j,  3.+0.j])
 
Data-type consisting of more than one element:
 
>>> x = np.array([(1,2),(3,4)],dtype=[('a','<i4'),('b','<i4')])
>>> x['a']
array([1, 3])
 
Creating an array from sub-classes:
 
>>> np.array(np.mat('1 2; 3 4'))
array([[1, 2],
       [3, 4]])
 
>>> np.array(np.mat('1 2; 3 4'), subok=True)
matrix([[1, 2],
        [3, 4]])
electrical_length(gamma, f, d, deg=False)
calculates the electrical length of a section of transmission line.
 
takes:
        gamma: propagation constant function , (a function which 
                takes frequency in [hz])
        l: length of line. in meters
        f: frequency at which to calculate. array-like or float. if
                left as None and self.fBand exists, it will use that.
        deg: return in degrees or not. boolean.
 
returns:
        theta: electrical length in radians or degrees, 
                depending on  value of deg.
input_impedance_2_reflection_coefficient(z0, zl)
calculates the reflection coefficient for a given input impedance 
takes:
        
        zl: input (load) impedance.  
        z0 - characteristic impedance.
input_impedance_2_reflection_coefficient_at_theta(z0, zl, theta)
input_impedance_at_theta(z0, zl, theta)
input impedance of load impedance zl at electrical length theta, 
given characteristic impedance z0.
 
takes:
        z0 - characteristic impedance. 
        zl: load impedance
        theta: electrical length of the line, (may be complex)
reflection_coefficient_2_input_impedance(z0, Gamma)
calculates the input impedance given a reflection coefficient and 
characterisitc impedance of the medium
takes:
        
        Gamma: reflection coefficient
        z0 - characteristic impedance.
reflection_coefficient_2_input_impedance_at_theta(z0, Gamma0, theta)
calculates the input impedance at electrical length theta, given a
reflection coefficient and characterisitc impedance of the medium
takes:
        z0 - characteristic impedance. 
        Gamma: reflection coefficient
        theta: electrical length of the line, (may be complex) 
returns 
        zin: input impedance at theta
reflection_coefficient_at_theta(Gamma0, theta)
reflection coefficient at electrical length theta
takes:
        Gamma0: reflection coefficient at theta=0
        theta: electrical length, (may be complex)
returns:
        Gamma_in
        
note: 
         = Gamma0 * exp(-2j* theta)
theta = electrical_length(gamma, f, d, deg=False)
calculates the electrical length of a section of transmission line.
 
takes:
        gamma: propagation constant function , (a function which 
                takes frequency in [hz])
        l: length of line. in meters
        f: frequency at which to calculate. array-like or float. if
                left as None and self.fBand exists, it will use that.
        deg: return in degrees or not. boolean.
 
returns:
        theta: electrical length in radians or degrees, 
                depending on  value of deg.
zeros(...)
zeros(shape, dtype=float, order='C')
 
Return a new array of given shape and type, filled with zeros.
 
Parameters
----------
shape : {tuple of ints, int}
    Shape of the new array, e.g., ``(2, 3)`` or ``2``.
dtype : data-type, optional
    The desired data-type for the array, e.g., `numpy.int8`.  Default is
    `numpy.float64`.
order : {'C', 'F'}, optional
    Whether to store multidimensional data in C- or Fortran-contiguous
    (row- or column-wise) order in memory.
 
Returns
-------
out : ndarray
    Array of zeros with the given shape, dtype, and order.
 
See Also
--------
numpy.zeros_like : Return an array of zeros with shape and type of input.
numpy.ones_like : Return an array of ones with shape and type of input.
numpy.empty_like : Return an empty array with shape and type of input.
numpy.ones : Return a new array setting values to one.
numpy.empty : Return a new uninitialized array.
 
Examples
--------
>>> np.zeros(5)
array([ 0.,  0.,  0.,  0.,  0.])
 
>>> np.zeros((5,), dtype=numpy.int)
array([0, 0, 0, 0, 0])
 
>>> np.zeros((2, 1))
array([[ 0.],
       [ 0.]])
 
>>> s = (2,2)
>>> np.zeros(s)
array([[ 0.,  0.],
       [ 0.,  0.]])
 
>>> np.zeros((2,), dtype=[('x', 'i4'), ('y', 'i4')])
array([(0, 0), (0, 0)],
      dtype=[('x', '<i4'), ('y', '<i4')])
zl_2_Gamma0 = input_impedance_2_reflection_coefficient(z0, zl)
calculates the reflection coefficient for a given input impedance 
takes:
        
        zl: input (load) impedance.  
        z0 - characteristic impedance.
zl_2_Gamma_in = input_impedance_2_reflection_coefficient_at_theta(z0, zl, theta)
zl_2_zin = input_impedance_at_theta(z0, zl, theta)
input impedance of load impedance zl at electrical length theta, 
given characteristic impedance z0.
 
takes:
        z0 - characteristic impedance. 
        zl: load impedance
        theta: electrical length of the line, (may be complex)

 
Data
        INF = 9.9999999999999997e+98
ONE = 1.00000000000001
cos = <ufunc 'cos'>
exp = <ufunc 'exp'>
inf = inf
log = <ufunc 'log'>
pi = 3.1415926535897931
sin = <ufunc 'sin'>
sqrt = <ufunc 'sqrt'>
tan = <ufunc 'tan'>