Adam Panagos / Engineer / Lecturer
Digital Filter Design Part 1: Frequency Response Review and Design Criteria
This set of videos provides a short introduction to digital filter design. We start by reviewing the concept of a system Frequency Response and work a variety of example problems. Then, we learn how to design filters by placing poles and zeros in the Z-domain. Finally, we introduce a time-domain criteria and a frequency-domain criteria that can be used to transform a continuous-time filter into an equivalent discrete-time filter.
Introduction to Digital Filter Design
Running Time: 9:26
This playlist of videos provides a short introduction to designing digital filters. In this first video, we review some basic filtering concepts. The Frequency Response of a filter describes how the amplitude and phase of an input signal change as a function of signal frequency. For an input of a single-frequency cosine, we derive the output signal showing how the input amplitude changes by a factor of |H(omega)| and the phase changes by an amount of arg(H(omega)). We call|H(omega)| the Amplitude Response of the system and arg(H(omega)) the Phase Response of the system. In subsequent videos, we’ll learn how to design digital filters that have desired amplitude response and phase response characteristics.
Computing the System Frequency Response from Difference Equation
Running Time: 6:51
In the previous video, we introduced the Frequency Response H(omega) as an important system quantity that describes how the amplitude and phase of each frequency component of a signal are changed. As we continue to review related concepts, this video examines how to compute the Frequency Response H(Omega) of a discrete-time system when given the time-domain difference equation of the system. Our strategy in this case is to take the Z-transform of the difference equation to find the system transfer function H(z). Then, we evaluate the transfer function on the unit circle by letting z = exp(j*Omega). This yields the desired frequency response H(Omega).
System Frequency Response Examples
Running Time: 6:40
Several examples problems are worked where the input to a discrete-time system is provided, and the output of the system is computed. This computation is performed by noting the frequency of the input signal, computing the frequency response of the system at this frequency, and then modifying the input signals amplitude by the Amplitude Response of the system, and modifying it’s phase by the Phase Response of the system.
Finding the System Frequency Response from Pole/Zero Plots
Running Time: 7:56
The transfer function of a general discrete-time linear system is analyzed. In general, the transfer function is a ratio of system poles and zeros. When determining the frequency response of the system, we replace z in the transfer function with z = exp(j*Omega) to obtain the system frequency response. By representing the pole and zero locations in polar form, a “nice” representation of the frequency response can be found. We see that the Amplitude Response of the system at a certain frequency is just a ratio of distances between a point on the unit circle to system zeros/poles. Similarly, the Phase Response of the system at a certain frequency is just a summation of angles from a point on the unit circle to the systems poles/zeros. Knowledge of this representation allows one to design filters with desired Amplitude/Phase characteristics by placing poles/zeros in the complex plane.
Matlab System Frequency Response from Pole/Zero Plots
Running Time: 6:04
A Matlab script is used to design a variety of different digital filters. This is accomplished by placing poles in and zeros in the Z-domain to get a desired filter amplitude response. The different examples shown in this video experiment with placing different poles/zero and then “walking around” the unit circle to think through how the system amplitude response changes as a function of frequency. Points on the unit circle that are close to a pole see a high peak in the amplitude response at the corresponding frequency. Points on the unit circle that are close to a zero see a low point in the amplitude response at the corresponding frequency. The Matlab script used to generate the pole/zero plots and the filter amplitude response plot can be download in the Member’s Area of my website.
Finite Impulse Response (FIR) and Infinite Impulse Response (IIR) Filters
Running Time: 6:48
This video provides a short introduction to two different classes of digital filters. Infinite impulse Response (IIR) Filters have a filter output that depends on current and past inputs, as well as current and past outputs. As such, these filters are recursive in nature, and a single impulse input will result in a non-zero response that lasts for all time. Thus, the terminology of an “infinite” length impulse response. Finite Impulse Response (FIR) filters have an output that does not depend on any current or past outputs. These filters are not recursive in nature. As such, a single impulse will result in a non-zero filter output only for a finite length of time, and thus the terminology of a “finite” length impulse response.
A Time-Domain Digital Filter Design Criteria
Running Time: 11:31
We derive a time-domain filter design criterion in this video. When provided the impulse response of a continuous-time system h(t), our goal is to design an equivalent digital filter with impulse response h[k]. We see that one way of accomplishing this is with a time-domain criteria that says h[k] = Th(kT). In other words, the impulse response of the digital filter is constructed by sampling the impulse response of the continuous-time system, and then scaling the resulting samples by the sampling period T. In the limit as T goes to 0, the digital filter is equivalent to the original continuous-time system. This video rigorously derives this theoretical result. In a subsequent video, we’ll use this approach to design a specific filter.
A Frequency-Domain Digital Filter Design Criteria
Running Time: 6:27
We derive a frequency-domain filter design criterion in this video. When provided the transfer function of a continuous-time system H(z), our goal is to design an equivalent digital filter with transfer function H[z]. We see that one way of accomplishing this is with a frequency-domain criteria that says H[z] = H((2/T)*(z-1)/(z+1)). In other words, the transfer function of the digital filter is constructed by replacing the continuous variable s, with the quantity (2/T)*(z-1)/(z+1). This mapping from s to z is called the bilinear transformation. In a subsequent video, we’ll use this approach to design a specific filter