• Home
  • History
  • Annotate
Name Date Size #Lines LOC

..03-May-2022-

pyfda/H03-May-2022-18,24212,814

pyfda.egg-info/H03-May-2022-12087

LICENSEH A D18-Apr-20162.5 KiB8064

PKG-INFOH A D16-May-20175.6 KiB12087

README.rstH A D03-Jan-20174 KiB9765

setup.cfgH A D16-May-201759 64

setup.pyH A D03-May-20224 KiB10864

README.rst

1pyFDA
2*****
3
4Python Filter Design Analysis Tool
5==================================
6
7pyFDA is a GUI based tool in Python / Qt for analysing and designing discrete time filters. The capability for generating Verilog and VHDL code for the designed and quantized filters will be added in the next release.
8
9.. image:: https://github.com/chipmuenk/pyFDA/raw/master/images/pyFDA_screenshot_3.PNG
10    :width: 300px
11
12Prerequisites
13-------------
14
15Besides standard python libraries, the project requires the following libraries:
16
17* numpy
18* scipy
19* matplotlib
20* pyQt4 or pyQt5
21
22* Optional libraries:
23    * docutils for rendering info text as rich text
24    * xlwt and / or XlsxWriter for exporting filter coefficients as \*.xls(x) files
25
26
27
28Installing and starting pyFDA
29-----------------------------
30
31    ``>> pip install pyfda``
32
33or download the zip file and extract it to a directory of your choice. Install it either to your ``<python>/Lib/site-packages`` subdirectory using
34
35    ``>> python setup.py install``
36
37or run it where you have installed the python source files using (for testing / development)
38
39    ``>> python setup.py develop``
40
41In both cases, start scripts ``pyfdax`` and `pyfdax_no_term` are created (with / without terminal).
42
43For development, you can also run pyFDA using::
44
45    In [1]: %run -m pyfda.pyfdax # IPython or
46    >> python -m pyfda.pyfdax    # plain python interpreter
47
48
49or run individual files from pyFDA using e.g.::
50
51    In [2]: %run -m pyfda.input_widgets.input_pz  # IPython or
52    >> python -m pyfda.input_widgets.input_pz     # plain python interpreter
53
54Customization
55-------------
56
57The layout and some default paths can be customized using the file ``pyfda/pyfda_rc.py``.
58
59Features
60--------
61
62* **Filter design**
63    * **Design methods** from scipy.signal: Equiripple, Firwin, Butterworth, Elliptic, Chebychev 1 and Chebychev 2
64    * **Remember all specifications** when changing filter design methods
65    * **Fine-tune** manually the filter order and corner frequencies calculated by minimum order algorithms
66    * **Compare filter designs** for a given set of specifications and different design methods
67    * **Filter coefficients and poles / zeroes** can be displayed, edited and quantized
68
69* **Clearly structured GUI**
70    * only widgets needed for the currently selected design method are visible
71    * enhanced matplotlib NavigationToolbar (nicer icons, additional functions)
72
73* **Common interface for all filter design methods:**
74    * specify frequencies as absolute values or normalized to sampling or Nyquist frequency
75    * specify ripple and attenuations in dB, as voltage or as power ratios
76    * enter expressions like exp(-pi/4 * 1j) with the help of the library ``simpleeval`` (https://pypi.python.org/pypi/simpleeval) (included in source files)
77
78* **Graphical Analyses**
79    * Magnitude response (lin / power / log) with optional display of specification bands, phase and an inset plot
80    * Phase response (wrapped / unwrapped)
81    * Group delay
82    * Pole / Zero plot
83    * Impulse response and step response (lin / log)
84    * 3D-Plots (\|H(f)\|, mesh, surface, contour) with optional pole / zero display
85
86* **Modular architecture**, facilitating the implementation of new filter design and analysis methods
87    * Filter design files not only contain the actual algorithm but also dictionaries specifying which parameters and standard widgets have to be displayed in the GUI.
88    * Special widgets needed by design methods (e.g. for choosing the window type in Firwin) are included in the filter design file, not in the main program
89    * Filter design files can be added and edited *without* changing or even restarting the program
90
91* **Saving and loading**
92    * Save and load filter designs in pickled and in numpy's NPZ-format
93    * Export coefficients and poles/zeros as comma-separated values (CSV), in numpy's NPZ-format, in Excel (R) or in Matlab (R) workspace format
94
95* **Display help files** (own / Python docstrings) as rich text
96* **Runs under Python 2.7 and Python 3.3 ... 3.5**
97