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.