Package: pydsm
This is a Python/Scipy toolbox for the design and simulation of
ΔΣ Modulators, with emphasis on digital modulators.Currently, it focuses on tools for the design of the modulator NTF. It
also includes a fast simulator for digital modulators. Furthermore, it
includes a Python/Scipy port of some functions from theDELSIG
toolboxby R. Schreier.The code includes an original NTF design technique fully described in the
papers:Sergio Callegari, Federico Bizzarri“Output Filter Aware
Optimization of the Noise Shaping Properties of ΔΣ Modulators via
Semi-Definite Programming”, IEEE Transactions on Circuits and
systems - Part I: Regular Papers, Vol. 60, N. 9,
pp. 2352-2365. Sept. 2013. DOI:10.1109/TCSI.2013.2239091. Pre-print available
onArXiv.Sergio Callegari, Federico Bizzarri“Noise Weighting in the Design
of ΔΣ Modulators (with a Psychoacoustic Coder as an Example),”IEEE
Transactions on Circuits and Systems - Part II: Express Briefs,
Vol. 60, N. 11, pp. 756-760. Nov. 2013. DOI:10.1109/TCSII.2013.2281892. Pre-print available
onArXiv.If you find the code useful,please cite these papers in your work.The code is available on the Python Package Index, also known asPypi, in at thePypi PYDSM page.The pre-built documentation is also available in a dedicatedPyDSM
documentationpage on Pypi.WarningVersion 0.14.0.0 of PyDSM is likely going to be the last version supporting
Python 2PyDSM is free software; you can redistribute it and/or modify it under
the terms of the GNU General Public License as published by the Free
Software Foundation; either version 3 of the License, or (at your
option) any later version.See fileCOPYINGfor further details.Part of this code, limited to thedelsigmodule, is ported from theDELSIG toolboxcopyright by R. Schreier and licensed under the BSD license, as
specified in the corresponding files.Distribution temporarily includes a patched version of theCVXPYpackage by Tomas Tinoco de Rubira, that is currently discontinued,
being replaced by theCVXPYpackage by Steven Diamond and Eric Chu
and Stephen Boyd that provices more functionality and a different API.
This code is copyright by Tomas Tinoco de Rubira and licensed under the GPLv3+,
as specified in the corresponding files.PyDSM is distributed in the hope that it will be useful, but WITHOUT
ANY WARRANTY, without even the implied warranty of MERCHANTABILITY or
FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
for more details.Changelog0.14.0.0Fix compatibility with cvxpy 1.0.xFix compatibilit with PICOS 1.2.0Fix compatibility with matplotlib 3Fix compatibility with sphinx 2.2.0 (html docs only)Minor bugfixes0.13.0.1Fix compatibility with most recent cvxpyMinor bugfixes0.13.0.0Python 3 compatibility!Bugfixes0.12.0.1Fix crashes due to incorrect management of parameters in deprecated
functions0.12.0.0Switch to new version numbering scheme also in view of
PEP 440Install as zipped packageModify management of optional parameters in some functions.
Note that this implies a minor API breakage.Implement new hybrid NTF design methodSlightly improve accuracy of weighted NTF design functionsImprove quantization_noise_gain functionImprove html documentationLet multiple modelers be selected in functions using convex
optimization (cvxpy, cvxpy_old and picos are supported)Implement some more functions in delsig module (axisLabels, rms)Many small fixes0.11.0Switch to setuptools for buildingImprove testing frameworkBetter management of optional parameters in some functionsAPI cleanups
(a best effort has been put in retaining back-compatibility. Some
back compatibility functions are deprecated and will be removed)Code style improvements0.10.1Fix setup script for compatibility with MacOsProvide getting started guide for MacOsMinor fixes in documentation0.10.0Ready setup script for distributionImplementpartitionABCDin delsig moduleMake delsig module PEP8 compliantSome minor improvements to utility functions0.9.1Apply some fixes to the modulator simulatorMake building for 64 bit windows possibleImplementclansNTF design methodImplementminmaxNTF design method
(only single band LP, so far)0.9.0Include a local version of the discontinued cvxpy package
by Tomas Tinoco de Ribera. This is a temporary measure0.8.3Fix a typo in the fast DSM simulator
(only affecting case where modulator structure is passed in ABCD form)Add example from ICECS 2013 paperEnhancequantization_weighted_noise_gainfunction0.8.2Fix some licensing issues0.8.1Prevent synthesizeNTF failure if there are no zeros to optimizeImprove some docstringsRemove some spurious importsFix normalization in quantization_noise_gain functions0.8.0Add NTF design method based on a noise weighting functionProvide a new module with standard audio weighting functionsProvide a new module with ISO 226 equal loudness contoursProvide a new module with NTF design methods for psychoacoustically
optimal modulators for audio signalsFix a regression inds_optzerosintroduced with version 0.7.3
and preventing some example code from runningAdd new examples from a recently published TCAS-II paperUse'ba'specifier for requiring filters in numerator/denominator formMakeevalTFfunction more robust against complex overflowBug fixes0.7.3Apply fixes introduced in DELSIG 7.4Make port of DELSIG functions more consistent with DELSIGProvide better documentation to some functionsBug fixes0.7.2Make codebase compatible with scipy 0.12.0Make delsig module contain its reference delsig versionMinor fixes to the documentation0.7.1Fix computation of impulse response of filters that are already in
FIR form.Avoid direct access to numpy array data in Cython code. This is in
preparation for future releases of numpy where direct access to
array data is already deprecated.Implement the synthesizeChebyshevNTF NTF design strategy from DELSIG.0.7.0Dropped dependency on ATLAS on Windows. Now using the blas functions
made available via scipy. The linux version still uses ATLAS that has
a little performance advantage.Much simpler installation on WindowsAPI changes: renamedsynthezize_ntf_from_filter_irintosynthezize_ntf_from_filter_imp; swapped param order inq0_from_filter_imp_response.Fixed passing of options tosynthesize_ntf_from_q0andsynthesize_ntf_from_filter_imp0.6.1Add project logo to the project sourceShip html documentation separately from main codeAdd sample code to replicate the results in an ICECS 2012 paper0.6.0First released version