IIR Filter

 

Updated: July 6, 2016

Creates an infinite impulse response filter for signal processing

You can use the IIR Filter module to create an infinite impulse response (IIR) filter. An IIR filter is a type of filter commonly used in digital signal processing. You might apply an IIR filter to simplify cyclical data that includes random noise over a steadily increasing or decreasing trend.

The filter defines a set of constants (or coefficients) that alter the signal that is passed through. The word infinite in the name refers to the feedback between the outputs and the series values.

System_CAPS_tipTip

A filter is a transfer function that takes an input signal and creates an output signal based on the filter characteristics. For more general information about the user of filters in digital signal processing, see Data Transformation / Filter.

After you have defined a filter that meets your needs, you can apply the filter to data by connecting a dataset and the filter to the Apply Filter module.

  1. Add the IIR Filter module to your experiment.

  2. For Order, type an integer value that defines the number of active elements used to affect the filter's response. The order of the filter represents the length of the filter window.

    For an IIR filter, the minimum order is 4.

  3. For Filter kind, choose the algorithm that is used to compute filter coefficients..

    The filter kind designates the mathematical transfer function that controls frequency response and frequency suppression. Azure Machine Learning supports these kinds of filters commonly used in digital signal processing:

    Butterworth

    A Butterworth filter is also called a maximally flat magnitude filter because it constrains the response (change in signal) in the passband and the stopband.

    Chebyshev Type 1

    Chebyshev filters are intended to minimize the errors between the idealized and the actual filter characteristics over the range of the filter. Type 1 filters leave more ripple in the passband.

    Chebyshev Type 2

    Type 2 filters have the same general characteristics as Type 1 Chebyshev filters, but they leave more ripple in the stopband.

  4. For Filter type, select an option that defines how the filter will affect the values in the input signal. You can specify that the filter exclude values above or below a cutoff point, or specify that the filter either reject or pass through values in a specified frequency range.

    LowPass

    Allows low frequency values (below the cutoff value) to pass and attenuates other values.

    HighPass

    Allows high frequency values (above the cutoff value) to pass and attenuates other values.

    Bandpass

    Allows signals in the range that is specified by the low and high cutoff values to pass and attenuates other values.

    BandStop

    Allows signals outside the range specified by the low and high cutoff values to pass and attenuates values within the range.

  5. Specify the high or low cutoff values, or both, as a value between 0 and 1, representing a normalized frequency.

    • For High cutoff, type a value that represents the upper frequency boundary.

    • For Low cutoff, type a value that represents the lower frequency boundary.

  6. For Ripple, specify the amount of ripple to tolerate when you define your filter. Ripple refers to a small variation that occurs periodically.

    Ripple is usually considered an unwanted effect, but you can compensate for ripple by adjusting other filter parameters, such as the filter length. Not all filters produce ripple.

  7. Connect the filter to Apply Filter, and connect a dataset.

    Use the column selector to specify which columns of the dataset to which the filter should be applied. By default, the Apply Filter module will use the filter for all selected numeric columns.

  8. Run the experiment.

    Note that the IIR Filter module does not provide the option to create an indicator column. Column values are always transformed in place.

For examples of how filters are used in machine learning, see this experiment in the Model Gallery:

  • The Filters experiment demonstrates all filter types. The example uses an engineered waveform dataset to more easily illustrate the effects of the different filters.

An IIR filter returns feed forward and feed backward coefficients, which are represented by way of a transfer function. Here is an example representation:

transfer function for IIR filters

Where:

  • N: filter order

  • bi: feed forward filter coefficients

  • ai: feed backward filter coefficients

  • x[n]: the input signal

  • y[n]: the output signal

Name

Range

Type

Default

Description

Order

[4;13]

Integer

5

Specify the filter order

Filter kind

Any

IIRFilterKind

Select the kind of IIR filter to create

Filter type

Any

FilterType

Select the filter band type

Low cutoff

[double.Epsilon;.9999999]

Float

0.3

Set the low cutoff value

High cutoff

[double.Epsilon;.9999999]

Float

0.7

Set the high cutoff value

Ripple

>=0.0

Float

0.5

Specify the amount of ripple in the filter

Name

Type

Description

Filter

IFilter interface

Filter implementation

For a list of all exceptions, see Machine Learning REST API Error Codes.

Exception

Description

NotInRangeValue

Exception occurs if parameter is not in range.

Show: