[Scipysvn] r6819  trunk/scipy/signal
scipysvn@scip...
scipysvn@scip...
Thu Sep 23 04:17:48 CDT 2010
Author: rgommers
Date: 20100923 04:17:48 0500 (Thu, 23 Sep 2010)
New Revision: 6819
Modified:
trunk/scipy/signal/bsplines.py
trunk/scipy/signal/fir_filter_design.py
Log:
DOC: make bsplines and fir_filter_design docs conform to current documentation standard.
Modified: trunk/scipy/signal/bsplines.py
===================================================================
 trunk/scipy/signal/bsplines.py 20100923 09:17:31 UTC (rev 6818)
+++ trunk/scipy/signal/bsplines.py 20100923 09:17:48 UTC (rev 6819)
@@ 14,8 +14,8 @@
def spline_filter(Iin, lmbda=5.0):
"""Smoothing spline (cubic) filtering of a rank2 array.
 Filter an input data set, Iin, using a (cubic) smoothing spline of
 falloff lmbda.
+ Filter an input data set, `Iin`, using a (cubic) smoothing spline of
+ falloff `lmbda`.
"""
intype = Iin.dtype.char
hcol = array([1.0,4.0,1.0],'f')/6.0
@@ 37,15 +37,15 @@
_splinefunc_cache = {}
def _bspline_piecefunctions(order):
 """Returns the function defined over the leftside
 pieces for a bspline of a given order. The 0th piece
 is the first one less than 0. The last piece is
 a function identical to 0 (returned as the constant 0).
+ """Returns the function defined over the leftside pieces for a bspline of
+ a given order.
 (There are order//2 + 2 total pieces).
+ The 0th piece is the first one less than 0. The last piece is a function
+ identical to 0 (returned as the constant 0). (There are order//2 + 2 total
+ pieces).
 Also returns the condition functions that when evaluated
 return boolean arrays for use with numpy.piecewise
+ Also returns the condition functions that when evaluated return boolean
+ arrays for use with `numpy.piecewise`.
"""
try:
return _splinefunc_cache[order]
@@ 100,9 +100,13 @@
return funclist, condfuncs
def bspline(x,n):
 """bspline(x,n): Bspline basis function of order n.
 uses numpy.piecewise and automatic functiongenerator.
+def bspline(x, n):
+ """Bspline basis function of order n.
+
+ Notes
+ 
+ Uses numpy.piecewise and automatic functiongenerator.
+
"""
ax = abs(asarray(x))
# number of pieces on the leftside is (n+1)/2
@@ 110,14 +114,16 @@
condlist = [func(ax) for func in condfuncs]
return piecewise(ax, condlist, funclist)
def gauss_spline(x,n):
+def gauss_spline(x, n):
"""Gaussian approximation to Bspline basis function of order n.
"""
signsq = (n+1) / 12.0
return 1/sqrt(2*pi*signsq) * exp(x**2 / 2 / signsq)
def cubic(x):
 """Special case of bspline. Equivalent to bspline(x,3).
+ """A cubic Bspline.
+
+ This is a special case of `bspline`, and equivalent to ``bspline(x, 3)``.
"""
ax = abs(asarray(x))
res = zeros_like(ax)
@@ 132,7 +138,9 @@
return res
def quadratic(x):
 """Special case of bspline. Equivalent to bspline(x,2).
+ """A quadratic Bspline.
+
+ This is a special case of `bspline`, and equivalent to ``bspline(x, 2)``.
"""
ax = abs(asarray(x))
res = zeros_like(ax)
@@ 182,16 +190,16 @@
rho = rho * sqrt((48*lam + 24*lam * sqrt(3+144*lam))/xi)
return rho,omeg
def _hc(k,cs,rho,omega):
+def _hc(k, cs, rho, omega):
return cs / sin(omega) * (rho**k)*sin(omega*(k+1))*(greater(k,1))
def _hs(k,cs,rho,omega):
+def _hs(k, cs, rho, omega):
c0 = cs*cs * (1 + rho*rho) / (1  rho*rho) / (12*rho*rho*cos(2*omega) + rho**4)
gamma = (1rho*rho) / (1+rho*rho) / tan(omega)
ak = abs(k)
return c0 * rho**ak * (cos(omega*ak) + gamma*sin(omega*ak))
def _cubic_smooth_coeff(signal,lamb):
+def _cubic_smooth_coeff(signal, lamb):
rho, omega = _coeff_smooth(lamb)
cs = 12*rho*cos(omega) + rho*rho
K = len(signal)
@@ 245,24 +253,27 @@
output[k] = zi*(output[k+1]yplus[k])
return output*8.0
def cspline1d(signal,lamb=0.0):
 """Compute cubic spline coefficients for rank1 array.
+def cspline1d(signal, lamb=0.0):
+ """
+ Compute cubic spline coefficients for rank1 array.
 Description:
+ Find the cubic spline coefficients for a 1D signal assuming
+ mirrorsymmetric boundary conditions. To obtain the signal back from the
+ spline representation mirrorsymmetricconvolve these coefficients with a
+ length 3 FIR window [1.0, 4.0, 1.0]/ 6.0 .
 Find the cubic spline coefficients for a 1D signal assuming
 mirrorsymmetric boundary conditions. To obtain the signal back from
 the spline representation mirrorsymmetricconvolve these coefficients
 with a length 3 FIR window [1.0, 4.0, 1.0]/ 6.0 .
+ Parameters
+ 
+ signal : ndarray
+ A rank1 array representing samples of a signal.
+ lamb : float, optional
+ Smoothing coefficient, default is 0.0.
 Inputs:
+ Returns
+ 
+ c : ndarray
+ Cubic spline coefficients.
 signal  a rank1 array representing samples of a signal.
 lamb  smoothing coefficient (default = 0.0)

 Output:

 c  cubic spline coefficients.
"""
if lamb != 0.0:
return _cubic_smooth_coeff(signal,lamb)
@@ 270,24 +281,25 @@
return _cubic_coeff(signal)
def qspline1d(signal,lamb=0.0):
+def qspline1d(signal, lamb=0.0):
"""Compute quadratic spline coefficients for rank1 array.
 Description:
+ Find the quadratic spline coefficients for a 1D signal assuming
+ mirrorsymmetric boundary conditions. To obtain the signal back from the
+ spline representation mirrorsymmetricconvolve these coefficients with a
+ length 3 FIR window [1.0, 6.0, 1.0]/ 8.0 .
 Find the quadratic spline coefficients for a 1D signal assuming
 mirrorsymmetric boundary conditions. To obtain the signal back from
 the spline representation mirrorsymmetricconvolve these coefficients
 with a length 3 FIR window [1.0, 6.0, 1.0]/ 8.0 .
+ Parameters
+ 
+ signal : ndarray
+ A rank1 array representing samples of a signal.
+ lamb : float, optional
+ Smoothing coefficient (must be zero for now).
 Inputs:

 signal  a rank1 array representing samples of a signal.
 lamb  smoothing coefficient (must be zero for now.)

 Output:

 c  cubic spline coefficients.
+ Returns
+ 
+ c : ndarray
+ Cubic spline coefficients.
"""
if lamb != 0.0:
raise ValueError, "Smoothing quadratic splines not supported yet."
@@ 297,16 +309,15 @@
def cspline1d_eval(cj, newx, dx=1.0, x0=0):
"""Evaluate a spline at the new set of points.
 dx is the old samplespacing while x0 was the old origin.
 In otherwords the oldsample points (knotpoints) for which the cj
 represent spline coefficients were at equallyspaced points of
+ `dx` is the old samplespacing while `x0` was the old origin. In
+ otherwords the oldsample points (knotpoints) for which the `cj`
+ represent spline coefficients were at equallyspaced points of:
 oldx = x0 + j*dx j=0...N1
+ oldx = x0 + j*dx j=0...N1, with N=len(cj)
 N=len(cj)
+ Edges are handled using mirrorsymmetric boundary conditions.
 edges are handled using mirrorsymmetric boundary conditions.
"""
newx = (asarray(newx)x0)/float(dx)
res = zeros_like(newx)
@@ 333,16 +344,15 @@
def qspline1d_eval(cj, newx, dx=1.0, x0=0):
"""Evaluate a quadratic spline at the new set of points.
 dx is the old samplespacing while x0 was the old origin.
 In otherwords the oldsample points (knotpoints) for which the cj
 represent spline coefficients were at equallyspaced points of
+ `dx` is the old samplespacing while `x0` was the old origin. In
+ otherwords the oldsample points (knotpoints) for which the `cj`
+ represent spline coefficients were at equallyspaced points of:
 oldx = x0 + j*dx j=0...N1
+ oldx = x0 + j*dx j=0...N1, with N=len(cj)
 N=len(cj)
+ Edges are handled using mirrorsymmetric boundary conditions.
 edges are handled using mirrorsymmetric boundary conditions.
"""
newx = (asarray(newx)x0)/dx
res = zeros_like(newx)
Modified: trunk/scipy/signal/fir_filter_design.py
===================================================================
 trunk/scipy/signal/fir_filter_design.py 20100923 09:17:31 UTC (rev 6818)
+++ trunk/scipy/signal/fir_filter_design.py 20100923 09:17:48 UTC (rev 6819)
@@ 10,22 +10,34 @@
Parameters

 ripple  positive number specifying maximum ripple in passband (dB)
 and minimum ripple in stopband
 width  width of transition region (normalized so that 1 corresponds
 to pi radians / sample)
+ ripple : float
+ Positive number specifying maximum ripple in passband (dB) and minimum
+ ripple in stopband.
+ width : float
+ Width of transition region (normalized so that 1 corresponds to pi
+ radians / sample).
Returns

 N, beta  the order and beta parameter for the kaiser window.
+ N : int
+ The order parameter for the kaiser window.
+ beta :
+ The beta parameter for the kaiser window.
 signal.kaiser(N,beta,sym=0) returns the window as does
 signal.get_window(beta,N)
 signal.get_window(('kaiser',beta),N)
+ Notes
+ 
+ There are several ways to obtain the Kaiser window:
 Uses the empirical equations discovered by Kaiser.
+ signal.kaiser(N, beta, sym=0)
+ signal.get_window(beta,N)
+ signal.get_window(('kaiser',beta),N)
 Oppenheim, Schafer, "DiscreteTime Signal Processing,", p.475476.
+ The empirical equations discovered by Kaiser are used.
+
+ References
+ 
+ Oppenheim, Schafer, "DiscreteTime Signal Processing", p.475476.
+
"""
A = abs(ripple) # in case somebody is confused as to what's meant
if (A>50):
@@ 43,19 +55,23 @@
Parameters

 N  order of filter (number of taps)
 cutoff  cutoff frequency of filter (normalized so that 1 corresponds to
 Nyquist or pi radians / sample)
+ N : int
+ Order of filter (number of taps).
+ cutoff : float
+ Cutoff frequency of filter (normalized so that 1 corresponds to Nyquist
+ or pi radians / sample)
+ width : float
+ If `width` is not None, then assume it is the approximate width of the
+ transition region (normalized so that 1 corresonds to pi) for use in
+ kaiser FIR filter design.
+ window : str. optional
+ Desired window to use. See `get_window` for a list of windows and
+ required parameters. Default is 'hamming'.
 width  if width is not None, then assume it is the approximate width of
 the transition region (normalized so that 1 corresonds to pi)
 for use in kaiser FIR filter design.
 window  desired window to use. See get_window for a list
 of windows and required parameters.

Returns

 h  coefficients of length N fir filter.
+ h : ndarray
+ Coefficients of length N FIR filter.
"""
More information about the Scipysvn
mailing list