1. Digital Filter Design Process
Digital filters are used in a wide variety of signal processing applications, such as spectrum analysis, digital image processing, and pattern recognition. Digital filters eliminate a number of problems associated with their classical analog counterparts and thus are preferably used in place of analog filters. Digital filters belong to the class of discretetime LTI (linear time invariant) systems, which are characterized by the properties of causality, recursibility, and stability. They can be characterized in the time domain by their unit/impulse response, and in the transform domain by their transfer function. Obviously, the unitimpulse response sequence of a causal LTI system could be of either finite or infinite duration and this property determines their classification into either finite impulse response (FIR) or infinite impulse response (IIR) system. To illustrate this, we consider the most general case of a discretetime LTI system with the input sequence denoted by x(kT) and the resulting output sequence y(kT). As it can be seen from Equation 1, if for at least one n, a_{v}≠ 0, the corresponding system is recursive; its impulse response is of infinite duration (IIR system). If a_{v}=0, for all n, the corresponding system is nonrecursive (FIR system); its impulse response is of finite duration and the transfer function H(z) is a polynomial in z^{–1}. Commonly,
b_{µ} is called the µ^{th} forward filter coefficient and a_{v} the n^{th} feedback or reverse filter coefficient. For a detailed discussion, refer to standard signal processing textbooks such as Reference 1.
Equation 1
Common Steps in the Digital Filter Design Process
 Determine the desired response. The desired response is normally specified in the frequency domain in terms of the desired magnitude response and/or the desired phase response
 Select a class of filters (for example, linearphase FIR filters or IIR filters) to approximate the desired response
 Select the best member in the filter class
 Analyze the filter performance to determine whether the filter satisfies all the given criteria
 Implement the best filter using a generalpurpose computer, a DSP, or in an FPGA
2. NI LabVIEW Digital Filter Design Toolkit
The NI LabVIEW Digital Filter Design Toolkit (DFDT) is a complete filter design and analysis software that you can use to design digital filters to meet required filter specifications. It is an addon that installs into LabVIEW (References 2 and 3), a software development environment that employs a graphical programming language that is both easy to learn and extensible. With the DFDT, users work within the LabVIEW development environment to design, analyze, and implement a variety of IIR and FIR filters. Working within the LabVIEW environment has a number of advantages, among them the ability to do filter testing with simulated signals (generated algorithmically) or live signals (such as those acquired using a standard National Instruments data acquisition device or a sound card). You can view the time waveforms or the spectra of both the input signal and the filtered output signal to show how the current design performs on realworld signals. Examining how the filter performs on a live signal is useful to validate the design before you deploy it in a custom LabVIEW application, or perhaps on an embedded DSP or FPGA.
Related Links
3. Filter Design Options
The DFDT includes both programmatic and interactive tools for filter design. Using the programmatic tools, you can easily sweep design parameters and perform other automated tasks. The interactive tools are excellent teaching tools in that they provide immediate feedback after specifying desired filter characteristics.
Two interactive design tools are available – one for classical filter design and the other for design through placement of poles and zeros. Both tools are LabVIEW Express VIs, which means that the results are immediately available for use within the LabVIEW graphical development environment.
Figure 1. With the Classical Design Express VI, users can specify filters by typing in passband/stopband frequencies and other parameters. Design results are shown immediately as magnitude response and polezero plots.
Using the Classical Design Express VI (Figure 1), you can design a variety of filter types by adjusting the filter specifications by entering numbers or by changing the passband and stopband cursors in the magnitude vs frequency graph in the same panel. As the cursors move, the polezero plot and the textbased interface update dynamically to set the values for the desired filter. The interface supports FIR/IIR filter types including lowpass, highpass, bandpass, and bandstop. For FIR, design methods include Kaiser window, the DolphChebyshev window, and the equiripple. IIR design methods include elliptic, Chebyshev, inverse Chebyshev, and Butterworth.
Figure 2. With the PoleZero Placement Express VI, you can design a filter by placing poles and/or zeros directly on the complex plane. The results of the design appear immediately as the magnitude response.
A second interactive design option is the PoleZero Placement Express VI (Figure 2). With this tool, you can interactively place and move poles and zeroes on the zplane. To do so, you can enter complex value coordinates to specify exact values or click on a graph of the complex half plane to move or place them with the mouse. The magnitude response of the resulting filter updates immediately as you place or move poles/zeroes.
4. A Design Example
As an example, we will consider the design of an IIR lowpass filter with the specifications shown in Table 1.
Specification

