# Fields of math needed for digital filter design

I want learn digital filter design. My knowledge of math is at high school level. I can learn math through the Internet. Then, what fields of math do I have to learn?

• Welcome to DSP.SE! I've edited your question and added the reference-request tag. I realize it sounds impolite, but generally "Hi" and the beginning and "please / thank-you" at the end of questions aren't used on the *.SE forums. The aim here is to answer questions: so asking a question is a perfectly fine thing to do. – Peter K. Oct 22 '15 at 13:15
• Also have a look at this question and its answers. – Matt L. Oct 22 '15 at 21:08
• Mr Moderator, although Americans you are not any more cow boys. You are some how civilized. Then, introducing by "Gentlemen" and ending by "regards" should be permitted. – George Theodosiou Oct 28 '15 at 10:37
• @George Theodosiou: It took me a while to become accustomed to not using "Hello" and "Thanks" on this web site. The Masters of this web site want to avoid what's called "chitchat." (Discussing trivial things not related to signal processing. Exactly what I am doing right now.) By the way, although not many, there are still real legitimate cowboys in America. A month ago I met a cowboy in a bar in Nevada who wore a leather vest and had a six shooter in his holster. – Richard Lyons Nov 3 '15 at 0:10
• I have put some DSP resources here: pipad.org/wiki/index.php/DSP – P i Nov 3 '15 at 9:43

If you have the balls to learn math by yourself. The two fields of Mathematics that you need to dominate in order to do filter design are: Functional Analysis and convex optimization. Pretty much every filter design is the result of an optimization problem, like: Find these set of $N$ numbers such that the absolute value of the fourier transform in these frequency region has the following shape (between these two limits when frequency is 0Hz to 320Hz, and between these other two when frequency is greater than 340Hz). Or, what is the set of $N$ numbers such that when applying the discrete convolution of the sequence of the numbers to this signal $x(n)$, the result is this signal $y(n)$. And there are many other ways of defining them.

And you will need functional analysis in order to understand how to model a signal, how to model a system, and how to model the interactions and operations between signals (transforms, convolutions, etc).

Hope it Helps.

• Of course. I completely agree with you. The thing is the point of my answer was to provide a way to understand the underlying mathematical concepts behind filter design. My approach to filter design is to go to matlab, open the filter design tool and tweak parameters around until I find something suitable. But that is not an appropriate answer to someone wanting to "learn" about filter design. That being said: the optimization problem I described is what matlab does behind the curtains, perhaps with numerical approximations. – bone Feb 18 '16 at 9:52

To get started:

Complex numbers

The frequency response of a filter is easier to understand complex-valued, describing both the magnitude frequency response and the phase frequency response. You will be able to understand poles and zeros, which can be complex. Complex numbers enable you to have negative frequencies, which will make math simpler.

Trigonometry

$\sin$, $\cos$ and their relation to the complex exponential $e^{i\alpha} = \cos(\alpha) + i\sin(\alpha)$ are important. Sinusoidal functions will be passed through filters with only their amplitude and phase affected.

Differentiation

To find at what frequency a simple filter peaks or dips, you can solve at what frequency the derivative of its magnitude frequency response is zero.

Integration

Integration is needed for the Fourier transform and the inverse Fourier transform.

Fourier transform

Fourier transform enables you to go from an impulse response to a frequency response and back. Also things you do in the time domain often have a simple counterpart in the frequency domain, and vice versa.

• I would add that this free book covers much of what is needed, right after "integration" in your list. – MBaz Oct 22 '15 at 12:49
• You'd also want some understanding of numerical analysis, assuming you'll be implementing your filters in software/firmware. The Laplace transform is also helpful because many digital filters are derived from analog ones. – MackTuesday Oct 22 '15 at 17:13

@George Theodosiou:Instead of diving into all sorts of high-powered mathematical subjects (only a portion of which will be useful to you), I suggest you begin by reading a decent book for DSP beginners. Such as the popular books "Understanding Digital Signal Processing" or "The Scientist and Engineer's Guide to Digital Signal Processing." Those books spoon feed the reader, slowly and gently, the mathematics needed to begin studying DSP. Then when you encounter some equation in those books that puzzles you, you can go on the web and learn the mathematics of that particular equation in more depth.

George, if your desire to learn digital filtering is sincere, and you retain your enthusiasm, then you will succeed. To quote Susan B. Anthony, "Failure is impossible." Good Luck.

• Mr Lyons, many thanks for your comment. I have started study your book "Understanding Digital Signal Processing " and have some comments about, but I need some address for post them. Regards. – George Theodosiou Nov 27 '15 at 13:41
• @George Theodosiou: I welcome receiving an e-mail from you. I am at R_dot_Lyons_at_ieee_dot_org. Yassas – Richard Lyons Nov 29 '15 at 1:57

Many thanks to those answered, commented and viewed my question. My answer is that I have to begun from Functional Analysis as Mr Bone suggests. I remember from high school that when a polynomial of x is equated with y, yields function of x with y. Also I remember the fundamental theorem of algebra for real coefficients. Then I can begun from this knowledge.

For digital filter design, I appreciate above answers, and would like to add some fields.

First, let us restrict to linear filering. Linearity, along with time-invariance, are root assumptions. With them, vector spaces, convolution (integrals and series) and Fourier transforms (part of functional analysis, with complex adn trigonometry) become natural tools. I insist these tools are natural consequences of linearity/time-invariance, if you get that, you will gently be driven to the tools you need. Optimization is quite pervasive in filter design.

On the side, you can keep in mind additionnal fields. You may be interested in designing complementary filters, with different rates, and multirate filter design may lead you to matrix factorization, which is useful as well in filter structures (lattice, ladder) and spectral factorization. If you go to real-system implementation (FPGA, microcontroller), you can have to dive into fixed-point or integer arithmetic. Of course, sampling theory is a first-order requirement, especially if you go multidimensional (image processing). One can even touch higher mahematics, with polynomial systems and Gröbner bases.

I like a lot, for a basic mathematical and clean introduction to many topics, Gasquet & Witomski Fourier Analysis and Applications: Filtering, Numerical Computation, Wavelets.

Let me add a lesser mentioned issue: one big question is often the number of taps, and the precision (number of bits per coefficient) required to satisfy a certain filter design. Two sources: