SignalProcessing - Maple Programming Help

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.

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

Examples

 > $\mathrm{with}\left(\mathrm{SignalProcessing}\right):$
 > $a≔\mathrm{GenerateUniform}\left(10,-1,1\right)$
 $\left[\begin{array}{cccccccccc}-0.7852184921503079& 0.5884139649569997& -0.9931658226996676& 0.9215782885439708& -0.03878017095848924& 0.013605792541056892& -0.21075697289779816& 0.7496002158150088& 0.13896635780110977& 0.21228513401001725\end{array}\right]$ (1)
 > $\mathrm{BlackmanWindow}\left(a\right)$
 $\left[\begin{array}{cccccccccc}-0.0& 0.029932402245766997& -0.25623728033281146& 0.5805943217827015& -0.036884978801096015& 0.012940875634255953& -0.13277689292561282& 0.19339723160752564& 0.007069167572588075& 0.0\end{array}\right]$ (2)
 > $\mathrm{BlackmanWindow}\left(a,'\mathrm{standard}'\right)$
 $\left[\begin{array}{cccccccccc}-0.0& 0.029932402245766997& -0.25623728033281146& 0.5805943217827015& -0.036884978801096015& 0.012940875634255953& -0.13277689292561282& 0.19339723160752564& 0.007069167572588075& 0.0\end{array}\right]$ (3)
 > $\mathrm{BlackmanWindow}\left(a,'\mathrm{optimal}'\right)$
 $\left[\begin{array}{cccccccccc}-0.0& 1.5254090385903918{}{10}^{-17}& -0.1376472194880898& 0.49549676212406113& -0.03632646141536465& 0.012744923128296953& -0.11331581805265685& 0.10389039078503375& 3.602574902607731{}{10}^{-18}& 0.0\end{array}\right]$ (4)
 > $c≔\mathrm{Array}\left(1..10,'\mathrm{datatype}'={'\mathrm{float}'}_{8},'\mathrm{order}'='\mathrm{C_order}'\right):$
 > $\mathrm{BlackmanWindow}\left(a,'\mathrm{container}'=c\right)$
 $\left[\begin{array}{cccccccccc}-0.0& 0.029932402245766997& -0.25623728033281146& 0.5805943217827015& -0.036884978801096015& 0.012940875634255953& -0.13277689292561282& 0.19339723160752564& 0.007069167572588075& 0.0\end{array}\right]$ (5)
 > $c$
 $\left[\begin{array}{cccccccccc}-0.0& 0.029932402245766997& -0.25623728033281146& 0.5805943217827015& -0.036884978801096015& 0.012940875634255953& -0.13277689292561282& 0.19339723160752564& 0.007069167572588075& 0.0\end{array}\right]$ (6)
 > $a≔\mathrm{GenerateTone}\left(100,1,\frac{1}{\mathrm{Pi}},\mathrm{Pi}\right):$
 > $\mathbf{use}\phantom{\rule[-0.0ex]{0.5em}{0.0ex}}\mathrm{plots}\phantom{\rule[-0.0ex]{0.5em}{0.0ex}}\mathbf{in}\phantom{\rule[-0.0ex]{0.5em}{0.0ex}}\mathrm{display}\left(\mathrm{Array}\left(\left[\mathrm{listplot}\left(a\right),\mathrm{listplot}\left(\mathrm{BlackmanWindow}\left(a\right)\right),\mathrm{listplot}\left(\mathrm{BlackmanWindow}\left(a,'\mathrm{optimal}'\right)\right)\right]\right)\right);\phantom{\rule[-0.0ex]{0.5em}{0.0ex}}\mathrm{animate}\left(\mathrm{listplot},\left['\mathrm{BlackmanWindow}'\left(a,\mathrm{α}\right)\right],\mathrm{α}=-1..1\right)\phantom{\rule[-0.0ex]{0.5em}{0.0ex}}\mathbf{end use}$    > 

Compatibility

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