Digital Filter
Design &
Simulation 

USER MANUAL The original user manual was created from a combination of DOS and Windows word processors (XyWrite, AmiPro) , and graphics files that required a number of pages to be pasted up. Thus, no single electronic form of the user manual exists. Sections one, two, three, six, and the supplement from the user manual have been updated (using XyWrite and AmiPro) , printed, and the hard copy scanned to TIF image files. These TIF files have been converted to PDF format and are available here for downloading. The entire manual is available in the single file DISPRO25_Man.pdf (courtesy of Bob Crocker, Sandia Labs.). If you have difficulty downloading a large file, or wish to look at only one section of the manual, then the individual sections are available for download: Manual_1.pdf provides information for initializing DISPRO, for accessing the various modules, and for working with DISPRO's data file structure. Manual_2.pdf contains a summary of digital filter characteristics. Section three of the user manual is a moderately detailed presentation of the use of the various DISPRO modules; because it is a lengthy section it was divided into two files, Manual_3A.pdf and Manual_3B.pdf. A detailed example of an IIR filter design is given in Manual_4.pdf. Although the use of Basic is less prevalent today, the structure of the data files used in DISPRO, and methods for accessing their content, is illustrated in Manual_5.pdf. Manual_6.pdf is a compressed summary of most of the standard operations of DISPRO. Supplement.pdf contains a discussion of features added to DISPRO but not included in the body of the user manual. The quality of any pages printed from these PDF files is good because the originals were scanned with 300 dpi resolution. What follows on the remainder of this page is a short introduction to DISPRO. INTRODUCTION to DISPRO {Copyright© John O'Donnell 2005} GENERAL INFORMATION DISPRO consists of 17 executable modules and 7 data files. The supervisory module has the name DISPRO25.EXE; it performs initialization, processes menu selections, and gets data file names when needed. When a menu selection is made, control is passed to the proper processing module. When the activity of the selected processing module is finished, control passes back to the DISPRO supervisor (i.e., to the supervisory module DISPRO25.EXE). When control resides in the DISPRO supervisor then you, the user, will be said to be at the "DISPRO command level,". The processing modules form five groups:
All input for the selected filter design module will come from the keyboard. The filter specifications and the coefficients calculated by the design module will be written to a filter data file. This filter data file is named and created automatically (but the name can be overridden by the user). Each subdirectory used will have a DISPROcreated directory file named FILES.INX which catalogs the filter data files created by the filter design modules. DISPRO must create FILES.INX, so do not use FILES.INX as the name of any of your files. The names of the filter data files will be unique within each subdirectory. All DISPROcreated filter data files are in ASCII format and thus can also be viewed using any text editor. The coefficients calculated by the filter design module are written to the filter data file in floating point precision. Rounding down to a shorter word length, as is required when the filter is to be implemented using fixedpoint, or integer arithmetic, is done in the module ROUNDCOF. The coefficients can be quantized to any wordlength between 4 and 24 bits. The quantized coefficients can be appended to the filter data file. The frequencydomain and timedomain properties of a filter may be evaluated for any wordlength. When the floatingpoint precision coefficients are used for frequency response computation then the purpose is to document the behavior of the filter as described by its frequency domain specifications. Computation of a frequency response using quantized coefficients serves to illustrate the degree of sensitivity of the filter performance to the use of finite precision coefficients — i.e., the degree to which the poles of IIR filters, and the zeros of IIR and FIR filters, are modified by the finiteprecision coefficient values. Similar statements can be made about the time domain response. A file containing a sampled input signal can be created by the user and the response of a filter using a specified finitewordlength integer arithmetic can be determined for that input signal. In DISPRO/Professional this is a simulation of the actual filter operation using 2'scomplement arithmetic. The frequency and time response data may be plotted on the screen, and a hardcopy of the plot may be created on the line printer. A broad range of scale values may be selected for time, frequency, and amplitude so that the response data may be viewed globally or in closeup detail. DISPRO provides spectral analysis capabilities of a general nature. Time domain data may be entered through the keyboard, read from a usercreated disk file, or obtained from a filter data file. For example, the spectra of the input and output signals involved in a filter timedomain response evaluation may be generated with the spectral analysis modules, and plotted on the screen or printer. To conclude this brief introduction to DISPRO it is instructive to look at the steps in a complete design and evaluation process for an Elliptic IIR filter. When each of the designated modules is invoked there will be an additional set of subcommands, menus, or prompts.
A DISCUSSION OF THE DESIGN PROCESS: IIR FILTERS It is not unusual to approach the design of a filter without specific values for all of the critical frequencies, having only a general idea of passband and stopband locations. To aid you in the design process DISPRO provides full capability for adjusting all parameters of the filter to achieve a best compromise between performance and complexity (as measured by filter order). The procedure is fully interactive; all computations are done in DISPRO. Before discussing this interactive process it may prove helpful to review the way in which the order of IIR digital (and analog) filters depends upon the filter specification. We will use the following notation
and discuss lowpass and highpass filters first. Filter order is proportional to AMIN and inversely proportional to AMAX; i.e.; small passband ripple and large stopband attenuation mean high order. In addition, the filter order is inversely proportional to the transition ratio which measures the sharpness of cutoffactually the ratio of FP to FA. Because DISPRO uses the technique of the bilinear ztransform to convert analog prototypes to digital designs, the transition ratio is not just FP/FA (for lowpass) or FA/FP (for highpass) but the ratio of tan(πFP/FS) and tan(πFA/FS), the "prewarped" critical frequencies, where FS is the sampling frequency. For bandpass and bandstop filters the critical frequencies for the pass and stopbands are denoted by FP1, FP2, FA1, FA2. Here we have two possible transition ratios. DISPRO uses a lowpasstobandpass transformation method which requires that these two ratios (using pre warped values) be equal. This is called the geometric symmetry constraint. It is not necessary for you to precompute these ratios; DISPRO will perform all necessary adjustments. After the filter parameters have been specified, the order of the filter is computed. But before the order is computed it is necessary to satisfy the geometric symmetry constraint for bandpass and bandstop filters. If the values of FP1, FP2, FA1, and FA2 do not yield equal transition ratios then DISPRO offers you three choices:
These choices are presented to you in terms of new values for the critical frequencies. You establish the rule that is used: preserve either the specified passband edge frequencies, or preserve the specified stopband edge frequencies. When the order is computed it is seldom an integer. You are presented with the computed value and asked to select one of the two possible integer orders. This selection is not an irrevocable choice; DISPRO allows you to try both values for filter order, albeit one at a time. The choice of one value for filter order now sets the stage for adjusting filter specifications in conformity with the selected value of order. Once again, you decide whether the passband frequencies or the stopband frequencies will not be modified. For each choice of filter order there are three possibilities for parameter adjustment. You may try all three, for both choices of filter order, to obtain six variations on your original set of specifications. For bandpass and bandstop filters the three choices for satisfying the transition ratio condition result in a total of eighteen different sets of specifications. If none of these six or eighteen sets of specifications is satisfactory you may try another set of initial specifications. This interactive process of iteration should give you a good idea of the quantitative range of tradeoffs between filter performance and order which is available. Having decided on an order and a set of specifications you can proceed to the design stage where the digital filter coefficients are computed, a disk file is created, and the specifications and coefficients written to this disk file. The specifications and coefficients may be displayed on the screen and printed. For implementation in finitewordlength arithmetic it is important that the IIR filter be scaled so that the possibility of arithmetic overflow is minimized. This is done in DISPRO in three steps: first the poles and zeros of the filter are grouped into second order sectionsbiquadsso that the peak of the frequency response is minimized; then the biquads are put into a sequence which is a function of the magnitudes, or Q's, of the complexconjugate poles of each biquad; and finally the multiplier coefficientlabelled A in DISPRO's printoutfor each biquad is adjusted so that the frequency responses from the input of the filter to the outputs of each biquad has a peak of 0 dB or less. Although this scaling process is not sufficient to prevent overflow under all conditions, when coupled with the "mergedbiquad" implementation form it gives extremely good protection against overflow occurrences A DISCUSSION OF THE DESIGN PROCESS: FIR FILTERS This discussion applies to the ParksMcClellanRemez (PMR) design only. The difference from the IIR discussion is that it is the width of the transition band that is the key. Thus, the stopband edges for a bandpass filter must be chosen so that both transition bands have the same width. Actually, this is not an absolute necessity but the length of an FIR filter is determined by the narrower of the two transition bands so you really gain nothing by having the bands of different widths. More importantly, the PMR design process usually fails when one of the transition bands is more than 50% greater than the other. DISPRO monitors the transition band width values and issues warnings which are intended to prevent you from getting into trouble. Of course you can always ignore the warning and see for yourself what will happen. [What usually happens is that there is a peak of the frequency response in the wider transition band. This peak can be as high as +10 to +20 dB, thus destroying the filter characteristic.]  END  
[This is the personal web site of Dr. John O'Donnell]
