The N tap FIR filter consists of N-1 delayers, N multiplyers, each with its correspondant values a(j), and N-1 adders, or a global adder. The abbreviation FIR stands for Finite Impulse Response. Such is the characteristic of the impulse response of FIR filters. Because of the non-recurse filter structure, it is finite in duration. Actually it has a duration of N, where N is the number of taps of the filter.

**Figure 1: Structure of a FIR Filter**

**Figure 2: Convolution formula of a FIR Filter**

One noticeable feature of FIR filters in general is their linear phase,
because the delay is equal for all frequencies. This is especially important
in video technology.

The filter design process is always a compromise among filter length, transition width and passband / stopband deviation (in the bandpass case). Not all of these specifications can be choosen arbitrarily.

**Figure 3: ScreenShot of FIR Filter Designer GUI**

The Remez algorithm also demands very high numerical precision, so the FIR Filter Designer V2.3 uses 64-bit double math precision arithmetic for all calculations.

The program provides the possibility to scale the calculated filter taps to a certain bitwidth. This is of particular interest for all people who want to implement their filter design on a DSP with integer arithmetic.

**Figure 4: ScreenShot of Remez Design Method GUI**

To form a casual filter, the Fourier series is truncated and shifted. Truncating the Fourier series causes a phenomenon called the "Gibbs effect" - a spike occurs wherever there is a discontinuity in the desired magnitude of the filter. To counteract this, the filter coefficients are convolved in the frequency domain with the spectrum of a window function, thus smoothing the edge transitions at any discontinuity. This convolution in the frequency domain is equivalent to multiplying the filter coefficients with the window coefficients in the time domain.

The window design method starts with a very long series, in theory infinite, that is truncated to the desired length. Coefficients beyond the truncation are simply ignored. The window removes even more information. The equiripple method optimizes the series for a given number of coefficients.

**Figure 5: ScreenShot of Window Design Method GUI**

**Figure 6: ScreenShot of Data Output Control Window**

**Figure 7: ScreenShot of Data Output Window**

- REMEZ Fortran-Source
- OPTFIR Fortran-Source
- WFIR Fortran-Source

© Created by harald.zottmann@cellsoft.de

Last modified 05. February 2018