In signal processing, a recursive filter is a type of filter which re-uses one or more of its outputs as an input. This feedback typically results in an unending impulse response commonly referred to as infinite impulse response (IIR), characterised by either exponentially growing, decaying, or sinusoidal signal output components.
Recursive filters are also called Infinite Impulse Response (IIR) filters. This includes:
- Single Pole Recursive Filters
- Phase Response
SINGLE POLE RECURSIVE FILTERS
This recursive filter uses just two coefficients, a0 = 0.15 and b1 = 0.85. For this example, the input signal is a step function. As you should expect for a low-pass filter, the output is a smooth rise to the steady state level. This low-pass recursive filter is completely analogous to an electronic low-pass filter composed of a single resistor and capacitor.
The beauty of the recursive method is in its ability to create a wide variety of responses by changing only a few parameters. For example, Fig. 19.3 shows a filter with three coefficients: a0 = 0.93, a1 = -0.93 and b1 = 0.86. As shown by the similar step responses, this digital filter mimics an electronic RC high-pass filter.
These single pole recursive filters are definitely something you want to keep in your DSP toolbox. You can use them to process digital signals just as you would use RC networks to process analog electronic signals. This includes everything you would expect: DC removal, high-frequency noise suppression, wave shaping, smoothing, etc. They are easy to program, fast to execute, and produce few surprises.
A filter can have three types of responses:
- Zero phase
- Linear phase
- Nonlinear phase.
As shown in (a), the zero phase filter is characterized by an impulse response that is symmetrical around sample zero. The actual shape doesn't matter, only that the negative numbered samples are a mirror image of the positive numbered samples. When the Fourier transform is taken of this symmetrical waveform, the phase will be entirely zero, as shown in (b).
The disadvantage of the zero phase filter is that it requires the use of negative indexes, which can be inconvenient to work with. The linear phase filter is a way around this. The impulse response in (d) is identical to that shown in (a), except it has been shifted to use only positive numbered samples. The impulse response is still symmetrical between the left and right; however, the location of symmetry has been shifted from zero. This shift results in the phase, (e), being a straight line, accounting for the name: linear phase. The slope of this straight line is directly proportional to the amount of the shift. Since the shift in the impulse response does nothing but produce an identical shift in the output signal, the linear phase filter is equivalent to the zero phase filter for most purposes.
An impulse response that is not symmetrical between the left and right. Correspondingly, the phase, (h), is not a straight line. In other words, it has a nonlinear phase. Don't confuse the terms: nonlinear and linear phase with the concept of system linearity discussed in Chapter 5. Although both use the word linear, they are not related.
The phase is linear or not. These are the pulse responses of each of the three filters. The pulse response is nothing more than a positive going step response followed by a negative going step response. The pulse response is used here because it displays what happens to both the rising and falling edges in a signal. Here is the important part: zero and linear phase filters have left and right edges that look the same, while nonlinear phase filters have left and right edges that look different. Many applications cannot tolerate the left and right edges looking different. One example is the display of an oscilloscope, where this difference could be misinterpreted as a feature of the signal being measured. Another example is in video processing. It is easy to make an FIR (finite impulse response) filter have a linear phase. This is because the impulse response (filter kernel) is directly specified in the design process. Making the filter kernel have left-right symmetry is all that is required. This is not the case with IIR (recursive) filters, since the recursion coefficients are what is specified, not the impulse response. The impulse response of a recursive filter is not symmetrical between the left and right, and therefore has a nonlinear phase.
EXAMPLES OF RECURSIVE FILTER
Two most important examples of recursive filters are:
- Kalman filter
- Gaussian recursive filter
The Kalman filter is an efficient recursive filter that estimates the state of a linear dynamic system from a series of noisy measurements. It is used in a wide range of engineering applications from radar to computer vision, and is an important topic in control theory and control systems engineering. Together with the linear-quadratic regulator (LQR), the Kalman filter solves the linear-quadratic-Gaussian control problem (LQG). The Kalman filter, the linear-quadratic regulator and the linear-quadratic-Gaussian controller are solutions to what probably are the most fundamental problems in control theory. Kalman filters are based on linear dynamical systems discretisized in the time domain. They are modelled on a Markov chain built on linear operators perturbed by Gaussian noise. The state of the system is represented as a vector of real numbers. At each discrete time increment, a linear operator is applied to the state to generate the new state, with some noise mixed in, and optionally some information from the controls on the system if they are known.
APPLICATIONS OF KALMAN FILTER
- Attitude and Heading Reference Systems
- Battery state of charge
- Brain-computer interface
- Chaotic signals
- Dynamic positioning
- Economics, in particular macroeconomics, time series, and econometrics
- Inertial guidance system
- Radar tracker
- Satellite navigation systems
- Simultaneous localization and mapping
- Speech enhancement
- Weather forecasting
Gaussian or Gaussian derivative filtering is in several ways optimal for applications requiring low-pass filters or running averages. For short filters with lengths of a dozen samples or so, direct convolution with a finite-length approximation to a Gaussian is the best implementation. However, for longer filters such as those used in computing running averages, recursive implementations may be much more efficient. Based on the filter length, we select one two popular methods for designing and implementing recursive Gaussian filters. Gaussian filtering is useful in at least two different contexts in digital signal processing. When the low-pass filter is a Gaussian, this combination yields a filter with a smooth impulse response that approximates a derivative of a Gaussian.
NON RECURSIVE FILTER
A digital filter that lacks feedback; that is, its output depends on present and past input values only and not on previous output values in non recursive filter
In non-recursive filters , the output y at the moment t is a function of only input values x(t-z),z>1 corresponding to the time moments t-z. A non-recursive filter is also known as an FIR (or Finite Impulse Response) filter.
A finite impulse response (FIR ) filter is a type of a digital filter. The impulse response, the filter's response to a Kronecker delta input, is finite because it settles to zero in a finite number of sample intervals. This is in contrast to infinite impulse response (IIR) filters, which have internal feedback and may continue to respond indefinitely. The impulse response of an Nth-order FIR filter lasts for N+ 1 sample, and then dies to zero
The difference equation that defines the output of an FIR filter in terms of its input is:
- x[n] is the input signal,
- y[n] is the output signal,
- bi are the filter coefficients, and
- N is the filter order - an Nth-order filter has (N + 1) terms on the right-hand side; these are commonly referred to as taps.
This equation can also be expressed as a convolution of the coefficient sequence bi with the input signal:
That is, the filter output is a weighted sum of the current and a finite number of previous values of the input.
An FIR filter has a number of useful properties which sometimes make it preferable to an infinite impulse response (IIR) filter. FIR filters:
- Are inherently stable. This is due to the fact that all the poles are located at the origin and thus are located within the unit circle.
- Require no feedback. This means that any rounding errors are not compounded by summed iterations. The same relative error occurs in each calculation. This also makes implementation simpler.
- They can easily be designed to be linear phase by making the coefficient sequence symmetric; linear phase, or phase change proportional to frequency, corresponds to equal delay at all frequencies. This property is sometimes desired for phase-sensitive applications, for example crossover filters, and mastering.
The main disadvantage of FIR filters is that considerably more computation power is required compared to an IIR filter with similar sharpness or selectivity, especially when low frequencies (relative to the sample rate) cutoffs are needed.
The impulse response h[n] can be calculated if we set in the above relation, where δ[n] is the Kronecker delta impulse. The impulse response for an FIR filter then becomes the set of coefficients bn, as follows
FIR filters are clearly bounded-input bounded-output (BIBO) stable, since the output is a sum of a finite number of finite multiples of the input values, so can be no greater than times the largest value appearing in the input.
To design a filter means to select the coefficients such that the system has specific characteristics. The required characteristics are stated in filter specifications. Most of the time filter specifications refer to the frequency response of the filter. There are different methods to find the coefficients from frequency specifications:
- Window design method
- Frequency Sampling method
- Weighted least squares design
- Minimax design
- Equiripple design.
The Remez exchange algorithm is commonly used to find an optimal equiripple set of coefficients. Here the user specifies a desired frequency response, a weighting function for errors from this response, and a filter order N. The algorithm then finds the set of (N + 1) coefficients that minimize the maximum deviation from the ideal. Intuitively, this finds the filter that is as close as you can get to the desired response given that you can use only (N + 1) coefficients. This method is particularly easy in practice since at least one text includes a program that takes the desired filter and N, and returns the optimum coefficients.
Software packages like MATLAB, GNU Octave, Scilab, and SciPy provide convenient ways to apply these different methods.
Some of the time, the filter specifications refer to the time-domain shape of the input signal the filter is expected to "recognize". The optimum matched filter is to sample that shape and use those samples directly as the coefficients of the filter -- giving the filter an impulse response that is the time-reverse of the expected input signal.
A major advantage of recursive filters over non recursive filters is that they are computationally simpler. For example, for any recursive linear filter, there is a functionally equivalent non-recursive linear filter. But the non-recursive variant may be characterized by an infinitely large window size and, hence, be difficult for practical implementation.