- Butterworth IIR-design
- Chebyshev Type1 IIR-design
- Chebyshev Type2 IIR-design
- Elliptical IIR-design
- Linear & minimum phase FIR-design for almost arbitrary magnitude constraints (equiripple)
- Linear & minimum phase FIR-design for almost arbitrary magnitude constraints (maximally flat passband response)
- Direct Z-plane Design via Differential Evolution (FIR and IIR)
- Arbitrary Magnitude Constraints (Z-plane design)
- Arbitrary Group Delay Constraints (Z-plane design)
- Fixed FIR or IIR prefilter possible (Z-plane design)
- Constraints on pole and zero radii (Z-plane design)
- Built-in coefficient quantization up to 48 bit (geared towards FPGA implementation)
- Matlab® -friendly output file

FIWIZ is a constraint based design program for IIR as well as FIR filters as needed in digital signal processing. Fiwiz is geared towards features which are difficult if at all to find in other filter design programs. If your filter requirements are unconventional and can't be handled by standard filter design programs, then Fiwiz might be your program of choice. FIWIZ allows a lot of freedom concerning the specification of constraints if the filter design is done directly in the Z-domain. As an add-on FIWIZ also supports some of the classical filter design methods.

- Butterworth IIR-design
- Chebyshev Type1 IIR-design
- Chebyshev Type2 IIR-design
- Elliptical IIR-design

- Equiripple FIR-design
- FIR-design with maximally flat passband response
# Z-Plane design

Besides classical methods FIWIZ implements the innovative filter design by Differential Evolution (DE). This approach designs filters by using poles and zeros as parameters which are automatically evolved to meet the constraints set forth by the user. There are several types of constraints that can be defined, allowing for the following filter properties:

## Arbitrary magnitude constraints

This feature allows for multiband filters, differentiators, sinc compensated filters, Jakes-filters for wireless channel simulation, gaussian filters, and others. See a multiband filter and a differentiator as examples below. The y-axis is the magnitude in dB and the x-axis denotes the normalized frequency:If the upper and lower constraint are equal then a least squares fit will be computed. For a simple example see the next picture:

## Arbitrary group delay constraints

Applications are mainly classical lowpass, highpass, bandpass, and bandstop filters which should exhibit approximately linear phase in the passband(s) but not necessarily in the stopband(s). This way the filter degree can often be reduced considerably compared to exactly linear phase FIR filters. See an IIR graphics codec as an example:## Coefficient Quantization

FIWIZ allows to include coefficient quantization in the filter design, i.e. quantization is incorporated into the design as opposed to quantizing the coefficients after the filter has been designed with high precision coefficients. This feature, which is often crucial for FPGA-based filter implementation, is only available for the innovative, Differential Evolution based Z-plane design. For the classical filter design methods (butterworth, chebyshev, inverse chebyshev, elliptical) the quantization is applied after the filter has been designed (as most common off-the-shelf filter design programs do). See an example screen shot of the corresponding input screen (This time with Windows XP®):## Definition of a prefilter with constant coefficients

Defining a prefilter has many applications like presetting specific zeroes to suppress DC or the 50/60Hz powerline frequency, accomodating filters which are already in a design and cannot be removed, or setting a frequency response to equalize. A well-known example for the latter is sinc compensation needed for D/A-conversion. An example for the input screen is shown below:## Minimum phase filters

Some applications don’t require any specific phase response, and hence the filter degree can be minimized by using minimum phase filters. Minimum phase can be easily enforced by constraining the zero radii to be inside or on the unit circle.## Minimum delay and fractional delay filters

By allowing to freeze the group delay constraints FIWIZ assists in the design of minimum delay or fractional delay filters.## Other features

#### Allpass design

The phase of an existing IIR-filter can be linearized with an allpass approach.#### IIR-filters with reduced impulse response length

By constraining the pole radii the impulse response length of an IIR filter can be reduced. It also assists in designing IIR-filters with maximally flat frequency response by forcing the poles back into the unit circle.#### Output of poles and zeroes

The results file of FIWIZ contains not only the filter coefficients of the direct form 1 (or 2) or first and second order sections, but also the pole and zero radii as well as angles.#### MATLAB friendly output format

FIWIZ's output can be directly posted on to MATLAB's command line interface for further analysis.#### Storage and retrieval of configuration files

The settings of constraints and design parameters can be stored and retrieved so that there remains only little retyping if a previous filter design shall be altered.#### Platform independence through JAVA technology

FIWIZ is an application that has been written completely in JAVA, and hence it runs on any platform which supports the JAVA virtual machine (e.g. Windows 7,8,10, Solaris, or Mac OS). First you have to get the Java runtime environment (JRE) for your platform. It allows so-called Java Bytecode to run on your machine (this is the format which Fiwiz comes in). For convenience FIWIZ is also available as a Windows® .exe version which runs on Windows 2000, XP, Vista, 7, 8, and 10.#### Wizard based approach

FIWIZ's wizard based approach makes using FIWIZ almost self-explanatory. The sequence of operations is evident.#### Versatile plotting

Thanks to the richly featured plotting engine PtPlot by the University of Berkeley you can watch various data online while the filter is designed. Resizing of the plots as well as zooming in and out is possible.# Full Program and Manual

If you want to know more about Fiwiz you can download the user manual in A4 format. If you want to try the code you can download the full version of FIWIZ3.1 for the Java virtual machine, 32 bit, or the Windows® .exe version. It includes the Java sources, the user manual, and the design specification. For more information or suggestions for improvement send me an Email.

# FIWIZ Configuration File

Many people have asked for the configuration file format of FIWIZ because they want to automatically generate a configuration file via MATLAB or some other program rather than typing the data into the GUI of FIWIZ. To inspect the file format click here. As a further convenience a Microsoft Excel ® frontend is now provided.

# More information on FIWIZ

The book "Differential Evolution - A Practical Approach to Global Optimization" by Ken Price, Rainer Storn, and Jouni Lampinen (Springer, ISBN: 3-540-20950-6) provides the latest findings concerning DE. It also contains a chapter about the inner workings of FIWIZ when it comes to Z-plane filter design as described above.

# Other Books by Rainer Storn

The book "How to Become an A-Student in Science and Engineering" is supposed to help students to improve their efficiency in their science or engineering studies. It contains many study tips that have far-reaching impact, also into their professional lives.