1. Limited time only! Sign up for a free 30min personal tutor trial with Chegg Tutors
    Dismiss Notice
Dismiss Notice
Join Physics Forums Today!
The friendliest, high quality science and math community on the planet! Everyone who loves science is here!

Advice on Academic Path DSP and mathematics

  1. May 11, 2012 #1
    My main passions involve anything having to deal with audio synthesis and manipulation. I love sounds (not even necessarily musical) and love even more the topics of electronic and computer generated sounds. I am mainly interested in computer-related audio processing and generation. I would love to design, write, and use software of this nature for my career and possibly get into research within this field.

    Currently, I am pursuing a double major in mathematics and computer music. The computer music program is focused on audio synthesis/signal processing and algorithmic music (as well as some acoustics). I was originally just doing computer music but after taking Trig and college algebra, I realized that I love mathematics. I have always been very good at math, but I grew up in a very rural town and my highschool had nothing but highschool algebra/geometry. Now I am about to start a summer calculus course and have already started working through the assigned text (Thomas' Calculus 12e) as well as Spivak's and Apostol's.

    Anyway, I'd really love to get into the field of DSP, mostly pertaining to audio applications. However, I am now very passionate and interested in mathematics and would like to follow an educational path including it that will leave me with a diverse choice of careers that I can go into. I am thinking about doing a mathematics major with an emphasis in computer science. Would this be an appropriate path for entering the field of DSP while still leaving me with many options? Is pure mathematics a better choice?
  2. jcsd
  3. May 11, 2012 #2


    User Avatar
    Science Advisor

    Hey dustbin and welcome to the forums.

    If you are interested in signal processing and end up studying some mathematics subjects, my advice for you would be to study things related to harmonic analysis, integral transforms, and wavelets.

    The idea of these kinds of things is that you study abstract ways of projections and bases for general signals/functions so that you can essentially take your function/signal, project it to a basis and then depending on what that basis will tell you about the signal, either use a subset of the basis or use some transformation of the components of your basis to create a new basis that gives you the information you are looking for.

    Once you have come across the ideas for these fields, then you will be able to understand technical papers if they talk about these kinds of things.

    If you want to do the computer science part that is relevant to DSP, then you will want to study things like the fast fourier transform and the fast wavelet transform as a start amongst other things.

    Like many developed fields, there are standards both in terms of the framework and the maturity of the ideas for that particular field. In terms of the software aspect, there are standardized 'plug-in' systems that deal with filters and this framework for the plug-in reflects the approach to signal processing for audio applications. You will, at some point, come across a mature audio processing repository that will have a SDK for 3rd party filters and the interface and data structure information will give you the hints you need to see how audio processing is done. You will also get to know how 'real-time' vs 'non-real time' is done as well.

    Just one other thing though: writing software is a really demanding task, especially if its for commercial purposes. It's one thing to write software for yourself but it's another thing to turn that into something commercial because the expectations are not just for yourself, but for others who are potentially going to use it.

    It takes a while to get used to this, but I don't want to put you off doing this because it can be a great feeling to finish a project no matter how small or big it is (speaking from personal experience). I would advise you to start small and then build up slowly by incrementing on what you did in your past mini-projects.

    Also don't try and re-invent the wheel: see if you can get something that allows you get something off the ground quickly (look for open source projects: there is bound to be one out there for your purposes) and build up off that.

    I would not choose pure mathematics courses, but instead applied ones. The topics mentioned above like wavelets, are applied. They are used in signal processing, filtering, compression amongst other things. You should get enough of an idea of the abstract study of things without losing the original focus on audio signal processing. I also recommend if you can, to get an engineering text on DSP or take a class on it if you can (usually it's in the engineering department). If you can't take a class in it, get a book and go through it.

    If you want to pursue pure mathematics for other purposes then ok but if you want to pursue the maths for DSP audio applications or something similar, again I recommend you take the applied courses and not the pure ones.
  4. May 11, 2012 #3
    Thank you for the response! That is exactly the kind of advice that I was looking for. Is the pursuit of applied mathematics more appropriate rather than a CS or engineering degree? I see a lot of DSP jobs require these degrees, but it seems that many of the audio related ones are CS or mathematics. I really don't have an interest in pursuing engineering. I find CS interesting but really only care about it in regards to my passions that I mentioned, but perhaps some courses will change this. Are physics courses recommended for this path of study?

    I've already started creating audio programs for my own personal use, which has been challenging but a very fun way to explore the subject as well as apply new things that I have learned to real life situations.
  5. May 12, 2012 #4


    User Avatar
    Science Advisor

    The engineering type roles I'm guessing are more hardware oriented roles where you either use existing DSP solutions or have to create and design your own in terms of the actual chipsets and boards and that kind of thing. Also you will have to program the boards which will probably require a specialized language for the purposes of DSP.

    To be honest I think you will need to know a little bit of math, engineering, and computer science. It's ok not to care about CS too much, because your focus will ultimately be audio signal processing which means you learn enough to get started, and then keep learning enough to do what you have to do. Don't think you need to be a master at all things because this is not true and the only reason many things get done nowadays (especially with the complexity involved) is that people stick to specific things and become master of a few things rather than a jack of all trades master of none kind of thing.

    If you are doing hardware stuff, then you will most likely need a full accredited electrical/computer type engineering degree which will include the physics.

    My guess though is that you will not need this if you are doing algorithm/filter design as opposed to hardware design or DSP chipset design. You can basically take a platform, get the architecture manual and instruction set manual and then program it do to what you want. If you are programming in it software using a normal PC, then you just code it up and go.

    As for mathematics, you will need applied courses not pure ones. The applied courses should give you enough of the theory to know what you are actually doing and then give you the results that you will use. Again your job won't be a mathematician, but more of a engineer/applied scientist that uses the relevant tools when they need them just like a carpenter uses a hammer when they need to. You don't need to invent the tools just like the carpenter doesn't have to invent the hammer.

    I don't honestly know personally what the job market is for this kind of thing and I don't know what they expect in terms of qualifications, but if you have to do hardware design or heavy hardware programming, then you will probably need an electrical engineering degree of some sort. If not though, I think you can get away with doing the relevant CS, Math, Audio stuff and get a job through meeting the right people.
Share this great discussion with others via Reddit, Google+, Twitter, or Facebook