A Pragmatic Introduction to Signal Processing
terpconnect.umd.edu
terpconnect.umd.edu
The book also has an accompanying active MOOC on Coursera platform.
The other course I recommend is the Audio Signal processing class by Xavier Serra[2] This is a practical class with lots of hands on programming examples and introduction to useful open-source software tools.
[1] https://www.coursera.org/learn/dsp [2] https://www.coursera.org/learn/audio-signal-processing
From first principles my favorite is Oppenheim / Schafer's 1989 version of 'Discrete-Time Signal Processing'. Its falling apart from all the use over the years.
There should be a medal for sites like this!
Increasing the spacing between lines in these huge chunks of text to 1.5 would be a good start.