# RecurrenceFilter

RecurrenceFilter[{α,β},x]

filters x using a linear recurrence equation with coefficients α and β.

RecurrenceFilter[tf,x]

uses a discrete-time filter defined by the TransferFunctionModel tf.

RecurrenceFilter[,x,{y0,y-1,}]

uses a specified list {y0,y-1,} as the initial condition.

RecurrenceFilter[,image]

filters image.

RecurrenceFilter[,sound]

filters sampled sound object.

# Details and Options • RecurrenceFilter[{α,β},x] gives the response y to the causal input x by solving the recurrence equation for n from 1 to Length[x], where i is Length[α] and j is Length[β].
• RecurrenceFilter[{α,β},x] uses an initial condition .
• RecurrenceFilter[{α,β},x] pads the input x so that . The values can be changed with the Padding option. With , the response y effectively starts at yj, and the output dimensions are normally smaller than the input. »
• The specified coefficients α and β are respectively the denominator and numerator polynomial coefficients of the desired transfer function model.
• In RecurrenceFilter[tf,], tf should be a single-input single-output (SISO) system.
• RecurrenceFilter works with arbitrary-rank numerical arrays, 2D and 3D images, and sampled sound objects, operating separately on each channel.
• Possible sound objects include:
•  SampledSoundList[{a1,a2,…},r] amplitude levels given in a list SampledSoundFunction[f,n,r] amplitude levels generated by a function Sound[prims,…] excluding SoundNote objects in prims
• When applied to images and multidimensional arrays, the specified filter is applied successively to each dimension, starting at level 1.
• For multichannel image and sound objects, RecurrenceFilter is applied to each channel separately.

# Examples

open allclose all

## Basic Examples(2)

Filtering of a unit impulse sequence:

Filtering of an image:

## Scope(5)

Use symbolic values for filter coefficients:

Filter a symbolic sequence:

Apply a filter specified using a transfer function model:

Specify an initial condition:

Filter a TimeSeries:

## Options(1)

By default, RecurrenceFilter uses zero padding:

With , a shorter sequence is returned:

## Applications(3)

Filtering a noisy sinusoid signal with a recursive smoothing filter:

Filter an audio signal:

Filter an image using a lowpass Butterworth filter:

## Properties & Relations(5)

Impulse response of first-order recursive filter:

Step response of a non-recursive filter:

In 2D, the filter is applied successively to rows and columns:

Use Map to apply the filter to rows only:

For 1D arrays, OutputResponse is equivalent to RecurrenceFilter:

Use RecurrenceTable when describing the filter using a difference equation:

ListConvolve and RecurrenceFilter return equivalent results for non-recursive digital filters: