 SignalProcessing - Maple Programming Help

# Online Help

###### All Products    Maple    MapleSim

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

SignalProcessing

 KaiserWindow
 multiply an array of samples by a Kaiser windowing function

 Calling Sequence KaiserWindow(A, alpha)

Parameters

 A - Array of real or complex numeric values; the signal alpha - numeric parameter for Kaiser windowing function

Options

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

Description

 • The KaiserWindow(A, alpha) command multiplies the Array A by the Kaiser windowing function with parameter alpha and returns the result in a Array having the same length. The length of A must be at least $1$.
 • The Kaiser windowing function $w$ with parameter $\mathrm{\alpha }$ is defined as follows for a sample with $N$ points.

$w\left(k\right)=\frac{{I}_{0}\left(\mathrm{\alpha }\sqrt{{\left(\frac{N}{2}-\frac{1}{2}\right)}^{2}-{\left(k-\frac{N}{2}+\frac{1}{2}\right)}^{2}}\right)}{{I}_{0}\left(\frac{\mathrm{\alpha }\left(N-1\right)}{2}\right)}$

where ${I}_{0}$ is a modified Bessel function of the first kind (see BesselI).

 • 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[KaiserWindow] command is thread-safe as of Maple 17.
 • For more information on thread safety, see index/threadsafe.

Examples

 > $\mathrm{with}\left(\mathrm{SignalProcessing}\right):$
 > $a≔\mathrm{GenerateUniform}\left(10,-1,1\right)$
 $\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)
 > $\mathrm{KaiserWindow}\left(a,0\right)$
 $\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]$ (2)
 > $\mathrm{KaiserWindow}\left(a,-0.23\right)$
 $\left[\begin{array}{cccccccccc}0.7742236915317111& 0.35194223596539137& 0.15557309822189144& -0.2403947718049613& 0.4315990504337736& -0.4386916087706641& 0.4215656722081289& 0.44680683085277156& -0.4117225591282316& 0.0224205149919848\end{array}\right]$ (3)
 > $\mathrm{KaiserWindow}\left(a,4.2\right)$
 $\left[\begin{array}{cccccccccc}6.674276910954393{}{10}^{-8}& 0.00046203142681032646& 0.007616427049067062& -0.08629559221512069& 0.38627499828082024& -0.3926227368975654& 0.15133132500186566& 0.021874422191947566& -0.000540511316927367& 1.9327841188463798{}{10}^{-9}\end{array}\right]$ (4)
 > $c≔\mathrm{Array}\left(1..10,'\mathrm{datatype}'='\mathrm{float}'\left[8\right],'\mathrm{order}'='\mathrm{C_order}'\right):$
 > $\mathrm{KaiserWindow}\left(a,0.03,'\mathrm{container}'=c\right)$
 $\left[\begin{array}{cccccccccc}0.9913456076882863& 0.4072153782549209& 0.16737580345020422& -0.24673416464393297& 0.43284217897559063& -0.4399551659063213& 0.4326826793854761& 0.48070426799855825& -0.4763843054857839& 0.028708084372154788\end{array}\right]$ (5)
 > $c$
 $\left[\begin{array}{cccccccccc}0.9913456076882863& 0.4072153782549209& 0.16737580345020422& -0.24673416464393297& 0.43284217897559063& -0.4399551659063213& 0.4326826793854761& 0.48070426799855825& -0.4763843054857839& 0.028708084372154788\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{KaiserWindow}\left(a,0.2\right)\right)\right]\right)\right);\phantom{\rule[-0.0ex]{0.5em}{0.0ex}}\mathrm{animate}\left(\mathrm{listplot},\left['\mathrm{KaiserWindow}'\left(a,\mathrm{α}\right)\right],\mathrm{α}=-1..1\right)\phantom{\rule[-0.0ex]{0.5em}{0.0ex}}\mathbf{end use}$   > 

Compatibility

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

 See Also