# Signal Correlation (Auto-Correlation) (G Dataflow)

Version:
Last Modified: January 9, 2017

Computes the auto-correlation of a signal.

## x

The input signal.

This input supports the following data types.

• Waveform
• 1D array of waveforms
• 1D array of double-precision, floating-point numbers
• 1D array of complex double-precision, floating-point numbers
• 2D array of double-precision, floating-point numbers

## normalization

The normalization method to use to compute the auto correlation of the input signal.

Name Description
none

Does not apply normalization.

unbiased

Applies unbiased normalization.

biased

Applies biased normalization.

Default: none

## error in

Error conditions that occur before this node runs. The node responds to this input according to standard error behavior.

Default: No error

## Rxx

Autocorrelation of the input signal.

## error out

Error information. The node produces this output according to standard error behavior.

## Algorithm for Calculating the Auto-Correlation

The auto-correlation Rxx(t) of a function x(t) is defined as

$Rxx\left(t\right)=x\left(t\right)\otimes x\left(t\right)={\int }_{-\infty }^{\infty }{x}^{*}\left(\tau \right)\cdot x\left(t+\tau \right)d\tau$

where the symbol $\otimes$ denotes correlation.

For the discrete implementation of this node, let Y represent a sequence whose indexing can be negative, let N be the number of elements in the input sequence x, and assume that the indexed elements of x that lie outside its range are equal to zero, as shown in the following relationship:

${x}_{j}=0,\text{\hspace{0.17em}}j<0\text{\hspace{0.17em}}\text{\hspace{0.17em}}orj\ge N$

Then this node obtains the elements of Y using the following formula:

${Y}_{j}=\underset{k=0}{\overset{N-1}{\sum }}{{x}_{k}}^{*}\cdot {x}_{j+k}$

for $j=-\left(N-1\right),-\left(N-2\right),\text{\hspace{0.17em}}...\text{\hspace{0.17em}},-1,0,1,\text{\hspace{0.17em}}...\text{\hspace{0.17em}},\left(N-2\right),\left(N-1\right)$

The elements of the output sequence Rxx are related to the elements in the sequence Y by

${Rxx}_{i}={y}_{i-\left(N-1\right)}$

for $i=0,1,2,...\text{\hspace{0.17em}},2N-2$

Notice that the number of elements in the output sequence Rxx is $2N-1$. Because you cannot use negative numbers to index arrays, the corresponding correlation value at t = 0 is the Nth element of the output sequence Rxx. Therefore, Rxx represents the correlation values that this node shifts N times in indexing.

## How This Node Applies Unbiased Normalization

This node applies unbiased normalization as follows:

${y}_{j}=\frac{1}{N-|j|}\underset{k=0}{\overset{N-1}{\sum }}{x}_{k}^{*}\cdot {x}_{j+k}$

for j = -(N-1), -(N-2), ..., -1, 0, 1, ..., (N-2), (N-1), and

${Rxx\left(unbiased\right)}_{i}={y}_{i-\left(N-1\right)}$

for i = 0, 1, 2, ..., 2N-2

## How This Node Applies Biased Normalization

This node applies biased normalization as follows:

${y}_{j}=\frac{1}{N}\underset{k=0}{\overset{N-1}{\sum }}{x}_{k}^{*}\cdot {x}_{j+k}$

for j = -(N-1), -(N-2), ..., -1, 0, 1, ..., (N-2), (N-1), and

${Rxx\left(biased\right)}_{i}={y}_{i-\left(N-1\right)}$

for i = 0, 1, 2, ..., 2N-2

Where This Node Can Run:

Desktop OS: Windows

FPGA: Not supported