Quantcast
Channel: Filter Design – Pavel Holoborodko
Viewing all articles
Browse latest Browse all 2

Digital Filters by Richard Hamming

$
0
0

This book showed me the beauty of digital signal processing, introduced magical world of filter design. Back then I was struggling with modern DSP books, which mostly focusing on facts and definitions (or even worse – Matlab) rather than underlying ideas and concepts.

Hamming’s book is of different kind. It starts slowly with several examples from numerical analysis – smoothing, differentiation, integration. All of them are based on polynomial interpolation which gives us very little freedom in building different methods with different properties tailored for particular application. All we can get is approximation order in terms of sampling step h. And, well … that is it. Not much really.

Picture changes drastically if we try to see how these classical methods behave on complex exponent e^{i\omega\,t}. For example, for simple 5-tap averaging we get

    \begin{align*} S(e^{ i\omega\,t}) &= e^{ i\omega\,t}\,\frac{1}{5}( e^{-2\,i\omega}+ e^{-i\omega}+1+ e^{i\omega}+ e^{2\,i\omega})\\ &= e^{ i\omega\,t}\,\frac{1}{5}(1+2\cos\,\omega+2\cos\,2\omega) \end{align*}

We see that averaging just multiplies source function by some value (expression in the brackets). Parameter \omega of complex exponent is a frequency, and multiplier – just shows how our filter reacts on that frequency. Running through all values of \omega we can evaluate transfer function of the filter

    \[ H(\omega)= \frac{1}{5}(1+2\cos\,\omega+2\cos\,2\omega) \]

Data can be presented as a sum of complex exponents (with different frequencies) and now we can see how filter will alter source data containing particular set of frequencies.

Further we can consider filter’s coefficients as parameters

    \[ H(\omega)= (c_0+2c_1\,\cos\,\omega+2c_2\,\cos\,2\omega) \]

Now we can easily derive {c_i} with any desired properties for particular data depending on frequency content in it.

Actually we just built framework for smoothing filter design. H(\omega) is Fourier transform of our ‘digital’ filter, and we moved our task to frequency domain.

Personally I’ve never saw such gentle and lucid introduction of frequency domain and filter design ideas.

Book is full of such simple explanations of difficult concepts. Must read for anyone interested in the subject. Highly recommended.

Here is another masterpiece of the same author: Hamming. You and Your Research.pdf.


Viewing all articles
Browse latest Browse all 2

Trending Articles