Leave these fields empty (spam trap):
You can leave this blank to post anonymously, or you can create a Tripcode by using the format Name#Password
[i]Italic Text[/i]
[b]Bold Text[/b]
[spoiler]Spoiler Text[/spoiler]
>Highlight/Quote Text
[pre]Preformatted & Monospace Text[/pre]
[super]Superset Text[/super]
[sub]Subset Text[/sub]
1. Numbered lists become ordered lists
* Bulleted lists become unordered lists


How to approach DSP

- Sat, 26 Nov 2016 11:16:55 EST 9QSfnS0r No.36315
File: 1480177015438.jpg -(158197B / 154.49KB, 1024x684) Thumbnail displayed, click image for full size. How to approach DSP
Do any of you have any tips in regards of how to learn DSP programming.
By that I don't mean architecture dependent idiosyncrasies or optimizations but learning to apply the theoretical stuff.
Things like
  • Digital Filters, IIR & FIR
  • Oversampling & anti-aliasing
  • Impulse Frequency domain transforms, FFT & co
  • Wavelets
  • Real time scheduling

Most of the theory out there seems to be written for people who have a math or engineering degree, or at least are working on one.
I don't mind if an algorithm is expressed via a formula if it's necessary but I'd like to see something where the math behind it is explained by example as well.
Ian Puttingridge - Sat, 26 Nov 2016 12:22:55 EST gA3E5l0l No.36316 Reply
Find a book or something on the math topic you want to understand. If you chose the right book, it will be for beginners in the topic. Read the relevant part of the book and do the exercises. If you cannot read this book you have either chosen the wrong book or do not know enough math yet. Find a book or something that explains the math you do not know. Repeat this process until you have a grasp of the Fourier transform or whatever.

Congratulations, you have become a real adult who needs to know math in order to do something.
Lydia Dartville - Sat, 26 Nov 2016 16:42:15 EST ztur2YT8 No.36317 Reply
It sounds like what you're looking for is a class or a book on DSP programming. I would recommend looking for a class or a book on the subject, since I don't know a lot about it.
Simon Clonnersidge - Tue, 29 Nov 2016 14:51:10 EST 8Hgr497N No.36344 Reply
1480449070597.jpg -(55121B / 53.83KB, 500x651) Thumbnail displayed, click image for full size.
The book you want is Signals and Systems by Openheim and Willsky. It covers everything you listed except real time scheduling which is a CS topic and I don't think it covers wavelets. I don't think FFTs are covered but discrete Foureier transforms are. A FFT is just an algorithm that uses either some mathematical fact or an assumption about the input to reduce complexity. If you're going to use a FFT in software it's best to just use the FFTW library and treat it like a black box that does the same thing as a regular DFT but faster. If you're implementing it in a FPGA or ASIC decide which FFT is best for you and learn how it works

>algorithm is expressed via a formula if it's necessary
It is. Signal processing is math. You can implement DSP in all sorts of ways from gate level ASIC design to a high level programming language. It comes down to do you know the math and do you know how to do the math in your choice of implementation.

>seems to be written for people who have a math or engineering degree
>math behind it is explained by example
There are examples in that book but you're going to need at least Calc 1 to understand what's going on. This is necessary to understand DSP. For example if you don't know what an integral is you don't understand convolution. If you don't understand convolution you don't understand a FIR filter. Notationally integrals are replaced with summations when going from continuous to discrete but the mathematical principles are still the same.

