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 Padding->None, 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)

Padding  (1)

By default, RecurrenceFilter uses zero padding:

Use nonzero constant padding:

Use periodic padding:

With Padding->None, 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:

Introduced in 2012
 (9.0)
 |
Updated in 2014
 (10.0)