SignalProcessing - Maple Programming Help

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

SignalProcessing

 GenerateFiniteImpulseResponseFilterTaps
 generate a taps array for a finite impulse response filter

 Calling Sequence GenerateFiniteImpulseResponseFilterTaps( n, freq ) GenerateFIRFilterTaps( n, freq )

Parameters

 n - posint, the size of the resulting taps Array freq - realcons or [realcons,realcons]}, the frequency for a low-pass or high-pass filter, or a pair [lowfreq, highfreq] of frequencies for a band-pass or band-stop filter. Frequencies f must satisfy 0 < f and f < 1/2.

Options

 • filtertype : string or name, the type of filter
 • window : string or name, the window type
 • normalize : truefalse, whether to normalize
 • container : Array, predefined Array for holding the result

Description

 • The GenerateFiniteImpulseResponseFilterTaps( n, freq ) command generates a taps array for a finite impulse response filter.  The resulting array may be used with the command FiniteImpulseResponseFilter to effect filtering operations on a sample.
 • For a low-pass or high-pass filter, a single frequency freq is required. It must be strictly positive and less than $\frac{1}{2}$.
 • For a band-pass or band-stop filter, a pair [lowfreq, highfreq] of low and high frequencies are required.  Each frequency must be positive and less than $\frac{1}{2}$; they must additionally satisfy $\mathrm{lowfreq}<\mathrm{highfreq}$.
 • Specify the type of filter with the filtertype option.  It can take any of the values "lowpass", "highpass", "bandpass" and "bandstop". The option values can be given as a name or as a string.
 • The type of window to use is indicated by the window option.  It can take any of the following values: "Bartlett", "Blackman", "Hamming" and "Hann". The option values can be given as a name or as a string.
 • The normalize option specifies whether to normalize the filter coefficients produced, and can be either of the values true or false.  The default is normalize = true.
 • 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 $n$ having datatype float[8].
 • The GenerateFIRFilterTaps command is provided as an alias.

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

Examples

 > with( SignalProcessing ):
 > GenerateFiniteImpulseResponseFilterTaps( 8, 1/3 );
 $\left[\begin{array}{cccccccc}0.0& -0.03571428572508216& 4.318575495781763{}{10}^{-11}& 0.5357142856818964& 0.5357142856818964& 4.318575495781763{}{10}^{-11}& -0.03571428572508216& 0.0\end{array}\right]$ (1)
 > GenerateFiniteImpulseResponseFilterTaps( 8, 1/3, normalize = true );
 $\left[\begin{array}{cccccccc}0.0& -0.03571428572508216& 4.318575495781763{}{10}^{-11}& 0.5357142856818964& 0.5357142856818964& 4.318575495781763{}{10}^{-11}& -0.03571428572508216& 0.0\end{array}\right]$ (2)
 > C := Array( 1 .. 8, 'datatype' = 'float'[ 8 ], order = C_order ):
 > GenerateFiniteImpulseResponseFilterTaps( 8, 1/3, container = C );
 $\left[\begin{array}{cccccccc}0.0& -0.03571428572508216& 4.318575495781763{}{10}^{-11}& 0.5357142856818964& 0.5357142856818964& 4.318575495781763{}{10}^{-11}& -0.03571428572508216& 0.0\end{array}\right]$ (3)
 > C;
 $\left[\begin{array}{cccccccc}0.0& -0.03571428572508216& 4.318575495781763{}{10}^{-11}& 0.5357142856818964& 0.5357142856818964& 4.318575495781763{}{10}^{-11}& -0.03571428572508216& 0.0\end{array}\right]$ (4)
 > GenerateFiniteImpulseResponseFilterTaps( 8, 1/3, filtertype = "highpass" );
 $\left[\begin{array}{cccccccc}0.0& 0.022058823507641434& -0.14705882351764402& 0.3308823529747145& -0.3308823529747145& 0.14705882351764402& -0.022058823507641434& -0.0\end{array}\right]$ (5)
 > GenerateFiniteImpulseResponseFilterTaps( 8,  [ 0.2, 0.4 ], filtertype = "bandstop", window = "Hann" );
 $\left[\begin{array}{cccccccc}-0.0& 0.02501254691992837& 0.07293693000045436& 0.40205052307961725& 0.40205052307961725& 0.07293693000045436& 0.02501254691992837& -0.0\end{array}\right]$ (6)
 >

Compatibility

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