Forums

From theory to practice - DSP with matlab book?

Started by Benjamin S. June 2, 2012
I'm familiar with stationary (FIR/IIR) and adaptive filtering. My matlab 
skills are OK but I've never done any practical DSP in matlab. There is a 
book called "Digital Signal Processing using Matlab" by Ingle and Proakis. 
It starts with very simple things which I find extremely boring so I 
wonder whether it's the best way to learn how to process some signals.

Any useful tutorials or advice would be welcome.
On Sat, 2 Jun 2012 08:40:35 +0000 (UTC), "Benjamin S." <niacin89@yahoo.com>
wrote:

>[...] My matlab >skills are OK but I've never done any practical DSP in matlab. There is a >book called "Digital Signal Processing using Matlab" by Ingle and Proakis. >[...] I >wonder whether it's the best way to learn how to process some signals.
"When all you have is a hammer, everything starts to look like a nail." Matlab can be an amazing tool for mathematics. For signal processing it leaves a few things to be desired. (I'll leave it to others to be specific about this.) For LEARNING signal processing, it's like learning to drive in a car with an automatic transmission -- you'll do okay, but you won't understand the fundamental relationships between torque, RPM, gearing, etc. And unless you specifically set out to learn them, you'll be limited to driving cars with automatic transmissions for your whole life. Greg
On Sat, 02 Jun 2012 07:35:18 -0500, Greg Berchin wrote:

> On Sat, 2 Jun 2012 08:40:35 +0000 (UTC), "Benjamin S." > <niacin89@yahoo.com> wrote: > >>[...] My matlab >>skills are OK but I've never done any practical DSP in matlab. There is >>a book called "Digital Signal Processing using Matlab" by Ingle and >>Proakis. [...] I >>wonder whether it's the best way to learn how to process some signals. > > "When all you have is a hammer, everything starts to look like a nail." > > Matlab can be an amazing tool for mathematics. For signal processing it > leaves a few things to be desired. (I'll leave it to others to be > specific about this.) > > For LEARNING signal processing, it's like learning to drive in a car > with an automatic transmission -- you'll do okay, but you won't > understand the fundamental relationships between torque, RPM, gearing, > etc. And unless you specifically set out to learn them, you'll be > limited to driving cars with automatic transmissions for your whole > life.
It would depend on how it is written -- if the book is "if you want to solve this problem, then type in this function into Matlab", then yes. If the book is "here is the theory, here is the math, problem 3.14 shows you how to do the calculation in Matlab" then maybe not. But yes, I don't think the world needs any more "I need to understand convolution, what Matlab function do I call" sorts of people. "How do I make Matlab compute the convolution that I know and love" is a much more productive attitude. -- Tim Wescott Control system and signal processing consulting www.wescottdesign.com
I find the signal processing tools in Matlab to be hard to understand 
and, thus, use.  Part of that's because I would so rarely use them and 
so I rarely use them.  Positive feedback!  ... or is that being negative??

So, I just write my own functions.  It's not that hard and then you know 
what you've got.

For filter design, I use other tools and transfer the coefficients into 
Matlab.

Fred
You could do something that you enjoy doing. That is IMO the best way to
learn, it's all about motivation.

Matlab (or my own preference: freeware Octave) would be my recommendation.
It's the tool that gets the work done for me and lots of other people. 

You can reuse other people's work, but don't have to. Architect or
bricklayer. Your choice.
On 6/2/12 4:40 AM, Benjamin S. wrote:
> I'm familiar with stationary (FIR/IIR) and adaptive filtering. My matlab > skills are OK but I've never done any practical DSP in matlab. There is a > book called "Digital Signal Processing using Matlab" by Ingle and Proakis. > It starts with very simple things which I find extremely boring so I > wonder whether it's the best way to learn how to process some signals. > > Any useful tutorials or advice would be welcome.
... On 6/2/12 1:18 PM, Fred Marshall wrote:
> I find the signal processing tools in Matlab to be hard to understand > and, thus, use. Part of that's because I would so rarely use them and so > I rarely use them. Positive feedback! ... or is that being negative?? > > So, I just write my own functions. It's not that hard and then you know > what you've got. > > For filter design, I use other tools and transfer the coefficients into > Matlab.
i found that for FIR filters, both firpm() (used to be called remez()) and firls() work pretty good for design. and also the Kaiser window (together with fft()) works pretty good for the "windowing method" of FIR design. they should have a berchin() function along with prony() to design IIRs in the signal processing toolbox. i wonder what Ingle and Proakis would say about the STUPID FUCKING requirement that all indices are positive (not ever zero, not ever negative). how do they integrate that inflexible indexing convention into the accepted and concise convention we use in DSP that has negative and zero indices, both for samples and for FFT bins? and about the latter, *what* do they tell the reader about the DC bin in the FFT? is it X(1)? totally stupid, and you would think these authors would start rattling Cleve's telephone and tell him how that unfixable indexing convention makes it harder to integrate MATLAB with their DSP book. -- r b-j rbj@audioimagination.com "Imagination is more important than knowledge."
On Jun 2, 12:39&#2013266080;pm, robert bristow-johnson <r...@audioimagination.com>
wrote:

> they should have a berchin() function along with prony() to design IIRs > in the signal processing toolbox.
Berchin function: A nonlinear function with complex coefficients that only returns irrational values. In the MATLAB example code for FDLS I specifically disallow commercial use. Greg
On Sat, 2 Jun 2012 08:40:35 +0000 (UTC), "Benjamin S."
<niacin89@yahoo.com> wrote:

>I'm familiar with stationary (FIR/IIR) and adaptive filtering. My matlab >skills are OK but I've never done any practical DSP in matlab. There is a >book called "Digital Signal Processing using Matlab" by Ingle and Proakis. >It starts with very simple things which I find extremely boring so I >wonder whether it's the best way to learn how to process some signals. > >Any useful tutorials or advice would be welcome.
I use MATLAB to prototype lots of core algorithms. Typically I go from paper into Mathematica, if there is any hard symbolic work to be done, then from Mathematica to a MATLAB prototype. I like the ability in MATLAB to quickly work on the algorithm and its output like a whiteboard. I'll usually generate some sort of numerical test at that point which I will compare with the C implementation later on to verify they are operating correctly. A lot of what I'm working on is ending up on Intel instead of Analog Devices now and the newer Intel compilers support syntax (Cilk+) which is very close to MATLABs vector notation. I almost never do any actual "Signal Processing" with MATLAB. I will always slap a GUI front end on a C library for Windows (this is really easy with all the COTS framework solutions you can buy for Microsoft .NET) or implement a real-time solution on SHARC. Mark DeArman
On Sat, 2 Jun 2012 08:40:35 +0000 (UTC), "Benjamin S."
<niacin89@yahoo.com> wrote:

>I'm familiar with stationary (FIR/IIR) and adaptive filtering. My matlab >skills are OK but I've never done any practical DSP in matlab. There is a >book called "Digital Signal Processing using Matlab" by Ingle and Proakis. >It starts with very simple things which I find extremely boring so I >wonder whether it's the best way to learn how to process some signals. > >Any useful tutorials or advice would be welcome.
Hello Benjamin, You might take a look at the book: "Computer-Based Exercises for Signal Processing Using Matlab" by C. Sidney Burrus, et al. (Prentice Hall Publishing, 1994. I promise you won't be bored with that book. Whereas the Ingle Proakis book provides Matlab code (where the rumor is that much of their code must be debugged for use with later versions of Matlab), the C. Sidney Burrus does not provide much Matlab code to help you solve the book's problems. In any case, the C. Sidney Burrus book is, in my opinion, a terrific book. [-Rick-]
I completely agree with Rick, I learnt a lot about DSP from the C. 
Sidney Burrus book.

Doesn't seem like 18 years ago since it was published :-(

John

On 04/06/2012 19:02, Rick Lyons wrote:
> On Sat, 2 Jun 2012 08:40:35 +0000 (UTC), "Benjamin S." > <niacin89@yahoo.com> wrote: > >> I'm familiar with stationary (FIR/IIR) and adaptive filtering. My matlab >> skills are OK but I've never done any practical DSP in matlab. There is a >> book called "Digital Signal Processing using Matlab" by Ingle and Proakis. >> It starts with very simple things which I find extremely boring so I >> wonder whether it's the best way to learn how to process some signals. >> >> Any useful tutorials or advice would be welcome. > > Hello Benjamin, > You might take a look at the book: > > "Computer-Based Exercises for Signal Processing > Using Matlab" by C. Sidney Burrus, et al. > (Prentice Hall Publishing, 1994. > > I promise you won't be bored with that book. > > Whereas the Ingle Proakis book > provides Matlab code (where the rumor is that much of > their code must be debugged for use with later versions > of Matlab), the C. Sidney Burrus does not provide much > Matlab code to help you solve the book's problems. > In any case, the C. Sidney Burrus book is, in > my opinion, a terrific book. > > [-Rick-] >