I have a small bit of DSP to do related to work which has given me the oportunity to refresh prior DSP learning and expand it. I want to do this at home as much of it will be to do with my own interest in DSP.
To experiment with various transfer functions and filter designs I have started to use Scilab as it is freely available. Sadly I don't find it too easy to use and the help is, to my mind, too concise. I was also surprised to find that it does not yet support object oriented coding. I think to use Scilab effectively I have a bit of a learning curve to ascend.
I am, however, very familiar with Python though not numpy and/or any other DSP/maths related libraries.
#Matlab might be a possibility at work but not home (lack of funds) where I want to do this study.
Just wondered if any DSPers out that have any thoughts on my best way forward. #Scilab and spend the time learning it or #Python and learn its DSP library(s). Or is there a 3rd option I don't know about.
Looking forward to some feedback, positive and negative experiences etc
General options along these lines for free variants of MATLAB (see my article https://www.embeddedrelated.com/showarticle/197.ph... )
- GNU Octave for optimal compatibility with basic features of MATLAB
- SciLab for "MATLAB-like" behavior
- Python + numpy + scipy + matplotlib + IPython notebook for Python with numerical libraries
I always prefer Python just because I've had the most frustration-free experience with it compared to the other two options. Just realize it doesn't have as fully-featured of a transfer function / state space library as MATLAB. (I don't know how Octave or SciLab compare.) See the scipy.signal library https://docs.scipy.org/doc/scipy/reference/signal....
If you want to see an example of some more deeper uses of scipy.signal, I have a few in my articles; for example https://www.embeddedrelated.com/showarticle/927.ph...
Scilab's treatment of transfer functions is way superior to Matlab's. For over a decade it was the product of a grad school of control systems engineering, and that shows in what's available as native features in the language.
Agree with your assessment of Python. I've found the 2.x libraries are more complete than 3.x. And it's hard to argue with the PyCharm desktop interface for ease of use.
MatLab has a home edition now. Current price is U$ 95.
Look into using Gnu Octave. It is generally compatible with Matlab (older stuff, anyway), is free, and has a decent GUI IDE.
Yuck, no thanks. (see my other comment)