SignalProcessing - Maple Programming Help

Home : Support : Online Help : Science and Engineering : Signal Processing : Filtering : SignalProcessing/InfiniteImpulseResponseFilter

SignalProcessing

 InfiniteImpulseResponseFilter
 filter a signal with a finite impulse response filter

 Calling Sequence InfiniteImpulseResponseFilter( 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 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{listplot}\left(A,'\mathrm{title}'="Original Signal"\right):$
 > $\mathrm{taps}≔\mathrm{GenerateButterworthTaps}\left(9,\frac{3}{10},'\mathrm{filtertype}'="highpass"\right)$
 ${\mathrm{taps}}{≔}\left[\begin{array}{c}{\mathrm{1 .. 20}}{\mathrm{Array}}\\ {\mathrm{Data Type:}}{{\mathrm{float}}}_{{8}}\\ {\mathrm{Storage:}}{\mathrm{rectangular}}\\ {\mathrm{Order:}}{\mathrm{C_order}}\end{array}\right]$ (1)
 > $B≔\mathrm{InfiniteImpulseResponseFilter}\left(A,\mathrm{taps}\right):$
 > $\mathrm{PB}≔\mathrm{listplot}\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.