Main Content

Esta página aún no se ha traducido para esta versión. Puede ver la versión más reciente de esta página en inglés.

finddelay

Estimar el(los) retardo(s) entre señales

Descripción

ejemplo

d = finddelay(x,y) devuelve una estimación del retardo entre las señales de entrada y .dxy Retrasos y se pueden introducir anteponiendo ceros.xy

ejemplo

d = finddelay(x,y,maxlag) para encontrar los retrasos estimados entre y .maxlagxy

Ejemplos

contraer todo

A continuación se muestra el retraso con respecto a dos muestras.YX

X = [1 2 3]; Y = [0 0 1 2 3]; D = finddelay(X,Y)
D = 2 

Aquí hay un caso de avanzado con respecto a tres muestras.YX

X = [0 0 0 1 2 3 0 0]'; Y = [1 2 3 0]'; D = finddelay(X,Y)
D = -3 

A continuación se muestra un caso con el que está alineado pero es ruidoso.YX

X = [0 0 1 2 3 0]; Y = [0.02 0.12 1.08 2.21 2.95 -0.09]; D = finddelay(X,Y)
D = 0 

Si es una versión periódica de , se devuelve el retardo más pequeño posible.YX

X = [0 1 2 3]; Y = [1 2 3 0 0 0 0 1 2 3 0 0]; D = finddelay(X,Y)
D = -1 

se especifica como un escalar (mismo tamaño máximo de ventana).maxlag

X = [0 1 2]; Y = [0 1 0 0;      1 2 0 0;      2 0 1 0;      0 0 2 1]; maxlag = 3; D = finddelay(X,Y,maxlag)
D = 1×4

     0    -1     1     1

Especifique y del mismo tamaño. trabaja columna por columna.XYfinddelay

X = [0 1 0 0;      1 2 0 0;      2 0 1 0;      1 0 2 1;      0 0 0 2]; Y = [0 0 1 0;      1 1 2 0;      2 2 0 1;      1 0 0 2;      0 0 0 0]; D = finddelay(X,Y)
D = 1×4

     0     1    -2    -1

Repita el cálculo, pero ahora agregue una fila adicional de ceros como la segunda fila de .Y

Y = [0 0 1 0;      0 0 0 0;      1 1 2 0;      2 2 0 1;      1 0 0 2;      0 0 0 0]; D = finddelay(X,Y)
D = 1×4

     1     2    -1     0

Cree dos señales multicanal, y , de modo que cada canal de tenga una copia idéntica retrasada de cada canal de .XYYX

X = [1 3 2 0 0 0 0 0;      0 0 0 0 0 1 3 2]';  Y = [0 0 0 1 3 2;      1 3 2 0 0 0]';

Calcular los retrasos columna por columna. Establezca un tamaño máximo de ventana de correlación de 8 para cada canal.

maxlag = [8 8]; D = finddelay(X,Y,maxlag)
D = 1×2

     3    -5

Disminuya el tamaño de la ventana de correlación a 3 para el primer canal y 5 para el segundo.

maxlag = [3 5]; D = finddelay(X,Y,maxlag)
D = 1×2

     3    -5

Aumente el tamaño de la ventana de correlación a 5 para el primer canal y disminuya a 3 para el segundo.

maxlag = [5 3]; D = finddelay(X,Y,maxlag)
D = 1×2

     3    -3

Argumentos de entrada

contraer todo

Entrada de referencia, especificada como un vector o una matriz.

Señal de entrada, especificada como un vector o una matriz.

Tamaño máximo de la ventana de correlación, especificado como un escalar o vector entero. Si cualquier elemento de es negativo, se reemplaza por su valor absoluto.maxlag Si cualquier elemento de no tiene valores enteros, o es complejo, , o , a continuación, devuelve un error.maxlagInfNaNfinddelay

Argumentos de salida

contraer todo

