Digital Filter Design & Simulation

DISPRO Background
DISPRO Features
DISPRO User Manual
DISPRO Download
StoZ Background
StoZ User Guide
StoZ Download
Contact Me
Guest Book
Win7 Operation



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.


{Copyright John O'Donnell 2005}


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:

  • IIR and FIR filter design
  • Processing of filter coefficients
  • Computation and plotting of frequency response data
  • Evaluation, simulation, and plotting of time-domain behavior
  • FFT-based spectral analysis and plotting

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 over-ridden by the user). Each subdirectory used will have a DISPRO-created 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 DISPRO-created 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 fixed-point, 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 frequency-domain and time-domain properties of a filter may be evaluated for any wordlength. When the floating-point 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 finite-precision 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 finite-wordlength integer arithmetic can be determined for that input signal. In DISPRO/Professional this is a simulation of the actual filter operation using 2's-complement 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 close-up detail.

DISPRO provides spectral analysis capabilities of a general nature. Time domain data may be entered through the keyboard, read from a user-created disk file, or obtained from a filter data file. For example, the spectra of the input and output signals involved in a filter time-domain 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.

  • Specification of the filter characteristics is done through an interactive dialogue using a graphical representation of the filter shape. A filter data file is created, and the filter specifications and coefficients are written to it.
  • Frequency responses may be computed and plotted for the filter using any coefficient wordlength. Response data may also be written to the filter data file for later analysis, or selected values may be displayed on the screen and/or printed on the line printer. Plotting of frequency response data uses both automatic and user-controlled scales. At the user's option any screen plot can be transferred to the printer.
  • The time response of the filter can be evaluated in the actual arithmetic of the target processor. Computation of the impulse response allows evaluation of the effects of roundoff noise on stopbands. Processing a set of data samples through the filter will show the actual frequency discrimination behavior in finite-precision arithmetic. Time response samples may be written to the filter data file for later analysis with the FFT modules. A graphical mode, using floating point arithmetic only, allows easy determination of signal overflows internal to the filter structure.
  • The spectrum of the output samples computed by the time response module is evaluated using the Spectrum menu selection. Because the underlying algorithm is the FFT, the number of time samples processed will be a power of 2. Data windowing is available. The spectrum module contains all facilities for printing and plotting of spectral data.


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

  • FP = End of passband
  • FA = Beginning of stopband
  • AMAX = Maximum passband attenuation
  • AMIN = Minimum stopband attenuation

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 cutoff--actually the ratio of FP to FA. Because DISPRO uses the technique of the bilinear z-transform 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 "pre-warped" 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 lowpass-to-bandpass 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 pre-compute 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:

  1. Use the upper transition ratio,
  2. Use the lower transition ratio, or
  3. Use the mean of the upper and lower transition ratios.

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 finite-wordlength 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 sections--biquads--so 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 complex-conjugate poles of each biquad; and finally the multiplier coefficient--labelled A in DISPRO's printout--for 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 "merged-biquad" implementation form it gives extremely good protection against overflow occurrences


This discussion applies to the Parks-McClellan-Remez (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 -

Home ] DISPRO Background ] DISPRO Features ] [ DISPRO User Manual ] DISPRO Download ] Merged-Biquad ] StoZ Background ] StoZ User Guide ] StoZ Download ] Contact Me ] Consulting ] Guest Book ] Win7 Operation ]

[This is the personal web site of Dr. John O'Donnell]