The Scientist and Engineer's Guide to Digital Signal Processing (1999)
analog.com
analog.com
I read this as a having a decent quality DAC inline between the source and listening device will do more than expensive speaker wire?
What do you mean? Are you claiming to be able to hear 50 ppm clock inaccuracy?
For example, the uC I am working on right now has built-in DACs which are good enough for audio and a 5% accurate internal clock (uncalibrated). If a vendor cheaped out and didn't use a proper external oscillator and/or didn't calibrate the clock (which is presumably the code the parent wrote) then the frequency would be basically one half step off on an equal tempered scale which is definitely audible for most people.
http://www.tentlabs.com/Components/cdupgrade/xo2xo3/index.ht...
Nonetheless I will elaborate, 100ps jitter you are being warned about in the description of this must have clock module will be detectable to any human with hearing reaching 10 GHz range.
I recommend https://xiph.org/video/
A book that did a lot to bring my understanding around was Complex Variables and the Laplace Transform for Engineers by LePage. It's more-or-less a pretty thorough introduction to complex analysis, but developed in the context of linear systems and transfer functions. I would absolutely recommend it as a sequel to this book.
The first time I did root locus diagrams in Linear Systems (or whatever the course was called), we did everything by hand and I hated it.
10 years after graduation I was in a certificate class for Mechatronics and we had Matlab. The difference was night and day. Suddenly I could play with root locations and see the effect immediately without having to do half an hour of tedious hand calculation. It's amazing how much your attitude improves when the work becomes "fun."
For some reason, we got the formal introduction to transforms (Fourier, Laplace, Z, etc.) the semester after in our calculus and diff. eq classes, but method was simple and intuitive enough that anyone with Calc 1 could jump into it - at least for the application of electronics.
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.
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.
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...
[Speaking of cvxopt, originally written in matlab] "Fortunately, it has since been rewritten in a real programming language." - Stephen Boyd
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.
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.
I read it as "This book is great, really helped me understand the concepts. In fact, it helped so much I failed the class."
So that sounds pretty encouraging.
BASIC is fine. I won't language quibble on a nice free resource.
;-)
I work at ADI now, which is kind of weird to see the OP's link.
Gulp. I'm new to DSP, so I'm obviously not going to jump into "quadrature processing," but what would you say are the basic mathematical prerequisites for getting into this kind of thing? What sort of math should you know before you even start?
which covers the basics in python.
https://mitpress.mit.edu/books/audio-programming-book
Most of the code is C (and some C++). The first two chapters are a C tutorial, followed by audio-specific C programming. If you already know C you may want to skip the first couple of chapters.
If you're going to buy it I'd recommend a hard copy, as the DVD includes a lot of stuff that isn't in the Kindle version.
Example of wrong claims: "The heart of digital noise generation is the random number generator." Not true, many digital noise generators use LFSR.
"Just as analog filters are designed using the Laplace transform, recursive digital filters are developed with a parallel technique called the z-transform." Hello no, there are gazillion ways to design filters - analog or digital - without those transforms.
"The frequency domain becomes attractive whenever the complexity of the Fourier Transform is less than the complexity of the convolution. This isn't a matter of which you like better; it is a matter of which you hate less."
Clearly I hate both domains less than this book. It might serve as an introduction to DSP, but please remain suspicious, if some claim herein seems oversimplified, it probably is.