Moving from books to implementations

So after a good while of digging and practicing, I think I've managed to gain a decent intuition for some of the very core concepts related to linear systems, filter coefficients/parameters, FIR/IIR filters, the DFT/FFT, analyzing spectra and using statistical measures for random signals (stationary,non-stationary). I have a fairly good idea of magnitude and phase, and implementing and analyzing an STFT.

BUT... I struggle quite a lot with implementing something I read in a paper, especially if it's to do with more practical applications that need adaptive filters or estimating filter parameters. I can follow along for most of the math and understand what is being said for the most part, but find myself very easily lost for weeks to no end.

I'm curious if anyone out there has had similar issues, and if there were any solutions that were particularly useful for getting more comfortable with the core concepts. I honestly feel it would help a lot to have some kind of supervisor/TA that I could go to with my questions. Perhaps there are tutoring/mentoring websites out there? StackExchange is honestly really great, but sometimes I either find myself struggling to ask the right question, or not knowing enough to understand the given answers.

• After about 25 years learning and doing signal processing, I just recently had the feeling I kinda understood FFT practically... on some aspects. Welcome aboard! If you understand phase, please do teach me :) Jun 17 '19 at 21:35
• If you are ok with textbooks but have problems with implementations, then look for books with computer exercises to gain access to some ways of realising DSP structures & algorithms.. Jun 17 '19 at 21:55
• Most EE departments make their students implement and test algorithms with MATLAB, while it is not real-time, it allows one to stop in the middle of the alg somewhere and look at or even plot intermediate data. So whether it's MATLAB or Octave or Python or even straight C or C++, you might want to do DSP on signal files. If the DSP you're interested in is audio/music/sound, then you can read a .wav file, process samples according to the algorithm you're developing, and write the result to another .wav file. If you wanna do real-time, get a SHArC board or an ARM or something. Jun 17 '19 at 22:02
• @LaurentDuval That is encouraging to hear... that everyone's always discovering more! It gets easy to freak myself out and think I'll never make it! I don't know if you've already come across the 3blue1brown channel on YouTube, or the JackSchaedler link. If not - they're great resources to help build more intuition: jackschaedler.github.io/circles-sines-signals/… Jun 18 '19 at 14:33

In my opinion,

DSP is a tool. It is interesting in of itself but it is most interesting when used to solve real problems.

Find an application, problem, or community that interests you.

Take medical imaging as an example. Understanding the slice theorem is necessary but so is knowledge of anatomy and physiology.

If something like RADAR interests you, knowledge of RF propagation is essential.

Do you like music? You can use DSP to like it more.

Look at other books beyond signal processing. Think about how you could use DSP in your hobbies.

Practicing DSP is about balancing function and constraints.

• I do like music and in fact, that is what I am trying to do: Implement algorithms for music. I still get easily lost and often impatient when trying to implement some really complex algorithms, but maybe I need to practice my basics more. Gotta contain my eagers... Jun 18 '19 at 14:27