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 por las muestras.YXDXD

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

Retrasos en o pueden ser introducidos por ceros prependientes.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, al igual que las de las señales de entrada, y, respectivamente.XaYaXY

  • Si el retardo estimado,, es positivo, a continuación, se antepone ceros a y se truncan los últimos ejemplos de.DDXDX

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

Notas

y son vectores de longitud de fila o columnaXY LX Y LYRespectivamente.

  • Si D ≥ LX, a continuación, consta deXa LX Ceros. Todas las muestras de se pierden.X

  • Si D ≥ LY, a continuación, consta deYa LY Ceros. Todas las muestras de se pierden.Y

Para evitar la asignación de un valor específico al uso de la opción, establecer en.maxlag'truncate'maxlag[]

ejemplo

[Xa,Ya,D] = alignsignals(___) Devuelve el retardo 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 retrasarlo tres muestras.YX

Crea dos señales y. es exactamente el mismo que, excepto tiene tres ceros a la izquierda y un adicional siguiente 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 retrasa con respecto a por dos muestras.XYX

Crea dos señales y. es exactamente el 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 ruidosa.YXY

Crea dos señales y. es exactamente el mismo que con un poco de ruido añadido a la misma.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 retardo es cero.D

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

Crea dos señales y. es exactamente el mismo que, excepto tiene dos ceros a la izquierda.XYYXY Alinear 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 

Alinee la señal con respecto a, a pesar del hecho de que es una repetición periódica de.YXYX Devuelva el menor retraso posible.

Crea 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 lag, 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 es un valor entero, o es complejo, o, a continuación, 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 equivale a la señal de entrada con ceros antepone a él 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 equivale a la señal de entrada con – ceros antepone a él y su Last – muestras truncadas.'truncate'DYaYDD

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

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

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

  • Si y ya están alineados, entonces es cero y ni tampoco 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 antigua, de tal 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 necesita ser copias retrasadas exactas entre sí.finddelay Sin embargo, las señales se pueden alinear con éxito solamente si hay correlación suficiente entre ellos.

Para obtener más información sobre la estimación de las funciones de covarianza 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

| | | |