Top products from r/DSP
We found 35 product mentions on r/DSP. We ranked the 39 resulting products by number of redditors who mentioned them. Here are the top 20.
1. Understanding Digital Signal Processing (3rd Edition)
Sentiment score: 3
Number of reviews: 7
2. Discrete-Time Signal Processing (3rd Edition) (Prentice-Hall Signal Processing Series)
Sentiment score: 3
Number of reviews: 4
3. Designing Audio Effect Plug-Ins in C++: With Digital Audio Signal Processing Theory
Sentiment score: 3
Number of reviews: 3
Focal Press
4. The Scientist & Engineer's Guide to Digital Signal Processing
Sentiment score: 1
Number of reviews: 2
Used Book in Good Condition
6. Multirate Signal Processing for Communication Systems
Sentiment score: 1
Number of reviews: 1
7. Digital Signal Processing Application: High School - College Level Projects
Sentiment score: 0
Number of reviews: 1
9. The Audio Programming Book (The MIT Press)
Sentiment score: 1
Number of reviews: 1
MIT Press (MA)
10. Discrete-Time Signal Processing (2nd Edition) (Prentice-hall Signal Processing Series)
Sentiment score: 0
Number of reviews: 1
13. C Language Algorithms for Digital Signal Processing
Sentiment score: 1
Number of reviews: 1
16. Digital Signal Processing and the Microcontroller
Sentiment score: 1
Number of reviews: 1
17. Digital and Analog Communication Systems (6th Edition)
Sentiment score: 1
Number of reviews: 1
18. The Definitive Guide to ARM® Cortex®-M3 and Cortex®-M4 Processors
Sentiment score: 1
Number of reviews: 1
It kind of sounds like you'd be good just getting a textbook. I think any book will be fine since you mainly just want questions (and presumably answers), but try to find one that implements code in a language that you're comfortable with, or that you want to learn.
There are a lot of different "final year" DSP courses, but it sounds like you want something covering the fundamentals rather than anything too advanced. I started off with The Scientist & Engineer's Guide to Digital Signal Processing and then used Signals and Systems for my first undergraduate course, but we used it largely because he co-authored it. I would recommend scouring the web for some free books though. There are books like ThinkDSP popping up that seem pretty neat.
Edit: Oppenheim is always mentioned also.
As a software developer the hardest part will probably be sharpening your mathematics skills. At my undergrad the CS kids only took up to Calculus II, which is really not enough math.
I started on DSP as a sophomore, teaching myself from this book. Even though I was able to implement a few filters successfully and understand the basics, I don't think it really clicked until I took a linear systems course.
All that being said, you can totally do it. But it won't be easy without the technical background - sure you use the tools we make, but honestly we hide most of the technical parts from the user anyway (the user doesn't know about or care about Butterworth vs Chebeshev filters). Put in the work to learn the mathematics. I recommend Oppenheim and Willsky if you don't have the linear systems background. Besides that, you really just need to show the company that you're a music lover, and it looks like for you that should be easy enough. PM me if you want more info.
+1 for Cortex-M (with FPUs). I'm building a guitar pedal with an STM32F407 and it handles 12x oversampled distortion and a bunch of biquads at 48kHz (mono). It is paired with a CS4272 audio codec with DMA handling the I2S data.
It won't handle any reasonable FIR filter and the RAM limits it to ~500ms delay. There is a discovery board with external RAM but I haven't tried using it.
The F7 series are clocked a bit faster and some come with a double precision FPU instead of single but they have the same instruction set as the F4s. The Cortex-M7 has a longer pipeline (6 Vs 3 stages, probably to support the higher clock rate) so branching is probably less of a penalty on the M4.
This book is an excellent guide to the low level guts of the Cortex-M3 & M4 chips and contains a chapter dedicated to DSP on the M4. Long story short is contains a bunch of DSP instructions such as saturating integer arithmetic, integer SIMD, floating point fused multiply-accumulate etc which makes it semi-competitive against "true" DSP cores. The book compares the M4 and Sharc DSP to show that there's a big jump between them but the M4 wins hands down for ease of learning & development (strong community, free (GNU) tools etc).
Edit: If you want hardware this audio codec can be paired with this STM32F7 kit or this motherboard paird with this STM32F4Discovery board can take it as well.
I know of some good text books that are pretty easy to read. The Oppenheim and Schafer are considered by a lot of my former profs to be the bible of DSP intro:
http://www.amazon.com/gp/product/0131988425/ref=pd_lpo_k2_dp_sr_1?pf_rd_p=486539851&pf_rd_s=lpo-top-stripe-1&pf_rd_t=201&pf_rd_i=0132146355&pf_rd_m=ATVPDKIKX0DER&pf_rd_r=17WDV1JR8EA7P3D8W78A
It's pretty comprehensive, so if you're looking for something simpler, this is a pretty short and intuitive intro text (which was actually my first exposure to DSP!):
http://www.amazon.com/Digital-Signal-Processing-Primer-Applications/dp/0805316841
The other guys covered your specific filter question, so here's some general info on learning/implementing DSP via code. I don't know whether you're a programmer already or not, so if you're not, DSP is not a great way to learn C programming from the beginning. Basic DSP like your low-pass filter is not very demanding of more advanced programming skills, but it IS (relatively) hard to debug. I don't even want to imagine how awful debugging DSP output would be for a new programmer who's not yet sure his basic code even works properly. Much easier to learn C by writing some scrubby text output programs rather than staring at a huge pile of output floats.
If you're already comfy with C, you're just going to have to dig into some textbooks and work your way through them. Don't let them scare you. The math looks ugly, but it REALLY isn't! I highly recommend combining at least two sources for each topic.
http://www.dspguide.com/ is free and great for understanding what you're doing. Very little math, very heavy on explanations of how DSP works. Read the section on filters or whatever from this book first.
http://www.amazon.com/Audio-Programming-Book-Richard-Boulanger/dp/0262014467 is the math side of the same DSP topics + lots of actual C code implementations of each
If you make it through the pair all the way, you've pretty much got an entire foundation
As far as I know, PolyBLEP is a really good way to handle discontinuities without using too much processing time, so I would stick with that.
An old professor of mine wrote this book on developing DSP plugins that has algorithms and code for pretty much anything you can think of, and I highly recommend it. It's written to go along with his software, but you can adapt the algorithms pretty easily.
http://www.amazon.com/Designing-Audio-Effect-Plug-Ins-Processing/dp/0240825152
I really liked the The Scientist and Engineer's Guide to
Digital Signal Processing for getting started. You can read the whole book online for free.
After that Fred Harris' book is excellent too. http://www.amazon.com/Multirate-Signal-Processing-Communication-Systems/dp/0131465112/ref=sr_1_2?s=books&ie=UTF8&qid=1317499091&sr=1-2
Fair warning: synths can be beasts. The DSP part isn't what's going to give you the most trouble, hopefully. This book covers synth architectures and coding them in C++. I strongly recommend going through his first book on audio effect plugin design. The author is a former engineer at Korg.
I strongly recommend you start with a plugin before porting it to a hardware platform.
I think The Scientist and Engineer's Guide to Digital Signal Processing and Understanding Digital Signal Processing and generally considered the most accessible introductions. I've gotten more mileage out of Understanding DSP; I feel like it goes into a little more detail and really works to walk you through concepts, step by step.
http://www.dspguide.com/pdfbook.htm
https://www.amazon.com/Understanding-Digital-Signal-Processing-3rd/dp/0137027419
Aside from searching out good learning resources, IMO nothing is more helpful for learning than setting up your environment with Matlab, Jupyter notebooks, or whatever you're going to use, and getting comfortable with the tools you'll be using to explore these topics.
"fundimentals of radar signal processing". This is an excellent book to start from; couldn't recommend it enough. Covers all the material well with a quick refresher of signal processing up front. It also reads very well.
http://www.amazon.com/Fundamentals-Processing-McGraw-Hill-Professional-Engineering/dp/0071798323
If you are a complete rookie, then I suggest you to read DSP and the Microcontroller. Very easy to read, little of math and a lot of humour (sic!).
http://www.amazon.com/Digital-Analog-Communication-Systems-Edition/dp/0130812234/ref=sr_1_2?ie=UTF8&qid=1383196967&sr=8-2&keywords=couch+communication
Buy this for .01. Great book, full solutions manual is online.
I started with this book back in the 1990s. It's old, but the principles are still the same and it's a very good book. It gives a correct technical explanation without going into too much detail and presents the full source code for everything.
In a way, I could say every single program I have written on DSP to this day has some roots in that book.
Check out chapter 7 of Discrete-Time Signal Processing by Oppenheim and Schafer. The whole book is great.
Oppenheim and Schafer is too advanced for an intro. I would recommend Signal Processing First by McClellan, Schafer, and Yoder. It is the book I learned with in college.
http://www.amazon.com/Signal-Processing-First-James-McClellan/dp/0130909998
https://www.amazon.com/Understanding-Digital-Signal-Processing-3rd/dp/0137027419
There's probably a free pdf floating around somewhere on the net.
Get Rick Lyons' book, he makes the math easy.
https://www.amazon.ca/Understanding-Digital-Signal-Processing-3rd/dp/0137027419
I found Rick Lyon's book a much easier read.
I would recommend Proakis or Mitra.
Understanding Digital Signal Processing by Richard Lyons is the best intro in my opinion:
http://www.amazon.com/gp/aw/d/0137027419/ref=mp_s_a_2?pi=54x75&qid=1344996249&sr=8-2
Teaches concepts without getting bogged down in the math details. Once you understand the concepts, get Oppenheim and Schafer to learn the dirty details.
I have heard good things about Dan Simon's Optimal State Estimation book, but do not have experience with it.
Haykin has a chapter on Kalman filtering in his Adaptive Filter Theory text and a book on Kalman Filtering and Neural Networks.
I personally like The Scientist & Engineer's Guide to Digital Signal Processing . The author explains a lot of concepts very clearly in laymen terms. I think the only flaw is that it doesn't cover a ton of material, only the basics.
Other than that, I think Mitra is a good book. One thing to look out for is its errata list. It's somewhat frustrating to have to double check for errors in the book when working homework problems.
Hands down, no question, I would recommend Richard Lyons' book FIRST.
This book.
This is what I use: http://www.amazon.com/Signals-Systems-2nd-Alan-Oppenheim/dp/0138147574
Decimation/interpolation means a change of variable (z=> z^k for interp, z=> z^1/k for decimation) on the transfer function. See this or this(this is the main book ref on multirate systems).
This ,though it goes in detail in all not just signal processing.
Discrete-Time Signal Processing by Alan Oppenheim, MIT professor and head of the their DSP group.
His wiki page mentions he wrote his dissertation under the direction of Amar Bose, founder of Bose audio.
http://www.amazon.co.uk/Designing-Audio-Effect-Plug-Ins-Processing/dp/0240825152/ref=sr_1_1?ie=UTF8&qid=1367506075&sr=8-1&keywords=audio+programming+effects
https://www.amazon.com/dp/B01MS8W9XI
Understanding DSP by Lyons, hands down. Get it and never look back. AWESOME book. http://www.amazon.com/Understanding-Digital-Signal-Processing-Edition/dp/0137027419