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.

alignsignals

Alinee dos señales retrasando la señal más temprana

Descripción

ejemplo

[Xa,Ya] = alignsignals(X,Y) estima el retardo, , entre las dos señales de entrada, y , y devuelve las señales alineadas, y .DXYXaYa

  • Si se retrasa con respecto a , entonces es positivo y se retrasa con muestras.YXDXD

  • Si está avanzado con respecto a , entonces es negativo y se retrasa por – muestras.YXDYD

Los retrasos en o se pueden introducir anteponiendo ceros.XY

ejemplo

[Xa,Ya] = alignsignals(X,Y,maxlag) utiliza como el tamaño máximo de la ventana para encontrar el retardo estimado, , entre las dos señales de entrada, y .maxlagDXY Devuelve las señales alineadas y .XaYa

ejemplo

[Xa,Ya] = alignsignals(X,Y,maxlag,'truncate') mantiene las longitudes de las señales alineadas, y , las mismas que las de las señales de entrada, y , respectivamente.XaYaXY

  • Si el retardo estimado, , es positivo, a continuación, se anteponen los ceros y se truncan las últimas muestras de.DDXDX

  • Si el retardo estimado, , es negativo, entonces – ceros se anteponen a y el último – muestras de se truncan.DDYDY

Notas

y son vectores de fila o columna de longitudXY LX Y LYRespectivamente.

  • Si D ≥ LX, entonces consiste enXa LX Ceros. Todas las muestras de están perdidas.X

  • Si D ≥ LY, entonces consiste enYa LY Ceros. Todas las muestras de están perdidas.Y

Para evitar asignar un valor específico al utilizar la opción, establezca en .maxlag'truncate'maxlag[]

ejemplo

[Xa,Ya,D] = alignsignals(___) devuelve el retraso estimado, .D Esta sintaxis puede incluir cualquiera de los argumentos de entrada utilizados en las sintaxis anteriores.

Ejemplos

contraer todo

Alinee la señal con respecto a retrasándola tres muestras.YX

Cree dos señales y . es exactamente lo mismo que , excepto tiene tres ceros a la izquierda y uno adicional después de cero.XYXYX Alinee las dos señales.

X = [0 0 0 1 2 3 0 0]; Y = [1 2 3 0];  [Xa,Ya] = alignsignals(X,Y)
Xa = 1×8

     0     0     0     1     2     3     0     0

Ya = 1×7

     0     0     0     1     2     3     0

Alinee la señal cuando se retrase con respecto a dos muestras.XYX

Cree dos señales y . es exactamente lo mismo que , excepto tiene dos ceros a la izquierda.XYYXY Alinee las dos señales.

X = [1 2 3]; Y = [0 0 1 2 3]; maxlag = 2;  [Xa,Ya,D] = alignsignals(X,Y,maxlag)
Xa = 1×5

     0     0     1     2     3

Ya = 1×5

     0     0     1     2     3

D = 2 

Alinee la señal con respecto a , a pesar del hecho de que es una señal de ruidoso.YXY

Cree dos señales y . es exactamente lo mismo que con un poco de ruido añadido a ella.XYYX Alinee las dos señales.

X = [0 0 1 2 3 0]; Y = [0.02 0.12 1.08 2.21 2.95 -0.09];  [Xa,Ya,D] = alignsignals(X,Y)
Xa = 1×6

     0     0     1     2     3     0

Ya = 1×6

    0.0200    0.1200    1.0800    2.2100    2.9500   -0.0900

D = 0 

No es necesario cambiar las señales de entrada para producir las señales de salida. El retraso es cero.D

Invoque la opción al llamar a la función.'truncate'alignsignals

Cree dos señales y . es exactamente lo mismo que , excepto tiene dos ceros a la izquierda.XYYXY Alinee las dos señales, aplicando la directiva.'truncate'

X = [1 2 3]; Y = [0 0 1 2 3];  [Xa,Ya,D] = alignsignals(X,Y,[],'truncate')
Xa = 1×3

     0     0     1

Ya = 1×5

     0     0     1     2     3

D = 2 

Observe que la señal de salida tiene una longitud de 3, la misma longitud que la señal de entrada.XaX

