Engee documentation

Find Delay

Finds the delay between two signals.

find delay

Description

The Find Delay block finds the delay between a signal and its delayed and possibly distorted version. This is useful if there is a need to compare the transmitted and received signal to find the error rate, but the delay of the received signal is not known. This block takes as input a signal in the form of a column vector or matrix. For a matrix input signal, the block outputs the row vector and finds the delay in each channel of the matrix independently.

Ports

Input

# sRef — reference signal
vector, matrix

Details

An initial reference signal specified as a vector or matrix. The dimensionality and sampling period of sRef and sDel must coincide.

Data types

Float64.

Complex numbers support

No

# sDel — delayed signal
vector, matrix

Details

A delayed or distorted version of the reference signal, specified as a vector or matrix. The dimensionality and sampling period of sRef and sDel must match.

Data types

Float64.

Complex numbers support

No

Output

# delay — delay
scalar, vector

Details

The delay output port outputs the delay in units of samples.

For a matrix input signal, the unit outputs a vector string and finds the delay in each channel of the matrix independently.

The output delay value is a non-negative integer smaller than Correlation window length (samples).

Data types

Float64.

Complex numbers support

No

Parameters

Main group

# Correlation window length (samples) — number of samples

Details

The number of samples the unit uses to calculate the cross-correlations of two signals.

As the Correlation window length (samples) value increases, the reliability of the calculated delay increases. However, the processing time to calculate the delay also increases.

Default value

200

Program usage name

corr_len

Tunable

No

Evaluatable

Yes

Read More

Determining the signal delay before calculating the error rate

A typical use of this block is to determine the correct Receive delay parameter in block Error Rate Calculation.

Finding the delay for word alignment

Another typical use of this block is to determine how to align frame boundaries with codeword boundaries or other types of data blocks.

Tips

  • If the cross-correlation between two signals is large, the value of Correlation window length (samples) must be much larger than the expected delay, otherwise the algorithm may stabilise on the wrong value. For example, the CPM signal has a wide autocorrelation, so it has a wide cross-correlation with the delayed version of itself. In this case, the value of Correlation window length (samples) should be much larger than the expected delay.

  • If the block calculates a delay that is more than 75% of Correlation window length (samples), then the signal sRef is probably delayed relative to the signal sDel. In this case, swap the signal lines going to the two input ports.

Algorithms

The Find Delay block finds the delay by calculating the cross-correlations of the first signal with the time-shifted versions of the second signal, and then finding the index at which the cross-correlation is maximised.

Additional options

C code generation: Yes