 SignalProcessing - Maple Programming Help

# Online Help

###### All Products    Maple    MapleSim

Home : Support : Online Help : Science and Engineering : Signal Processing : Windowing Functions : SignalProcessing/BlackmanWindow

SignalProcessing

 BlackmanWindow
 multiply a sample by a Blackman windowing function

 Calling Sequence BlackmanWindow( A, alpha )

Parameters

 A - Array of real or complex numeric values; the signal alpha - standard, optimal or a numeric value : (optional) parameter for Blackman windowing function

Options

 • container : Array, predefined Array for holding results
 • inplace : truefalse, specifies that output should overwrite input

Description

 • The BlackmanWindow( A, alpha ) command multiplies the Array A by the Blackman windowing function with parameter alpha and returns the result in an Array having the same length. The length of A must be at least $4$.
 • The Blackman windowing function $w$ is defined as follows for a sample of $N$ elements.

$w\left(k\right)=\frac{\mathrm{\alpha }}{2}+\frac{1}{2}-0.5\mathrm{cos}\left(\frac{2\mathrm{\pi }k}{N-1}\right)-\frac{\mathrm{\alpha }\mathrm{cos}\left(\frac{4\mathrm{\pi }n}{N-1}\right)}{2}$

 • The default value of the parameter alpha is standard, and in this case, a value of $\mathrm{\alpha }=-0.16$ is assumed. When alpha is optimal, then a value of $\mathrm{\alpha }=-\frac{0.5}{1+\mathrm{cos}\left(\frac{2\mathrm{\pi }}{N-1}\right)}$ is used. The alpha parameter may also take an arbitrary (real) numeric value.
 • For an Array with complex values, the real and imaginary parts are multiplied by the same windowing function.
 • Before the code performing the computation runs, A is converted to datatype float or complex if it does not have one of those datatypes already. For this reason, it is most efficient if A has one of these datatypes beforehand. This does not apply if inplace is 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 the same size and datatype as A.
 • If the inplace or inplace=true option is provided, then A is overwritten with the results. In this case, the container option is ignored.

Thread Safety

 • The SignalProcessing[BlackmanWindow] command is thread-safe as of Maple 17.
 • For more information on thread safety, see index/threadsafe.

Examples

 > with( SignalProcessing ):
 > a := GenerateUniform( 10, -1, 1 );
 $\left[\begin{array}{cccccccccc}0.9958675736749194& 0.4083375294118188& 0.1676108883276358& -0.24685883732224634& 0.43286647207183604& -0.43997985821614727& 0.43290131026935325& 0.4813794331155813& -0.47769706337282575& 0.028839034648290067\end{array}\right]$ (1)
 > BlackmanWindow( a );
 $\left[\begin{array}{cccccccccc}0.0& 0.020771980119966175& 0.04324369324600435& -0.15552106751301517& 0.41171222950938974& -0.4184779835185142& 0.2727278254696925& 0.12419613515736858& -0.0243002741336059& 0.0\end{array}\right]$ (2)
 > BlackmanWindow( a, 'standard' ); # same as default
 $\left[\begin{array}{cccccccccc}0.0& 0.020771980119966175& 0.04324369324600435& -0.15552106751301517& 0.41171222950938974& -0.4184779835185142& 0.2727278254696925& 0.12419613515736858& -0.0243002741336059& 0.0\end{array}\right]$ (3)
 > BlackmanWindow( a, 'optimal' );
 $\left[\begin{array}{cccccccccc}0.0& 1.0585774561043558{}{10}^{-17}& 0.023229930195860653& -0.13272638485020832& 0.405478026709946& -0.41214133274798564& 0.23275417859140865& 0.06671649282795526& -1.2383856631109129{}{10}^{-17}& 0.0\end{array}\right]$ (4)
 > c := Array( 1 .. 10, 'datatype' = 'float'[ 8 ], 'order' = 'C_order' ):
 > BlackmanWindow( a, 'container' = c );
 $\left[\begin{array}{cccccccccc}0.0& 0.020771980119966175& 0.04324369324600435& -0.15552106751301517& 0.41171222950938974& -0.4184779835185142& 0.2727278254696925& 0.12419613515736858& -0.0243002741336059& 0.0\end{array}\right]$ (5)
 > c;
 $\left[\begin{array}{cccccccccc}0.0& 0.020771980119966175& 0.04324369324600435& -0.15552106751301517& 0.41171222950938974& -0.4184779835185142& 0.2727278254696925& 0.12419613515736858& -0.0243002741336059& 0.0\end{array}\right]$ (6)
 > a := GenerateTone( 100,  1, 1/Pi, Pi ):
 > use plots in     display( Array( [ listplot( a ), listplot( BlackmanWindow( a ) ), listplot( BlackmanWindow( a, 'optimal' ) ) ] ) );     animate( listplot, [ 'BlackmanWindow'( a, alpha ) ], alpha = -1 .. 1 ) end use;    >

Compatibility

 • The SignalProcessing[BlackmanWindow] command was introduced in Maple 17.
 • For more information on Maple 17 changes, see Updates in Maple 17.

 See Also