5
$\begingroup$

I'm very new to DSP hardware, so I am taking it upon myself to learn it with regard to Audio and Acoustic Signal Processing. I've learned quite a bit of theory in a graduate DSP course, but absolutely no practical implementation was introduced.

I've stumbled upon a site of miniDSP kits as well as a Texas Instruments TMS320C6748 Dev kit. What hardware should I purchase for learning audio DSP? And, if any, are there any good books that highlight the relative importance of different DSP hardware attributes? I would love to learn as much as I can about developing DSP hardware.

$\endgroup$
  • 2
    $\begingroup$ if you want to do audio, and a stereo analog I/O is enough channels, i would recommend this SHArC-based Snowbird board from Danville Signal Processing. to develop on this, you must also buy the Visual DSP suite (asm, C, linker, loader, debug) along with their ICE hardware board (i think that Danville can resell that from ADI). that will cost more than the Snowbird. $\endgroup$ – robert bristow-johnson Dec 22 '16 at 3:30
  • 5
    $\begingroup$ also, for prototyping algorithms, especially if latency is not an issue, writing PC software might be a wise start – you'd at least avoid the "double learning curve" of embedded development and DSP development. $\endgroup$ – Marcus Müller Dec 22 '16 at 9:46
  • $\begingroup$ @MarcusMüller so here the question turns into "How do I emulate a real-time environment writing PC software with the aim of eventually migrating it to a real-time audio processing board?" $\endgroup$ – Mimmo Dec 24 '16 at 19:31
  • $\begingroup$ @mimmo really depends. Many audio DSP applications don't have latency constraints that would require what you're referring to as real-time hardware. And if you're really most interested in playing with filters, equalizers, spatial separation etc, there's really no need for any real hard real-time constraints - the high processing speeds of PC hardware and abundant buffering make many things possible in plain PC software $\endgroup$ – Marcus Müller Dec 24 '16 at 19:51
  • 1
    $\begingroup$ @Mimmo A DSP oriented hardware is like a racing car. It is optimised for a particular purpose. Therefore, you lose a huge amount of convenience, like float a=0.5;float b=4e-6;float c=a*b/5.62;printf("%03.2f\n",c);. Working on a higher level platform (e.g. PC) will enable you to learn the concepts behind the technology first. On the point of guided choice, you might want to have a look at this link $\endgroup$ – A_A Mar 11 '17 at 10:59
1
$\begingroup$

I think you might want to have a look at the stuff from XMOS. They have nice solutions (hardware, software, IDE) for developing audio applications on real(time) hardware. And besides that also nice development boards.

$\endgroup$
1
$\begingroup$

I've used one of the miniDSP kits (actually three USB Streamers) in a design project, and it did perform well, but we never did any of the actual DSP onboard and instead relied on computer software. Also, they tend to keep their onboard firmware locked down pretty tight at least for the model we used.

Your options mostly go like this and people are free to disagree

Not Recommended for what you described:

  • Dedicated DSPs (DSP Microcontrollers): medium-high cost, highest integrated ADC/DAC quality, usually highest performance, medium development difficulty, low portability
  • FPGA Board: wide range of cost but mostly medium-low for audio, peripheral ADC/DAC quality varies, medium-high performance is characterized as low-medium clock speed but very high parallelization (there is no defined ALU), relatively high portability when done hierarchially, high development difficulty,

Recommended:

  • Standard Microcontroller: low cost (dirt cheap depending on implementation), wide range of specs and features, generally faster clock speed than an FPGA (but you sacrifice parallelization) which gives it pretty high audip performance, decent ADC/DAC but not audiophile grade, medium-low portability, low development difficulty
  • Consumer Platform Software: At the end of the day, your algorithms start here. You should have MATLAB, GNU Octave, Python (Anaconda or WinPy), or something similar to do the testing on, or your life is going to be difficult. I'd say only move on from here once you are comfortable creating the entire DSP portion of the solution in these environments.

Honestly, these days audio performance is cheap on the digital side. The expensive part is having good converters. You shouldn't have to touch the top 2 solutions until you are getting into some crazy stuff. Start off with the PC software and slowly apply the concepts into a microcontroller project using C and RISC assembly.

For books I highly recommend Discrete-Time Signal Processing (Oppenheim, Schafer). If you need something a bit less reference-book-like, DSP First (McClellan, Schafer) provides a shorter and sweeter background. Honestly the online resources from MathWorks, Wikipedia, and here should fill in most gaps.

There are some good acoustics/audio engineering books out there but none of the ones I've read really go into the digital aspect of it all. They mostly speak about the nature of sound waves and propagation from an electrical and mechanical standpoint. Acoustics and Noise Control (Barron) is a good one, just ignore the proofs (partial differential equations are unholy).

$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.