 SignalProcessing - Maple Programming Help

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

SignalProcessing

 ParzenWindow
 multiply an array of samples by a Parzen windowing function

 Calling Sequence ParzenWindow(A)

Parameters

 A - Array of real or complex numeric values; the signal

Options

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

Description

 • The ParzenWindow(A) command multiplies the Array A by the Parzen windowing function and returns the result in an Array having the same length.
 • The Parzen windowing function $w\left(k\right)$ is defined as follows for a sample with $N$ points.

$w\left(k\right)=\left\{\begin{array}{cc}1-6{\left(\frac{2k}{N}-1\right)}^{2}\left(1-\left|-\frac{2k}{N}+1\right|\right)& \left|\frac{N}{2}-k\right|\le \frac{N}{4}\\ 2{\left(1-\left|-\frac{2k}{N}+1\right|\right)}^{3}& \mathrm{otherwise}\end{array}\right\$

 • 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[ParzenWindow] command is thread-safe as of Maple 18.

Examples

 > with( SignalProcessing ):
 > N := 1024:
 > a := GenerateUniform( N, -1, 1 );
 ${{\mathrm{_rtable}}}_{{18446884774721286382}}$ (1)
 > ParzenWindow( a );
 ${{\mathrm{_rtable}}}_{{18446884774578010462}}$ (2)
 > c := Array( 1 .. N, 'datatype' = 'float'[ 8 ], 'order' = 'C_order' ):
 > ParzenWindow( Array( 1 .. N, 'fill' = 1, 'datatype' = 'float'[ 8 ], 'order' = 'C_order' ), 'container' = c );
 ${{\mathrm{_rtable}}}_{{18446884774577998774}}$ (3)
 > u := log~( FFT( c ) ):
 > use plots in display( Array( [ listplot( Re( u ) ), listplot( Im( u ) ) ] ) ) end;  >

Compatibility

 • The SignalProcessing[ParzenWindow] command was introduced in Maple 18.