3
$\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$
5
  • $\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
    Commented May 29, 2016 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$ Commented May 29, 2016 at 21:36
  • 1
    $\begingroup$ Ie. what is your application, what kind of filters are you looking for? $\endgroup$ Commented May 29, 2016 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$ Commented May 29, 2016 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
    Commented May 29, 2016 at 21:45

2 Answers 2

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$
0
$\begingroup$

There are also some interesting on-line tools that can be used to design the filter and obtain the filter coefficients. These can be copy-pasted to the code and then be used to implement the desired transfer function.

Check:

Both have lots of options to explore.

$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

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