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 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.
[1] Jovanovic-Dolecek, Gordana, Mitra, Sanjit, “Design of FIR Lowpass filters using stepped triangular approximation”
Follow @FeltonChris |
- Comments
- Write a Comment Select to add a comment
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.
Please login (on the right) if you already have an account on this platform.
Otherwise, please use this form to register (free) an join one of the largest online community for Electrical/Embedded/DSP/FPGA/ML engineers: