estimate the cross-correlation of two arrays containing samples
Arrays of real or complex numeric values; the signals
integer for the lower value (default is 0) of the range of lags at which the correlation estimates are computed
container : Array, predefined Array for holding result
The CrossCorrelation(A, B) command estimates the cross-correlation of the Vectors A and B of length M and N respectively. An Array of length M+N−1 containing the result is returned.
The cross-correlation is defined by the formula
for 1≤k and k≤M+N−1. Here, Bi is taken to be 0, for N<i.
Before the code performing the computation runs, Maple converts A and B to a hardware datatype, first attempting float and subsequently complex, unless they already have one of these datatypes. For this reason, it is most efficient if they have one of these datatypes beforehand. The output will have the datatype that the computation is performed in.
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 size M+N−1 having datatype float if A and B are real, and complex otherwise.
The SignalProcessing[CrossCorrelation] command is thread-safe as of Maple 17.
For more information on thread safety, see index/threadsafe.
with( SignalProcessing ):
a := GenerateUniform( 10, -1, 1 );
b := GenerateUniform( 7, -1, 1 );
CrossCorrelation( a, b );
CrossCorrelation( a, b, 0 ); # same as default
CrossCorrelation( a, b, -9 );
c := Array( 1 .. numelems( a ) + numelems( b ) - 1, 'datatype' = 'float'[ 8 ] ):
CrossCorrelation( a, b, 'container' = c );
The SignalProcessing[CrossCorrelation] command was introduced in Maple 17.
For more information on Maple 17 changes, see Updates in Maple 17.
Download Help Document
What kind of issue would you like to report? (Optional)