2
$\begingroup$
  • What tools to use for practicing elementary filter design?
  • Is MATLAB all there is?
  • Do I need some specific toolboxes?
  • What functions do I need?

I'm starting from the ground up in digital filter design and I thought that I need to decide on a program that lets me experiment with different filter designs (not pre-built functions, but rather self-written). Make plots and perhaps .wav outputs and such.

I'm looking for something higher level than C++, because I think the "design language" should allow for more rapid prototyping than the "implementation language".

The tools should facilitate the evaluation of filter designs.

$\endgroup$
  • $\begingroup$ basic matlab + signal processing toolbox and dsp knowledge is enough to design and implement most practical filters, but you will seriously take advantage of a filter design toolbox... $\endgroup$ – Fat32 May 29 '16 at 21:02
  • $\begingroup$ Also, filter design is extremely application-specific. I'd go as far as to say it's easy to build a filter that does a single job, but it's often hard to know which class of filters you need to use. $\endgroup$ – Marcus Müller May 29 '16 at 21:36
  • 1
    $\begingroup$ Ie. what is your application, what kind of filters are you looking for? $\endgroup$ – Marcus Müller May 29 '16 at 21:37
  • 2
    $\begingroup$ And usually, you don't need Matlab. That is just really handy for those used to it, and has immensely comprehensive toolboxes. If you just need to design a few low, high or bandpass linear or minimal phase filters, I'd go for scipy or octave. $\endgroup$ – Marcus Müller May 29 '16 at 21:39
  • $\begingroup$ Also if you are a competent programmer in C or C++ and say in Windows or Linux API programming. Then you need nothing else to design and implement digital filters, other than a cookbook and numerical libraries together with a free compiler. $\endgroup$ – Fat32 May 29 '16 at 21:45
2
$\begingroup$

There are lots and lots of software that can aid you in designing digital filters. MATLAB is probably the most used software, at least in the university sector. The DSP toolbox and the signal processing toolbox probably cover all of the well-known methods for digital filter design, as already mentioned.

Alternatives to MATLAB (that are free) include: Julia, Octave, Scilab, and SciPy (Python with libraries for technical computing). There are a lot of others, but these are the ones that I know have high quality libraries/methods for filter design.

For Julia, you can use the Filters.jl package, for Octave the signal package, for Scilab the Signal Processing toolbox, and for SciPy you have scipy.signal.

A lot of filter design is done using optimization, and if you want to customize the cost-function or make other tweaks to e.g. the least-squares method or the Parks-McClellan method, you could have a look at a high-level optimization library such as CVX (works with MATLAB and Julia ++), or JuMP for Julia.

These are just the tools that I have a fair bit of familiarity with...

$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.