Octave is good for playing around with things like filters and ffts. For example it already has ffts that it implements by calling the fftw library. It has simple graphing calls so you can visualize the data.
Jack Daffingban - Wed, 30 Nov 2016 17:59:05 EST 9QSfnS0r No.36345 Reply
Thanks alot for the suggestion. Although I will probably not buy this book (have you looked on amazon, even the "used", really counterfeit copies are insane) I've found a few similarly named pdf and dvju files already on my hard drive. 'Signals and Systems' seems to generally point to more interesting stuff than 'DSP'. ;)
Jack Daffingban - Wed, 30 Nov 2016 18:15:11 EST 9QSfnS0r No.36346 Reply
>There are examples in that book but you're going to need at least Calc 1 to understand what's going on.
I do, although probably a bit rusty.
The one thing I do remember is this and I still begrudge them for it:
They thought that differential equations are solved into other equations, that there are different kinds of them, but neither any practical applications nor methods on how to solve them (except the trivial shit.)
Asking for more always led to the condescending answer like "You won't understand that, it's only for college.
Nathaniel Hoshcheck - Wed, 30 Nov 2016 20:43:16 EST gA3E5l0l No.36347 Reply
You really do need a lot of advanced math to tackle most nontrivial differential equations. No one was trying to hide anything from you. It takes years to master the prerequisites and your teachers may not have even known enough about it themselves.
John Dartstock - Wed, 30 Nov 2016 22:04:55 EST US9Lx3Qr No.36348 Reply
1480561495496.png -(25309B / 24.72KB, 1000x460) Thumbnail displayed, click image for full size.
The counterfeit looking copies are international versions for markets where an $60-80 book cost is prohibitive. I paid $30 for one in school and was pretty happy considering I paid 80+ for about 4 books in a normal semester. It had cheaper paper and was not hard cover but that wasn't an issue for my use. Here's what I had

If you have an ebook version go with it. It's your decision whether or not a paper copy is worth the $20. The information is the same.

> 'Signals and Systems' seems to generally point to more interesting stuff than 'DSP'. ;)

It's a general book that is designed to give the reader an undergraduate level understanding of the subject in the title. It covers both continuous and discrete domains. It pays particular attention to linear time independent (LTI) systems because all kinds of neat things happen to make your life easier when you assume your system is LTI. All of the stuff in the OP is LTI. Not sure about wavelets but I think so. I haven't messed with them. If you understand that book you'll have a good foundation to build on in any application you want to get in to in signal processing. That's not to say you'll know everything you'll need to know but when you go to learn about a specific application you're going to need 90% of that book unless you're just copy and pasting stuff code or dropping in libraries.

>I do, although probably a bit rusty.

That's okay. You can review as you go but largely what you need is things like an integral is an area under a curve and a derivative is a rate of change. Your signals aren't usually going to be well defined mathematically but if you amplify a signal by 2 and then integrate it you should know the result is going to be twice the integral of the original.

I'm not sure who you're referring to as they but usually things like
>You won't understand that, it's only for college.
mean I don't know or I don't have time to spend a couple hours with you every day for a few months to cover the prerequisites. While solving a differential equation is a useful skill in analysis there are many forms and methods. I've seen multivolume collections dedicated to methods of solving differential equations. I don't think there's one guy who knows them all. What happens is you run in to one and you research how to solve it. You can pick up an undergrad diff eq book and get the most common ones. You'll probably want Calc 1 and 2 down pretty well before that. I recommend a combined linear algebra diffy eq book for engineers so you knock out both at the same time.

However the implementing DSP solutions often doesn't involve a lot of symbolic manipulation. A FIR filter performs a convolution(integral of one signal with a time reversed version of another signal where the signals are shifted relative to each other in time as a function of time) between the impulse response of a filter with the desired response(found by performing an inverse fourier transform of the desired frequency response). Sounds complicated right? Well all you do is draw the desired response and do a fft on it and then truncate it to the number of samples you want. Basically this means call fft in octave on a matrix representing the response. This is a tradeoff between fidelity to the drawn response and computational complexity. Now reverse these, because convolution reverses one signal, and you have your coefficients. Now you do pic related. Z-1 is a delay of one sample. Triangles are multiplication and sigmas are addition. There's an art to choosing the response and coefficients and googling fir filter design will give you some methods. The tradeoffs will be apparent once you understand that book and the google results will make more sense too. For example if you want a steeper slope you'll need more coefficients which means more math for your processor to do or more transistors in your asic. If you want phase linearity you will need to arrange for the coefficients to be symmetric which means more coefficients for a given design goal. You'll learn the art by playing with stuff and you'll know what you're playing with by knowing what's in that book. But when it comes down to it you're just designing a system that adds and multiplies.

Warning: some details may be off a little. I've made no attempt to be rigorous and haven't done this in about a year.

Report Post
Please be descriptive with report notes,
this helps staff resolve issues quicker.