# Impulse Response Approximation

Recently, I stumbled upon a stepped-triangular (ST) approximation that can be implemented as a cascade of recursive running sum (RRS) filters. The following is a short introduction to the stepped-triangular approximation.

The stepped-triangular approximation was introduced by Jovanovic-Dolecek and Mitra [1] as a quantized approximation of a low-pass filter (LPF). Figure 1 shows an example of the approximation.

[Figure 1: Stepped Approximation of a LPF Impulse]

The original paper [1] introduced a method for the stepped-triangular approximation for a LPF impulse response. And the resulting transfer function is as a cascade of recursive sums,

The H_{rrs}(z) is the familiar recursive running sum,

which has a flat impulse response,

[Figure 2: Impulse Response Recursive Running Sum]

H_{rss}(z) is a recursive sparse sum where every *s* samples are used,

[Figure 3: Impulse Response Recursive Sparse Sum]

Both of the following can be implemented with an efficient recursive form that contains an integrator and difference combination.

To generate the stepped-triangular approximation, from a LPF impulse response, a simple rounding function g[n] is used,

The rounding function g[n] will quantize h[n] into one of three stepped-triangular approximation types. Figures 1 and 4 show one such an example. The three types determine the number of samples at the peak, less than s, equal to s, or greater than s, where s is the number of samples per step.

[Figure 4: Frequency Response for an ST-Approximation]

Figure 4 is an example of a ST-approximation frequency response. I will leave it up to the reader to decide if this is a good approximation given the gains in computation efficiency. The blue is the original frequency response and the red is the approximation using the stepped-triangual approach.

[1] Jovanovic-Dolecek, Gordana, Mitra, Sanjit, “Design of FIR Lowpass filters using stepped triangular approximation”

Follow @FeltonChris |

**Previous post by Christopher Felton:**

A Fixed-Point Introduction by Example

**Next post by Christopher Felton:**

Python number crunching faster? Part I

## Comments:

- Comments
- Write a Comment Select to add a comment

*N*is the number of steps and

*s*is the number of samples per step, when trying to define the "stepped-triangular". And

*sN*=

*D*. I have made the corrections to the equations in this short blog post. I thought this could possibly be exploited in conjunction with the use of CIC filters. But I don't think it is as useful as my original thoughts. [2] Jovanovic-Dolecek, Gordana, "Modified CIC Filter for Rational Sample Rate Conversion", ECTI Transactions on Computer and Informatioin Technology Vol.4, No.1 May 2010 Chris

To post reply to a comment, click on the 'reply' button attached to each comment. To post a new comment (not a reply to a comment) check out the 'Write a Comment' tab at the top of the comments.

Registering will allow you to participate to the forums on ALL the related sites and give you access to all pdf downloads.