FIR-Filter

Symbol:

Description:

This function block represents a FIR filter. These filters are one of two primary types of digital filters used in Digital Signal Processing (DSP) applications (the other type being IIR). "FIR" means "Finite Impulse Response".

You can realize the following functions with a FIR filter:

- Low-pass

- High-pass

- Band-pass

- Band-stop

Operation:

Parameter:

Designs a finite impulse response (FIR) filter based on the windowing method. The windowing FIR filter design method is a straightforward technique implemented by expanding the frequency response of an ideal filter in a Fourier series and then truncating and smoothing the response using a window.

Window type: Hamming

Sampling rate:

The sampling rate is the reciprocal of the cycle time.

Corner frequencies:

Low-pass:

Lower = 0 and

0 < Upper < half-the-sampling rate

High-pass:

0 < Lower < half-the-sampling rate and

Upper = half-the-sampling rate

Passband:

0 < Lower < Upper < half-the-sampling rate

Stopband:

0 < Lower < Upper < half-the-sampling rate

Tabs / Coefficients (filter order):

A FIR "tap" is simply a coefficient/delay pair. The number of FIR taps, is an indication of

1) the amount of memory required to implement the filter,

2) the number of calculations required, and

3) the amount of "filtering" the filter can do; in effect, more taps means more stop band attenuation, less ripple, narrower filters, etc.

Signals:

Name

I/O

Type(s)

Function

X

I

FLOAT

Input signal

Y

O

FLOAT

Output signal

Comments:

The calculation of a FIR-filter with a high number of coefficients (max. 999) requires substantial resources in the target system (device).

At the below marked reference values, means the sample (= synchronized measuring rate) and the number of coefficients, the shown number of filter blocks can be used in one application.

Number of coefficients | Sampling rate 1000 | Sampling rate 500 | Sampling rate 200 | Sampling rate 100
101 | 4 | 20 | 40 | 100
251 | 2 | 8 | 16 | 40
501 | 1 | 4 | 8 | 20
999 | 0 | 2 | 4 | 10

These values are rough approximations. The real numbers depends on the performance of the target device, the complexity of the program and the use of other function blocks. Especially the application of other function blocks with demanding resource consumption (e.g. archive) can influence the number of usable filter function blocks significantly.