Value

Filter type

Lowpass

Sampling frequency

2 kHz

Passband edge

400 Hz

Passband ripple

0.1

Stopband edge

500 Hz

Stopband attenuation

0.1

Table 1. Desired Filter Parameters for This Design Example
To interactively specify this design, the parameters are entered in the classical filter design Express VI dialog (Figure 3). Initially, with the design method set to elliptic, these parameters require a 3rdorder design.
Figure 3. The desired filter parameters can be entered directly on the user interface of the Classical Filter Design Express VI.
We can now select other designs and get an immediate feel for the required filter order as well as the actual filter shape. With the previous specifications, the Butterworth filter requires 10thorder, the Chebyshev and inverse Chebyshev require 5thorder, and the elliptic filter requires only a 3rdorder IIR filter.
After initially specifying a filter through the Express VI interface, the resulting design can be further analyzed to show other filter characteristics such as the impulse response, step response, group delay, and phase delay. To view these and many other characteristics, you can feed your design into one or more filter analysis tools that are installed by the DFDT. Figure 4 shows graphs of the results of such analysis.
Figure 4. After specifying a design, you can plot common analysis such as magnitude response, phase response, impulse response, and step response.
The filter coefficients that are the result of the design are directly available in forms such as direct form I, as the forward (b_{µ}) and reverse (a_{v}) filter coefficients from Equation 1, and 2ndorder cascade form.
Once we have the filter designed, we have several alternatives for testing the design. For one, we can apply it to a test signal such as a computergenerated 50 Hz, 1 V_{pp} sine with noise (Figure 5).
Figure 5. A plot of the filtered versus unfiltered test signals shows the action of the filter on a test signal.
Other alternatives would involve checking the design by applying it to a realworld signal. In these cases, the filter can be applied by either the PC or by an embedded target such as an FPGA or a DSP. For PCbased filter validation, you can acquire a live signal by using a sound card or a National Instruments data acquisition device. The acquired data then passes through the currently designed filter, and analysis such as plots of the input and output waveforms and spectra can be generated.
The DFDT includes automatic code generation tools that can assist with fixedpoint filter validation and deployment for an FPGA or DSP. To target an FPGA, the DFDT can generate integer LabVIEW code or singlecycle timed loop LabVIEW code that can be used with LabVIEW/FPGA to directly target embedded FPGA targets such as those found on National Instruments RIO acquisition/signal generation hardware for the PCI and PXI platforms. For fixedpoint DSP deployment, the DFDT can generate ANSI C code that can be compiled and deployed using vendorspecific DSP development tools.
5. Summary
Digital filter design and implementation consist of several interacting steps and call for efficient design and simulation tools. To facilitate this, National Instruments has developed the graphical design and analysis tools in the the LabVIEW Digital Filter Design Toolkit. The graphical user interface greatly simplifies the specificationdesigntest cycle at the heart of digital filter design. The result of repeated interactive graphical design sessions is that the designer can acquire a feel for how design parameters affect filter performance.
6. References
 S.K.Mitra, J. Kaiser, Handbook for Digital Signal Processing, 1993 John Wiley and Sons, Inc.
 J. Kodosky, J. McCrisken, G. Rymar, Visual Programming Using Structured Dataflow, Proceedings of 1991 IEEE Workshop on Visual Languages, October 811, 1991/Kobe, Japan.
 R. Jamal, L. Wenzel, The Applicability of the Visual Programming Language LabVIEW to Large RealWorld Applications, Proceedings of 1995 IEEE Symposium on Visual Languages, September 48, 1995/Darmstadt, Germany.
 J. Kodosky, E. Perez, Linear Systems in LabVIEW, National Instruments Application Note 08, January 1991.
 National Instruments, LabVIEW Digital Filter Design Toolkit User Manual.