pydsm.NTFdesign.delsig.ntf_clans¶
-
pydsm.NTFdesign.delsig.
ntf_clans
(order=4, osr=64, nq=5, rmax=0.95, opt=0, **options)¶ Synthesize the NTF for a ΔΣM w/ multibit quantizer by the CLANS method.
This function is based on the CLANS method (Closed-Loop Analysis of Noise Shaping Coders) by J. G. Kenney and L. R. Carley, described in ‘Design of Multibit Noise Shaping Data Converters’ Analog Integrated Circuits and Signal Processing Vol. 3 pp 259-272 (1993).
The method is only suitable for low pass modulators.
- Parameters
- orderint, optional
the order of the modulator, defaults to 4
- osrfloat, optional
the oversamping ratio (based on the actual signal bandwidth). Defaults to 64
- nqint, optional
the number of quantization levels, defaults to 5
- rmaxreal, optional
the maximum radius of the NTF poles
- optint, optional
opt parameter passed to
synthesizeNTF
which is used to compute the NTF zero location and the initial pole location for the optimizer
- Returns
- ntftuple
noise transfer function in zpk form.
- Other Parameters
- show_progressbool, optional
provide extended output, default is False and can be updated by changing the function
default_options
attribute.- slsqp_optsdictionary, optional
Parameters passed to the
fmin_slsqp
optimizer. Allowed options are:maxiters
Maximum number of iterations (defaults to 100)
ftol
Precision goal for the value of f in the stopping criterion (defaults to 1e-6)
eps
Step size used for numerical approximation of the jacobian (defaults to 1.4901161193847656e-08)
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.
- Raises
- ValueError
‘Error. f0 must be less than 0.5’ if f0 is out of range
‘Order must be even for a bandpass modulator.’ if the order is incompatible with the modulator type.
‘The opt vector must be of length xxx’ if opt is used to explicitly pass the NTF zeros and these are in the wrong number.
Notes
This is actually an adaptation of the CLANS method. In the original paper about CLANS, NTF zeros are placed at z=1 (with the indication that other placements are possible). Here, the zeros are placed where
synthesizeNTF
places them.The computation is based on a nonlinear, nonlinearly constrained optimization. Since the optimizer used here is different from the optimizer used in other toolboxes implementing this function, the results may differ. The current optimizer is
SLSQP
.The function internally calls
synthesizeNTF
, and rises the same exceptions assynthesizeNTF
.