pydsm.NTFdesign.helpers.spread_fir_uc_zeros

pydsm.NTFdesign.helpers.spread_fir_uc_zeros(order, OSR, cf, cf_args=[], cf_kwargs={}, **options)

Compute the best spreading of zerors on the unit circle.

The computed FIR transfer function is optimal according to a criterion expressed by the cost function cf.

The computed FIR transfer function is used in the DELSIG pydsm.delsig.synthesizeDSM() design method (also known as pydsm.NTFdesign.ntf_schreier()) for the numerator of the noise transfer function.

Parameters:

order : int

the transfer function order

OSR : float

the oversampling ratio

cf : function

cost function for the optimization. Takes a transfer function in zpk form as the first argument plus more arguments as required

cf_args: list

positional args of function cf

cf_kwargs: dict

keyword args of function cf

Returns:

zeros : ndarray

an array of complex roots of the FIR transfer function

Other Parameters:
 

L-BFGS-B_opts : dictionary, optional

Parameters passed to the F-BFGS-B optimizer. Allowed options are:

ftol

stop condition for the minimization

gtol

gradient stop condition for the minimization

maxcor

max number of variables used in hessian approximation

maxiter

max number of iterations

maxfun

max number of function evaluations

eps

Step size used for numerical approximation of the jacobian

Do not use other options since they could break the minimizer in unexpected ways. Defaults can be set by changing the function default_options attribute.

See also

scipy.optimize.minimize
for the parameters passed to the L-BFGS-B minimizer

Notes

The system is implicitly assumed to be low-pass. Hence, the zeros are spread on the unit circle in the [0, pi/OSR] range.