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.