Retraso entre señales de entrada, devuelto como un escalar o vector entero. Si se retrasa con respecto a , entonces es positivo.yxd Si está avanzado con respecto a , entonces es negativo.yxd Si es posible realizar varios retrasos, como en el caso de señales periódicas, se devuelve el retardo con el valor absoluto más pequeño. En el caso de que sea posible un retraso positivo y un negativo con el mismo valor absoluto, se devuelve el retraso positivo.

Si es una matriz de tamañox MX-por-NX (MX > 1 y NX > 1) y es una matriz de tamañoy MY-por-NY (MY > 1 y NY > 1 y NY > 1), devuelve un vector de fila de retrasos estimados entre cada columna y la columna correspondiente de .dxy Con este uso, el número de columnas debe ser igual al número de columnas de (es decir,xy NX = NY).

Sugerencias

  • y no es necesario que se retrasen copias exactas entre sí, ya quexy finddelay(x,y) devuelve una estimación del retraso a través de la correlación cruzada. Sin embargo, este retraso estimado tiene un significado útil sólo si hay suficiente correlación entre las versiones retrasadas de y .xy

  • El cálculo del vector de retrasos estimados, , depende de , , y como se muestra en la tabla siguiente.dxymaxlag

    maxlagXYse calcula por...D
    Escalar con valores enterosVector o matriz de filas o columnasVector o matriz de filas o columnasCorrelacionar las columnas de y sobre un rango de retrasos – : .XYmaxlagmaxlag
    Vector de fila o columna con valores enterosVector de fila o columna de longitud LX ≥ 1Matriz de tamaño MY-por-NY (MY > 1, NY > 1)Correlaciones cruzadas y columnas de más de un intervalo de desengs – ( ), ( ), para el número 1:XjYmaxlagjmaxlagjjNY.
    Vector de fila o columna con valores enterosMatriz de tamaño MX-por-NX (MX > 1, NX > 1)Vector de fila o columna de longitud LY ≥ 1Columna de correlación cruzada de y sobre un rango de desgs – ( ): ( ), para el número 1:jXYmaxlagjmaxlagjjNX.
    Vector de fila o columna con valores enterosMatriz de tamaño MX-por-NX (MX > 1, NX > 1)Matriz de tamaño MY-por-NY (MY > 1, NY = NX > 1)Columna de correlación cruzada de y columna de más de un intervalo de desgs – ( ) ), para el número 1:jXjYmaxlagjmaxlagjjNY.

  • Si desea tratar un vector de fila de longitudx LX como que comprende una muestra de LX diferentes canales, es necesario anexar una o más filas de ceros para que aparezca como una matriz.x A continuación, cada columna de se considerará un canal.x

    Por ejemplo, se considera un único canal que comprende cuatro muestras.x = [1 1 1 1] Para tratarlo como cuatro canales diferentes, cada canal que comprende una muestra, defina una nueva matriz:xm

    Cada columna de corresponde a un solo canal, cada uno de los cuales contiene las muestras y .xm10

    xm = [1 1 1 1;       0 0 0 0]; 

Algoritmos

La función utiliza la función para determinar la correlación entre cada par de señales en todos los posibles retrasos especificados por el usuario.finddelayxcorr A continuación, se calcula la correlación cruzada normalizada entre cada par de señales. El retraso estimado se da por el negativo del retraso para el cual la correlación cruzada normalizada tiene el mayor valor absoluto.

Si más de un retraso conduce al mayor valor absoluto de la correlación cruzada, como en el caso de señales periódicas, el retardo se elige como el negativo de los más pequeños (en valor absoluto) de dichos retrasos.

Los pares de señales no necesitan ser copias exactas retardadas entre sí. Sin embargo, el retardo estimado tiene un significado útil sólo si hay suficiente correlación entre al menos un par de las señales retardadas.

Capacidades ampliadas

Generación de código C/C++
Genere código C y C++ mediante MATLAB® Coder™.

Consulte también

| | | |