multiply an array of samples by a Blackman-Nuttall windowing function
Array of real or complex numeric values; the signal
container : Array, predefined Array for holding results
inplace : truefalse, specifies that output should overwrite input
The BlackmanNuttallWindow(A) command multiplies the Array A by the Blackman-Nuttall windowing function and returns the result in an Array having the same length.
The Blackman-Nuttall windowing function w⁡k is defined as follows for a sample with N points.
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[BlackmanNuttallWindow] command is thread-safe as of Maple 18.
For more information on thread safety, see index/threadsafe.
with( SignalProcessing ):
N := 1024:
a := GenerateUniform( N, -1, 1 );
BlackmanNuttallWindow( a );
c := Array( 1 .. N, 'datatype' = 'float'[ 8 ], 'order' = 'C_order' ):
BlackmanNuttallWindow( Array( 1 .. N, 'fill' = 1, 'datatype' = 'float'[ 8 ], 'order' = 'C_order' ), 'container' = c );
u := log~( FFT( c ) ):
use plots in display( Array( [ listplot( Re( u ) ), listplot( Im( u ) ) ] ) ) end;
The SignalProcessing[BlackmanNuttallWindow] command was introduced in Maple 18.
For more information on Maple 18 changes, see Updates in Maple 18.
Download Help Document
What kind of issue would you like to report? (Optional)