InfiniteImpulseResponseFilter - Maple Help

SignalProcessing

 InfiniteImpulseResponseFilter
 filter a signal with a finite impulse response filter

 Calling Sequence InfiniteImpulseResponseFilter( A, taps, delayline ) IIRFilter( A, taps, delayline )

Parameters

 A - Array of real numeric values; the signal to filter taps - Array of real numeric values; the tap coefficients delayline - (optional) Array of real numeric values; initial values for the delay line

Options

 • container : Array, predefined Array for holding the result

Description

 • The InfiniteImpulseResponseFilter( A, taps, delayline ) command filters the signal (sample) in the array A using the tap coefficients in the array taps.  The taps array may be generated by using the GenerateButterworthTaps and GenerateChebyshev1Taps commands, or you may provide your own custom filtering coefficients.
 • The delayline argument is optional.  If delayline is provided, it must be an Array of real numeric values and the same length as taps.
 • Before the code performing the computation runs, the input Arrays A, taps, and (if present) delayline are converted to datatype float[8] if they do not have that datatype already. For this reason, it is most efficient if the input Arrays have this datatype beforehand.
 • If the container=C option is provided, then the results are put into C and C is returned. With this option, no additional memory is allocated to store the result. The container must be an Array of size equal to the size of A and having datatype float[8].
 • The IIRFilter command is provided as an alias.

 • The SignalProcessing[InfiniteImpulseResponseFilter] command is thread-safe as of Maple 17.

Examples

 > $\mathrm{with}\left(\mathrm{SignalProcessing}\right):$
 > $\mathrm{with}\left(\mathrm{plots}\right):$
 > $A≔\mathrm{GenerateJaehne}\left(512,4095\right):$
 > $\mathrm{PA}≔\mathrm{SignalPlot}\left(A,\mathrm{title}="Original Signal"\right):$
 > $\mathrm{taps}≔\mathrm{GenerateButterworthTaps}\left(9,\frac{3}{10},\mathrm{filtertype}="highpass"\right)$
 ${\mathrm{taps}}{≔}\left[\right]$ (1)
 > $B≔\mathrm{InfiniteImpulseResponseFilter}\left(A,\mathrm{taps}\right):$
 > $\mathrm{PB}≔\mathrm{SignalPlot}\left(B,\mathrm{title}="Filtered Signal"\right):$
 > $\mathrm{display}\left(⟨⟨⟨\mathrm{PA}⟩,⟨\mathrm{PB}⟩⟩⟩\right)$

Compatibility

 • The SignalProcessing[InfiniteImpulseResponseFilter] command was introduced in Maple 17.