Digital filters play a central role in modern digital signal processing (DSP) systems. Finite impulse response (FIR) filters can provide solutions with guaranteed stability and linear phase. However, the main disadvantage of conventional FIR filter designs is that they become computationally complex, especially in applications demanding narrow transition bandwidths. Therefore, designing FIR filters with very stringent specifications and a low complexity is currently an important challenge. In this chapter, a review of the recent methods to efficiently design low-complexity linear-phase FIR filters is presented. The chapter starts with an introduction to linear-phase FIR digital filters. Then, an overview of the design methods that have been developed in literature to design low-complexity FIR filters is presented. Finally, the most common and recent of these methods along with their corresponding special structures are explained.

Top## Introduction

A discrete-time signal is a sequence of numbers, so-called samples. A sample lasts *T*_{s} seconds, then another sample appears during the next *T*_{s} seconds and so on, forming the sequence. The time *T*_{s} is called sampling period and the number produced in the *n*-th sampling period (i.e., after *n* times *T*_{s} seconds) is denoted as *x*(*nT*_{s}). For analysis purposes it is usual to assume that *x*(*nT*_{s}) = 0 for negative values of *n* and, in general, the samples can be *complex numbers*. If so, the signal is a complex signal. In these analyses, the digital frequency *f* is a value that expresses how much of a cycle of a sinusoidal wave is represented by a sample. In general terms, discrete-time signals may contain information for different values of *f*.

A digital filter is a system that receives a discrete-time signal and returns another discrete-time signal with modified characteristics (Antoniou, 2006). Many digital filters exhibit the *Linear Time-Invariant* (LTI) property. When the input signal *x*(*nT*_{s}) has the value 1 for *n* = 0 and 0 for other values of *n*, the output signal of a LTI digital filter is called impulse response. LTI digital filters are often classified by the duration of its impulse response as Infinite-duration Impulse Response (IIR) or Finite-duration Impulse Response (FIR) filters (Tan & Jiang, 2013). Additionally, a LTI digital filter is generally described by its frequency response, which is the response of the filter to a *complex exponential signal* with frequency 2*πf*. The frequency response is a *complex function* of *f* and is periodic over *f*, with a period of 1/*T*_{s}. Because of this periodicity, the frequency response is just observed in the range of values from *f* = –1/2*T*_{s} to *f* = 1/2*T*_{s}. As a complex function, the frequency response has two functions associated with it: its *magnitude response* and its *phase response*.

When the values of the impulse response are real, the magnitude response is symmetric and the phase response is anti-symmetric around *f* = 0 (Taylor, 2012). Thus, these responses are just observed in the range of values from *f* = 0 to *f* = 1/2*T*_{s}. Systems with real impulse response are used in a wide variety of applications, being one of the most common the traditional low-pass filter. This filter passes the frequency components of the input signal that range from 0 to *f*_{p} and rejects the frequency components of the signal that range from *f*_{s} to 1/2*T*_{s}, with 0 < *f*_{p} < *f*_{s} < 1/2*T*_{s}. The values *f*_{p} and *f*_{s} are the passband edge and the stopband edge frequencies, respectively, whereas the range from 0 to *f*_{p} is the passband, the range from *f*_{s} to 1/2*T*_{s} is the stopband and the difference *f*_{s} – *f*_{p} is the transition band. The ideal values of the magnitude response in passband and stopband are, respectively, 1 and 0. For a realizable filter, an acceptable deviation from these ideal values must be specified. Usually, these deviations are represented as the numbers *δ*_{p} and *δ*_{s}, respectively. Figure 1 shows the specifications of the magnitude response of a low-pass filter, along with the ideal response and the actual magnitude response of the filter, denoted as |*H*(*f*)|. For analysis purposes it is usual to assume *T*_{s} = 1, i.e., *x*(*nT*_{s}) = *x*(*n*). Thus, in Figure 1 the range of interest of values *f* is from 0 to 1/2.

*Figure 1. *Magnitude response specifications of a low-pass filter