En el caso de que el uso de la opción termine truncando todos los datos originales de , se emite una advertencia.'truncate'X Para emitir una advertencia de este tipo, ejecute el siguiente ejemplo.alignsignals

Y = [0 0 0 0 1 2 3];  [Xa,Ya,D] = alignsignals(X,Y,[],'truncate')
Warning: All original data in the first input X has been truncated because the length of X is smaller than the estimated delay D: to avoid truncating this data do not use the 'truncate' option. 
Xa = 1×3

     0     0     0

Ya = 1×7

     0     0     0     0     1     2     3

D = 4 

Alinear la señal con respecto a , a pesar del hecho de que es una repetición periódica de .YXYX Devuelva el retardo más pequeño posible.

Cree dos señales y . consta de dos copias de la porción distinta de cero de separadas por ceros.XYYX Alinee las dos señales.

X = [0 1 2 3]; Y = [1 2 3 0 0 0 0 1 2 3 0 0];  [Xa,Ya,D] = alignsignals(X,Y)
Xa = 1×4

     0     1     2     3

Ya = 1×13

     0     1     2     3     0     0     0     0     1     2     3     0     0

D = -1 

Argumentos de entrada

contraer todo

Primera señal de entrada, especificada como un vector numérico de longitud.LX

Ejemplo: [1 2 3]

Tipos de datos: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64
Soporte de números complejos:

Segunda señal de entrada, especificada como un vector numérico de longitud.LY

Ejemplo: [0 0 1 2 3]

Tipos de datos: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64
Soporte de números complejos:

Tamaño máximo de ventana, o retraso, especificado como un escalar con valores enteros. De forma predeterminada, es igual a .maxlagmax(length(X),length(Y))-1 Si se introduce como , se sustituye por el valor predeterminado.maxlag[] Si es negativo, se sustituye por su valor absoluto.maxlag Si no tiene valores enteros o es complejo, , o , devuelve un error.maxlagInfNaNalignsignals

Ejemplo: 2

Tipos de datos: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

Argumentos de salida

contraer todo

Primera señal alineada, devuelta como un vector numérico que está alineado con el segundo argumento de salida, .Ya Si el argumento de entrada es un vector de fila, también es un vector de fila.XXa Si el argumento de entrada es un vector de columna, también es un vector de columna.XXa Si especifica la opción y el retardo estimado es positivo, entonces es equivalente a la señal de entrada con ceros antepuestos a ella y sus últimas muestras truncadas.'truncate'DXaXDD

Segunda señal alineada, devuelta como un vector numérico que está alineado con el primer argumento de salida, .Xa Si el argumento de entrada es un vector de fila, también es un vector de fila.YYa Si el argumento de entrada es un vector de columna, también es un vector de columna.YYa Si especifica la opción y el retardo estimado es negativo, entonces es equivalente a la señal de entrada con – ceros antepuesto a ella y su último – muestras truncadas.'truncate'DYaYDD

Retraso estimado entre las señales de entrada, devuelto como un entero escalar. Este entero representa el número de muestras por las que las dos señales de entrada y se desplazan.XY

  • Si se retrasa con respecto a , entonces es positivo y se retrasa con muestras.YXDXD

  • Si está avanzado con respecto a , entonces es negativo y se retrasa por – muestras.YXDYD

  • Si y ya están alineados, entonces es cero y ni se retrasan ni se retrasan.XYDXY

Si especifica un valor para el argumento de entrada , debe ser menor o igual que .maxlagDmaxlag

Algoritmos

  • Puede encontrar la teoría sobre la estimación de retardo en la especificación de la función (véase ).finddelayAlgoritmos

  • La función utiliza el retardo estimado para retrasar la señal más temprana de modo que las dos señales tengan el mismo punto de partida.alignsignalsD

  • Como se especifica para la función, el par de señales no tiene por qué ser copias exactas retardadas entre sí.finddelay Sin embargo, las señales se pueden alinear con éxito sólo si hay suficiente correlación entre ellas.

Para obtener más información sobre la estimación de funciones de correlación y correlación, consulte .[1]

Referencias

[1] Orfanidis, Sophocles J. Optimum Signal Processing. An Introduction. 2nd Ed. Englewood Cliffs, NJ: Prentice-Hall, 1996.

Capacidades ampliadas

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

Consulte también

| | | |