pydsm.NTFdesign.weighting.ntf_hybrid_weighting¶
-
pydsm.NTFdesign.weighting.ntf_hybrid_weighting(order, w, H_inf=1.5, poles=[], normalize='auto', **options)¶ Synthesize NTF based on noise weighting function or filter plus poles.
The ΔΣ modulator NTF is designed after a noise weigthing function stating how expensive noise is at the various frequencies.
- Parameters
- orderint
Delta sigma modulator order
- wcallable with argument f in [0,1/2] or tuple
if function: noise weighting function
if filter definition as zpk or ba tuple: weighting is implicitly provided by the filter
- H_infreal, optional
Max peak NTF gain, defaults to 1.5, used to enforce the Lee criterion
- polesarray_like
List of pre-assigned NTF poles. Must be no longer than
order.- normalizestring or real, optional
Normalization to apply to the quadratic form used in the NTF selection. Defaults to ‘auto’ which means setting the top left entry in the matrix Q defining the quadratic form to 1.
- Returns
- ntfndarray
FIR NTF in zpk form
- Other Parameters
- show_progressbool, optional
provide extended output.
- fix_posbool, optional
fix quadratic form for positive definiteness. Numerical noise may make it not positive definite leading to errors.
- modelerstring, optional
modeling backend for the optimization problem. Currently, the
cvxpy_old,cvxpyandpicosbackends are supported. Default iscvxpy_old.- cvxpy_optsdictionary, optional
A dictionary of options to use with the
cvxpymodeling library. Allowed options include:override_kktsolver(bool)Whether to override the default
cvxoptkkt solver using thecholkkt solver. Leave this at the default True setting, to avoid paying a performance price.solver(string)The solver backend to use. Either cvxopt or scs
- cvxopt_optsdict, optional
A dictionary of options for the
cvxoptoptimizer. Allowed options include:maxiters(int)Maximum number of iterations
abstol(real)Absolute accuracy
reltol(real)Relative accuracy
feastol(real)Tolerance for feasibility conditions (defaults to 1e-6)
Do not use other options since they could break
cvxoptin unexpected ways. These options can be passed when using thecvxpy_oldmodeler, thepicosmodeler or thecvxpymodeler with thecvxoptbackend.- scs_optsdict, optional
A dictionary of options for the
scsoptimizer. Allowed options include:max_iters(int)Maximum number of iterations
eps(real)Convergence tolerance
alpha(real)Relaxation parameter
normalize(bool)Whether to precondition data matrices
use_indirect(bool)Whether to use indirect solver for KKT sytem (instead of direct)
Do not use other options since they could break
scsin unexpected ways. These options can be passed when using thecvxpymodeler with thescsbackend.- quad_optsdictionary, optional
Parameters to be passed to the
quadfunction used internally as an integrator. Allowed options areepsabs,epsrel,limit,points. Do not use other options since they could break the integrator in unexpected ways.
See also
scipy.integrate.quadfor the meaning of the integrator parameters
cvxoptfor the optimizer parameters
scsfor the optimizer parameters
cvxpyfor the modeler parameters
Notes
Default values for the options not directly documented in the function call signature can be checked and updated by changing the function
default_optionsattribute.The internal operation of this function is described in [1].
- 1
Sergio Callegari, Federico Bizzarri “Optimal Design of the Noise Transfer Function of ΔΣ Modulators: IIR strategies, FIR strategies, FIR strategies with Preassigned Poles,” Signal Processing, Elsevier, 2015. DOI: 10.1016/j.sigpro.2015.02.001.