pydsm.NTFdesign.minmax.ntf_fir_minmax¶
- pydsm.NTFdesign.minmax.ntf_fir_minmax(order=32, osr=32, H_inf=1.5, f0=0, zf=False, **options)¶
Synthesize FIR NTF for LP or BP ΔΣ modulator by min-max optimization.
The strategy aims at minimizing the peak value of the NTF in the signal band, while respecting the Lee criterion.
Parameters: order : int, optional
Order of the delta-sigma modulator. Defaults to 32.
osr : real or array of reals, optional
The oversampling ratio, based on the input signal bandwidth Defaults to 32. If there are multiple signal bands, multiple OSRs can be provided, one for each of them.
H_inf : real, optional
Max allowed peak value of the NTF. Used to enforce the Lee criterion. Defaults to 1.5.
f0 : real, or array of reals, optional
The normalized center frequency of the modulator. Value in [0,1/2]. 1/2 indicates half the sample frequency. Defaults to 0, indicating an LP modulator. An array of values can be provided for multiband design.
zf : bool, optional
Flag controlling the pre-assignement of NTF zeros. If False, the design is practiced without any zero pre-assignment. If True, a zero is pre-assigned at the modulator center-band. Defaults to False.
Returns: ntf : tuple
noise transfer function in zpk form.
cvxpy_opts : dictionary, optional
A dictionary of options to use with the cvxpy modeling library. Allowed options include:
- override_kktsolver (bool)
Whether to override the default cvxopt kkt solver using the chol kkt solver. Leave this at the default False setting, to avoid errors.
- solver (string)
The solver backend to use. Either cvxopt or scs
cvxopt_opts : dict, optional
A dictionary of options for the cvxopt optimizer. 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 cvxopt in unexpected ways. These options can be passed when using the cvxpy_old modeler, the picos modeler or the cvxpy modeler with the cvxopt backend.
scs_opts : dict, optional
A dictionary of options for the scs optimizer. 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 scs in unexpected ways. These options can be passed when using the cvxpy modeler with the scs backend.
See also
- cvxopt
- for the optimizer parameters
- scs
- for the optimizer parameters
- cvxpy
- for the modeler parameters
Notes
The design strategy implemented in this module is described in the paper [R1].
Default values for the options not directly documented in the function call signature can be checked and updated by changing the function default_options attribute.
[R1] M. Nagahara and Y. Yamamoto, Frequency-Domain Min-Max Optimization of Noise-Shaping Delta-Sigma Modulators, IEEE Trans. SP, vol. 60 n. 6 June 2012.