2
$\begingroup$

I saw that Oona Räisänen uses C and Perl to process digital signals: https://github.com/windytan

So I was wondering if there is any book (or ebook) about how to use programming to process digital signals. I mean, I have read a lot of books about theory of digital signal processing, such as the Oppenheim books, but I feel that there is a gap between that theory and how to do it using a computer.

At my university, we use Matlab but I think that it is not practical since it can't generate binaries (or at least, not easily). So, I was wondering if there is any book but using Perl, Python, C, Java or so.

$\endgroup$
  • $\begingroup$ Have you used, or are you aware, of FFT libraries such as the GNU collection (gnu.org/software/gsl/manual/html_node/…) or FFTW (fftw.org). I would say that writing a C program just to use FFTW in a very basic way and experiment with some simple filters is the place to start. $\endgroup$ – K7PEH Apr 16 '15 at 17:53
  • $\begingroup$ I have the same problem myself. All work at the university was Matlab and all textbooks were theoretical. While this is not the answer to this question, one book I like is Streamlining Digital Signal Processing compiled by Richard G. Lyons. It doesn't cover basics of implementations, but it has lots of hints for the next step, when basics are met. I'd really, really like to hear about any book that is actually for beginners. $\endgroup$ – AndrejaKo Apr 16 '15 at 22:03
  • $\begingroup$ Are you looking for real-time or offline processing? That will affect what kinds of implementation are practical. $\endgroup$ – Kevin Reid AG6YO Apr 18 '15 at 19:47
  • $\begingroup$ Hi @KevinReidAG6YO It would be interesting offline processing, I think that it would be easier. Or at least, It would help to understand some basic principles. $\endgroup$ – Cod1ngFree Apr 19 '15 at 15:03
  • $\begingroup$ It might be more clear to describe your target application and purpose of writing your program. If you are merely wanting to study digital signal processing and you have access to MATLAB (or, Mathematica) then that is what you should be doing until you master the technology. Once that is mastered, you should be able to pick up the FFTW documentation and begin writing your application in a language that has a FFT library. I recommend C (to begin with) and FFTW library. If you Google FFTW you will find a lot of good resources on how to use the library. $\endgroup$ – K7PEH Apr 19 '15 at 17:06
2
$\begingroup$

This may not be a direct answer to the question but since a comment suggested a book, let me suggest some others that I have in my library.

First, what I think is the most practical for hands-on programming:

"DSP Software Development Techniques for Embedded and Real-Time Systems" by Robert Oshana and published by Newnes. My copy is copyrighted 2006 and I am not sure if there are any other editions.

This book (above) is more geared to the professional engineer who is doing DSP that may be embedded in microprocessor based systems as a lot of care is given to memory use and other concern for other limited processing resources. For a student project it would be helpful but not really a real beginner book.

Another, also mentioned in the comment by @AndrejaKo is the Richard Lyons book "Understanding Digital Signal Processing". This is more like a text book covering the mathematical foundation of DSP as well as the theory of digital filters, digital sampling, and so on. It has a good chapter on Quadrature Signals that might be fitting for some SDR applications.

Another book similar in content to the Lyons book is one by Steven W. Smith with the title "Digital Signal Processing -- A Practical Guide for Engineers and Scientists". Not really into the details of programming though. I am only mentioning it because I have it but I recommend the Lyons book over this one.

And, an introductory book on what DSP is all about from a amateur radio viewpoint is a publication of the ARRL called "Digital Signal Processing Technology" by Doug Smith, KF6DX. It has a slim bit of stuff on ham radio transceiver design using DSP (partial SDR mostly if I remember correctly). But, not as much as I would like.

In summary, these are all reasonably good books but the best for programming is the first book I mentioned by Oshana and even that does not address ham radio type applications (or, maybe that is not the interest of your question).

$\endgroup$
  • $\begingroup$ Hi @K7PEH I have looked for the Oshana's book and, in my opinion, despite it is quite interesting, is more focused on how to make efficient systems rather on programming. Anyways, it is really useful as a reference, thanks a lot! $\endgroup$ – Cod1ngFree Apr 19 '15 at 16:32

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.