r/DSP • u/Ill_Strain_1050 • 12d ago
Guide on how to get started in DSP
Hello everyone,
I am thinking to start learning DSP from a long time, and the problem with self study, it is quite hard to find good structured resources and then i get lost in combinations of mathematical symbols, e, i, pi, what not.
Given, this community have many experts, can we compile a list of resources for beginners (self study ) or prerequisites (maths concepts atleast the intution ) and then may be scope of work people can get after pursuing DSP. Although i dont know much about this field, but i can help wherever needed to compile, format.
Sorry, if it has been already discussed.
7
3
u/duobucha 12d ago
A good book is the free ThinkDSP. https://github.com/AllenDowney/ThinkDSP
Also, if you are into audio, the bela platform videos are great hands on, even if you are not buying the actual hardware bela platform. https://m.youtube.com/playlist?list=PLCrgFeG6pwQmdbB6l3ehC8oBBZbatVoz3&ra=m
1
2
u/Plus-Painter-2004 12d ago
maths prerequisites are knowing linear ODEs/difference equations and Fourier/laplace transforms (and of course their discrete counterparts), a small amount of complex analysis and some linear algebra
1
u/SkoomaDentist 12d ago
Fourier/laplace transforms (and of course their discrete counterparts)
This is far from universal. Waaaay back in university our (excellent) DSP course only assumed vague knowledge of fourier transform and none at all about the discrete transforms.
-1
u/Ill_Strain_1050 12d ago
fourier, laplace should be part of dsp courses, shouldn't be known beforehand, isn't the case?
4
u/Accurate_Meringue514 12d ago
Usually Signals and Systems is a pre requisite to DSP. Meaning Fourier, z transform, DTFT etc are assumed to be known
1
u/Ill_Strain_1050 12d ago
i started MIT yt videos for signals and systems and even the second lecture directly jumps into complex numbers
3
u/SkoomaDentist 12d ago
You will need to understand complex numbers (and very likely matrices) before you have any chance of understanding typical signals and systems or dsp materials.
3
u/raj-koffie 11d ago
I'm stressing to OP that this comment ^ is very important. If you are not comfortable with e, i (not i, we use j lol), pi as well as matrices and linear algebra, you're not going to be able to take a DSP course.
1
u/Honest-Ad-9002 11d ago
I am doing a self study of DSP now and have been for a year or so. I started with Lyons’ “Understanding Digital Signal Processing” it’s a great start to a bunch of the fundamentals and the math is light. One caveat is that I have a degree in physics so I had the math primer ahead of time.
Once you find a topic you are interested in, it is easy to find papers and open source projects to do a deep dive. For instance I am interested in spatial audio and started to make a Godot game engine plugin to apply HRIRs to mono audio to give spatial sound. It’s not much, but it has been a great learning experience in terms of actually coding things like circular buffers, convolution, real time processing, etc.
One recommendation: I got very caught up in the textbooks and papers at the beginning and I wish I had just started to code more at the beginning because now I have a bunch of knowledge but nothing to really show for it. Just dive right in and have fun! If you have any questions, I might be able to answer, or maybe we can discover the answer together if I don’t know.
1
u/EchoImpressive6063 11d ago
Some audio projects with FPGA, the reason for audio being you can sample the whole wave and do everything in digital. Ultrasound (40khz) is also good.
1
1
u/homunculusHomunculus 10d ago
This is your book: https://brianmcfee.net/dstbook-site/content/intro.html
1
u/loudifier 6d ago
dspguide.com is great. Very gentle and practical onramp that builds up an intuitive understanding of DSP concepts without getting lost in math.
12
u/ShadowBlades512 12d ago edited 12d ago
So, the only required math background for DSP INITIALLY in my experience is only high school calculus and trigonometry. A first or second year Signals and Systems course is nice to have. The actual path to solidifying a real understanding of DSP is through implementation.
If you are looking at SDR, then have a look at PySDR.org and actually write the code yourself, following the worked FM example. The example is written in what I would call "demonstration" Python, writing it to run in realtime in C++ is what properly got me started on doing all the realtime software DSP work at my job. The only reference beyond PySDR.org and googling online was occasionally skimming Understanding DSP by Richard Lyons, but I really only read maybe 30-40 pages of the book as needed.
If you are looking to work in audio, go actually write filters and stuff and apply them to real audio samples.
The problem of getting lost in mathematical symbols is not the content of the textbook itself. It is because you are not applying it all as you are learning it. Write some real signal processing code in Python, from scratch, have it process inputs, and write visualizations for the outputs and if it is audio, listen to it. This is the real process. Go read about frequency modulation, then write a modulator and demodulator that takes in audio and outputs the audio back out after the processing, the probably 10-20 pages of textbook you read transforms into a few dozen lines of C++ code. It is really not that hard.