Choice between Scilab and Python + numpy
![](https://www.embeddedrelated.com/new/images/defaultavatar.jpg)
Hi everyone,
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
John
![](https://d23s79tivgl8me.cloudfront.net/user/profilepictures/88624.jpg)
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...
![](https://d23s79tivgl8me.cloudfront.net/user/profilepictures/28547.jpg)
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.
![](https://www.embeddedrelated.com/new/images/defaultavatar.jpg)
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.
![](https://d23s79tivgl8me.cloudfront.net/user/profilepictures/116754.jpg)
MatLab has a home edition now. Current price is U$ 95.
![](https://d23s79tivgl8me.cloudfront.net/user/profilepictures/28938.jpg)
Look into using Gnu Octave. It is generally compatible with Matlab (older stuff, anyway), is free, and has a decent GUI IDE.
![](https://d23s79tivgl8me.cloudfront.net/user/profilepictures/88624.jpg)
Yuck, no thanks. (see my other comment)
![](https://d23s79tivgl8me.cloudfront.net/user/profilepictures/1.jpg)