Choice between Scilab and Python + numpy

Started by johnpote 7 years ago7 replieslatest reply 7 years ago5152 views

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


[ - ]
Reply by jms_nhSeptember 12, 2017

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...

[ - ]
Reply by Tim WescottSeptember 12, 2017

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.

[ - ]
Reply by WB6GTBSeptember 12, 2017

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. 

[ - ]
Reply by jmarceloldSeptember 12, 2017

MatLab has a home edition now. Current price is U$ 95.


[ - ]
Reply by SlartibartfastSeptember 12, 2017

Look into using Gnu Octave.   It is generally compatible with Matlab (older stuff, anyway), is free, and has a decent GUI IDE.

[ - ]
Reply by jms_nhSeptember 12, 2017

Yuck, no thanks. (see my other comment)

[ - ]
Reply by stephanebSeptember 12, 2017

Hi John,

If you decide to go the Python route, this thread could be useful to you.