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  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  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 Hrrs(z) is the familiar recursive running sum,
which has a flat impulse response,
[Figure 2: Impulse Response Recursive Running Sum]
Hrss(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.
 Jovanovic-Dolecek, Gordana, Mitra, Sanjit, “Design of FIR Lowpass filters using stepped triangular approximation”
Previous post by Christopher Felton:
A Fixed-Point Introduction by Example
Next post by Christopher Felton:
Python number crunching faster? Part I
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.