3 ms·
I've been wanting to learn more about DSP, and this looks like a good free resource, but the examples in BASIC are just so hard to read, between the line number
by lambda 8y ago
I've been wanting to learn more about DSP, and this looks like a good free resource, but the examples in BASIC are just so hard to read, between the line numbers and SHOUTY CASE.
While I suppose it would be a good exercise to translate the examples into the language of my choice, are there any good resources on DSP that use a more reasonable language for the examples? And I'd prefer to avoid proprietary languages like Matlab.
- durovo 8y agoThe skills learnt should be transferrable to Octave which is Matlab compatible.
- lambda 8y agoThis book uses BASIC, which I just find quite unreadable. I don't know of what other resources are available, but I do know I've seen some that use Matlab. I've never played with Octave much, so I don't know how compatible it is; can you just directly copy Matlab code, or do you need to do translations? Anyhow, if there's a book that uses Matlab rather than BASIC, and could be used in Octave, that might be more readable. I would find C, C++, Python, or Rust more familiar, though.
- mindcrime 8y agoI've never played with Octave much, so I don't know how compatible it is; can you just directly copy Matlab code, or do you need to do translations? I'm not an expert, but I believe Octave is pretty compatible, at least with the core language. I think there are some "extra" features and libraries that don't exist in Octave, but it should be fine for many scenarios. FWIW, the earlier version of Andrew Ng's machine learning class on Coursera was Matlab / Octave based, and students using Octave were able to do everything required there with no problems. You can find some more detailed comparison here: https://en.wikibooks.org/wiki/MATLAB_Programming/Differences_between_Octave_and_MATLAB https://en.wikibooks.org/wiki/MATLAB_Programming/Differences...
- kkylin 8y agoIn my experience one can pretty much just copy and paste, and most things work (though likely not 100%). There are two ways in which Octave still falls short: (1) Matlab is faster, as it has (I believe) JIT compilation whereas Octave doesn't; and (2) all things related to plotting & graphing are still better in Matlab IMO, though that may be changing. This may not be important for learning DSP, but does matter in day to day scientific work.
- johnr2 8y agoThis one by Orfanidis is good IMO and uses C examples: https://www.ece.rutgers.edu/~orfanidi/intro2sp/ https://www.ece.rutgers.edu/~orfanidi/intro2sp/
- twtw 8y agoOr just use a programming language instead of a calculator with various features bolted on. [Speaking of cvxopt, originally written in matlab] "Fortunately, it has since been rewritten in a real programming language." - Stephen Boyd
- acidburnNSA 8y agoNot entirely DSP, but Software Defined Radio is very related. There's an excellent tutorial series on SDR over at https://greatscottgadgets.com/sdr/ https://greatscottgadgets.com/sdr/ that's a whole lot of fun. No coding, just an intro to many great concepts.
- lambda 8y agoYeah, SDR is one of the reasons I wanted to learn more about DSP. SDR, digital audio processing, digital image processing (especially compression and filtering), all of them have roots in DSP. That looks like an interesting resource, but I really prefer written word and text-based programming languages to video lessons and flow-graph based configuration.
- keithnz 8y agojust a quick google, and there is some people who have done stuff with it in other languages... https://github.com/davecan/dspguide-code https://github.com/davecan/dspguide-code
- buzzier 8y agoEveryday DSP for Programmers(JavaScript) http://sam-koblenski.blogspot.com/2015/08/everyday-dsp-for-programmers-basic.html http://sam-koblenski.blogspot.com/2015/08/everyday-dsp-for-p...
- rakejake 8y agoThe advantage with MATLAB/Octave is that a lot of signal processing code has already been written in it. As you write more complex DSP code, you'll get stuck somewhere and chances are someone has already coded up that application on MATLAB central or on their blog. I took a Speech Processing class and opted to write code in Python. I probably spent 1.5x the time the others spent. Most DSP texts today have MATLAB code. It might be a good exercise to implement the functions from scratch but I think it is better to focus on the theory and not waste time coding up something like Overlap-add.