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



Overflow in fixed-point, or integer, arithmetic usually must be avoided.  Most fixed-point DSP chips provide a "saturation" option in order to prevent wrap-around when overflow occurs in 2's-complement arithmetic, but this only serves to minimize the possibility of exciting an overflow-induced oscillation in an IIR filter— the filter output is still in error.

DISPRO performs scaling of the "gain" coefficient of each biquad in the cascade of an IIR filter so that the gains — i.e. the peaks of the frequency responses of the filter — from the input of the filter to the output of each biquad is 1.0 (zero dB) or less.  Usually it is possible to arrange an ordering of the biquad sections so that this is possible.  If no ordering of the biquad sections — not largest poles first, smallest poles first, or some user specified order — results in unit gains, my experience is that the peak gain is usually less than 3 dB, requiring a scaling down of the input by only one bit. 

For the majority of IIR filter designs the gain scaling procedure in DISPRO successfully achieves zero dB or less gain from the input of the filter to the outputs of each biquad section.  In order to take advantage of this scaling it is necessary to implement the filter in what I refer to as the merged-biquad form.  The signal-flow graph below is for a 5th-order filter.

The important property of this filter topology is that the state variables are all present and past values of the output of one of the biquad sections.  Because of the scaling, none of these variables will overflow when the input is a unit amplitude sine wave at any frequency.  For an arbitrary signal the delay distortion of the filter can cause a slight overflow — usually less than a few dB.  The performance difference between the Merged-Biquad and the Canonic forms can be explored in the time-response module of DISPRO.

Details will be found in the documents Merged_Biquad.pdf and M-B_Development.pdf.

Two C language programs will be found in MBIQ.ZIP, which illustrate the use of the merged-biquad filter structure in computing the impulse or step response of a filter.  MBIQFDF.C uses the coefficients from a .FDF file, as produced by DISPRO; MBIQTFF.C uses the filter coefficients from a .TFF file as produced by STOZXFR.  Each of these programs has a different implementation scheme in the function which performs the merged-biquad computation.  (Note that the .EXE files in MBIQ.ZIP are DOS executables.)

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]