1

Is MATLAB a worthwhile investment when developing semi-standard circuit designs? such as fitlering, DSP, power supplies, usual things we all encounter. From what I have read and used, it provides great filter design, easy interface for mathematical calculations and some block level design using Simulink and some ultra-specialist stuff.

  • 2
    You could look at Octave or Scilab as open source alternatives to get a feel for it. –  Jan 28 '18 at 19:36
  • 1
    Stack Exchange is hardly the place to advertise for why one commercial package is better than another, or the free alternatives. – pipe Jan 28 '18 at 19:39
  • It's just a big and powerful calculator, and as many incredible things a hand held calculator can do, you can do much more with MATLAB. – user3528438 Jan 28 '18 at 21:59
  • 1
    @user3528438 it’s way more than just a calculator. You can write/compile complex GUI programs, generate VHDL, instrumentation... it all depends on the toolboxes you require. – Blair Fonville Jan 28 '18 at 22:48
  • Many a product includes software components and a MATLAB library (small license fee, not the full MATLAB suite). So, if there's a computer in your next electronic masterpiece, it might benefit from MATLAB elements that you design. – Whit3rd Jan 28 '18 at 23:02
  • How on earth is this opinion based? The question clearly states 'why is MATLAB worth investing in' - there are definite answers. I will re-write the question to be more simple. –  Jan 29 '18 at 01:17
  • This is off topic for many reasons. That being said, LT spice is much more useful for circuit design and will do much more than getting 9000$ of software (matlab,simulink, simscape and packages). You can also make LT spice do 90% of what simulink will do (I've simulated ADC's and filters). MATLAB is good for testing concepts, and pro-typing code and testing digital signal processing ideas. – Voltage Spike Jan 29 '18 at 02:54

5 Answers5

3

I am slightly bias'ed on my views of Matlab as I have been using it for decades. I am also part of their advisory board.

The immediate benefits of Matlab is job opportunities. Being able to put onto your CV that you have x number of years leveraging Simulink(tm) in a multidomain model to optimise the time to market of a new program speaks volume.

Matlab at its core is a programming language written by mathematicians for mathematicians. There are aspects of matlab-script that appear really poor design semantecs but make sense from a mathematical perspective.

Personally python+numpy+scipy+matplotlib > Matlab. If you add Simulink... I can describe a 30kVA BLAC motor-drive (3phase in, inverter, control, motor, loading response) in python and provide results comparable to the real system and a simulink model. That doesn't mean others would easily be able to take my code to determine system responses.

Now Simulink... Simulink is a very very powerful suite of tools to simulate systems. If you are a circuit designer you may question the usefulness of it over say... SIMextrix but thats because SIMextrix is a spice simulator and Simulink is a systems simulator. Simulink can simulate electrical circuits, hydraulic, mechanical, fluid etc but it does not do this as well as dedicated applications. However those dedicated applications do not describe other physical domains. So the moment you need a cross-domain simulation what are you going to do? you need a suite that can cater for this to then provide domain-specific information to the more detailed design suites.

Second to this is the concept of "model base design" where a simulink model captures the intent of a system model for requirement management to finally facilitate autocode generation. When subsystems/blocks are linked to requirements (say in DOORS or ... excel if you must) a design team can gain coverage and provide an audit-able trail if the business environment you operate in has some sort of agency oversight

  • I thought MATLAB was written by chemists for chemists, and then acquired some momentum. A researcher I know who works for a very small company who can't afford to have two different teams code an algorithm says that coding in MATLAB, and coding in a proper language like C or python, are so different that it qualifies for 'two different implementations of the algorithm' to boost confidence in the implementation. – Neil_UK Jan 29 '18 at 09:12
2

Directly, nothing, aside from familiarity as it is taught at a number of engineering schools. However, there is a lot of legacy code and toolboxes that are built on Matlab (either by mathworks or by third parties) that can be very powerful.

Well, I suppose Matlab can also be used to generate code for signal processing for a variety of systems (including generating C and Verilog), which could be a good time saver in certain circumstances. I'm not sure what the maintainability of that generated code is like, though.

As an aside, the Matlab 'programming' language is absolutely horrid. It's an excellent example of a language that has evolved organically over many, many years while maintaining backwards compatibility. As a result, the semantics of the language itself have serious shortcomings. I had to put together a small GUI in Matlab several years ago, and that required a huge number of what are essentially incredibly ugly hacks to work around basic language mechanics such as variable scope and the inability to pass around anything by reference, among other things. Doing simple things like bit manipulation is like pulling teeth. I saw a python script a while ago that was doing bit manipulation essentially by converting everything to strings and doing string operations...apparently it was the first script the guy wrote in python after only ever writing code in Matlab. Another researcher I know has worked exclusively in Matlab for quite some time, and now that he has to work with normal programming languages (mostly C and C++), he basically has to unlearn most of the Matlab techniques that he's familiar with (cue Yoda, "you must unlearn what you have learned").

alex.forencich
  • 40,922
  • 1
  • 69
  • 109
1

MATLAB isn't really about designing circuits. It's a programming language and IDE (Integrated Development Environment) that's geared specifically towards doing mathematical stuff. It can be easier and more efficient to do heavy number crunching in MATLAB than in many mainstream programming languages.

If you're willing to pay extra, there are all sorts of libraries that may be useful to you.

And, as Brian Drummond has suggested, if you just want to have a play, then Octave isn't as polished as MATLAB, but is highly compatible with it.

For what it's worth, my experience with MATLAB has mainly been in digital image processing - nothing to do with circuit design.

Simon B
  • 19,226
  • 1
  • 29
  • 56
1

It isn't a good investment. There are several free alternatives that fulfill the same requirements for algorithm development and high-level modelling that are nearly 100% code-compatible, which means that your skills will transfer directly to Matlab if/when that ever becomes appropriate for you.

I happen to use GNU Octave to develop signal and image processing algorithms, and regularly exchange code with a colleague who uses Matlab, with only a very few minor compatibility issues that are easily worked around.

Dave Tweed
  • 172,781
  • 17
  • 234
  • 402
1

MATLAB is supplied to Universities and to students under very concessionary terms.

So when you hire a new graduate she will probably know MATLAB and you can avoid the cost of them learning some other package and taking it with them when they go to the next job. If you have a bunch of toolboxes and floating licenses it's pretty expensive.

I had a guy working with it to develop some signal processing algorithms which were moved to FPGA. Worked okay for that project. The Simulink software is good for testing control algorithms.

Consider the free open-source alternatives.

Spehro Pefhany
  • 397,265
  • 22
  • 337
  • 893