What are the minimum knowledge required to begin the study of Digital Signal Processing?

I am a student of computer science (not the university but technical school). I am interested in the world of DSP, and I saw that it is closely connected with mathematics. I noticed for example that a lot is based upon the Fourier I'm slowly trying to learn.

I also want to buy the book "Understanding Digital Signal Processing", but I do not know what I would go against it, and if I can understand it. What I want to know is a short list of topics needed before we can deal with such a study that one should know, is listed for reference material.

Let me give you an example of what I mean (to be taken only indicative, since we do not know almost nothing of DSP)

Mathematics: Integral
Physics: Pressure
Science: Anatomy of the human ear, Anatomy of the human eye.


I know most of you are engineers with years of work experience and master behind it, but somewhere we must also begin ;)

-
I don't know if this will help, but I'll say : Math: complex numbers & Integral and programming – Engine May 2 '14 at 10:43
– endolith May 2 '14 at 13:25
and rather than "preparing" by studying math, you should just think of a project you want to make and start working on it. you'll learn as you go, and practical experience is more important than theory anyway. – endolith May 2 '14 at 13:37
I agree with @endolith, basically dive into a problem, and dominate it. You will learn so much by doing. Concepts etc will make more sense when they are integrated into your project. You will get the "Ah! That is why the theory said this...". – Tarin Ziyaee May 2 '14 at 16:07
I'm not answering your particular question, but if you are interested and you want to give it a try, there is a Digital Signal Processing course at Coursera (free, open) that you can join right now. It started last week: coursera.org/course/dsp it also has a companion textbook (also free) you can use. It starts with some math and Fourier. – siritinga May 8 '14 at 6:05

4 Answers

I personally believe that the approach of studying something just in order to "feel ready" to study something else later on is not efficient and tends to overwhelm the student. (This of course only applies because I assume that you know what a computer scientist should know anyway: basic math, and - most importantly - how to think clearly and logically.) I could give you a whole list of mathematical topics which are important for doing DSP, but this would just paralyze you and would make you feel that there is so much you need to know that you won't even know where to start. Note that DSP has become such a huge topic in itself that there is hardly anyone who can claim that he knows even the basics of all its different sub-fields.

So what do I recommend to you after all? Get a good book on DSP and simply start studying it. If you come across problems that you cannot solve yourself, dig deeper by searching the internet, asking questions on this site, etc. In this way you will learn all necessary basics that you might be lacking. But the point is that only in this way will you find out what it actually is that you are lacking, so filling the gaps in your knowledge will be most efficient.

One good (and free!) book I would like to recommend to you is Introduction to Signal Processing by Orfanidis. It contains a lot of necessary basics and it is very practical. I think you will learn a lot in quite a short time. Also take a look at this online-book.

The answers to this question might also be relevant for you.

-
Excellent response. One will never be able to learn all possible math/pre-reqs in one's lifetime. Best is to dive in and learn through example and doing. – Tarin Ziyaee May 2 '14 at 16:08
Thank you for your reply – user8770 May 4 '14 at 10:01

While I pretty much agree with Matt L. I will actually try and answer the question you asked and give you a list.

Maths: Fourier transforms, calculus, complex numbers, trigonometry (at least as it applies to waves), convolution (I guess this is really just part of fourier).

Physics: Waves (knowing more about sound/EM waves may be useful depending on what signals you're looking at).

Basic Programming skills

Beyond this, specific knowledge may be useful depending on what your doing but the list could get very long very fast if I keep going.

-
Thank you for your reply – user8770 May 4 '14 at 10:02

One useful technique to get a very general topical overview of what might be needed is to look for introductory DSP courses at various universities that you respect. Then check the catalog for all the course prerequisites required/recommended for the DSP course, and follow the course dependencies backwards until you get to what you know.

For instance, for their DSP course prerequisites, Stanford seems to require two courses on linear systems and signal processing, which in turn requires a course on calculus and ordinary differential equations. Courses in statistical signal processing and Fourier transform theory are also recommended. University calculus probably requires high school trig, algebra and geometry. etc.

For some large segment of the population, I do not recommend just "diving in", as without the math prerequisites, one can end up with a very superficial or outright mistaken understanding. But if you are bright and intellectually aggressive, try it.

-
Thanks, I'll try. – user8770 May 4 '14 at 10:02

Computer science, even with core majors like automata theory, discrete math, compiler construction,,, won't be of much service. Even the initial core in a physics major won't cover fourier series though 2nd semester you'll calculate the flux around a torus via a triple integral,,,and if you can't then you won't be having much fun.

You most definitely need skills in: 1.Differential equations including Laplace transforms 2.AC Circuit theory into Fourier series/transforms.

And I haven't even mentioned wavelet theory nor toolkits with DSP instrumentation like Matlab and Mathematica or kits from TI that allows you to play with real DSP hardware.

-