Calcula la función de correlación cruzada de dos señales. Se utiliza para describir la similitud de dos señales.
Sintaxis
CCF(Signal1, Signal2 [ , Mode = CORRELATIONPRODUCT_NONCIRCULAR ])
La sintaxis de la función CCF consta de los siguientes elementos:
Parte |
Descripción |
||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Signal1 |
La señal cuya correlación se calcula con la segunda señal. Las estructuras de datos permitidas son Serie de datos, Matriz de datos, Señal y Serie de señales. Se permiten todos los tipos de datos numéricos. No se permiten valores inválidos en este argumento. Se aplican restricciones adicionales al componente X. Los valores deben tener un espaciado positivo constante. En los tipos de datos complejos se calcula un valor absoluto. Si el argumento es una lista, la función se ejecuta para cada elemento de la lista y el resultado también es una lista. |
||||||||||||||
Signal2 |
La señal cuya correlación se calcula con la primera señal. Las estructuras de datos permitidas son Serie de datos, Matriz de datos, Señal y Serie de señales. Se permiten todos los tipos de datos numéricos. No se permiten valores inválidos en este argumento. Se aplican restricciones adicionales al componente X. Los valores deben tener un espaciado positivo constante. En los tipos de datos complejos se calcula un valor absoluto. Si el argumento es una lista, la función se ejecuta para cada elemento de la lista y el resultado también es una lista. |
||||||||||||||
Mode |
Especifica el modo de cálculo. El argumento Mode puede tener los siguientes valores:
Si el argumento es una lista, se toma su primer elemento. Si se trata de nuevo de una lista, se repite el proceso. Se establece el valor predeterminado CORRELATIONPRODUCT_NONCIRCULAR si no se especifica el argumento. |
Notas
El resultado es siempre el tipo de datos En coma flotante de 64 bits.
La unidad del resultado es igual al producto de las unidades de Signal1 y Signal2.La correlación cruzada para dos series de datos s y g se define como:
con el producto de correlación:
y N, el número de valores en s y g.
Los valores de la autocorrelación normalizada se sitúan entre -1 y +1. La correlación cruzada normalizada se calcula como el cociente entre la correlación cruzada y el cuadrado del valor RMS del conjunto de datos de entrada.
El cálculo se realiza en todos los casos en el dominio de la frecuencia según la fórmula siguiente:
IRFFTn(*FFTn(Signal1) * FFTn(Signal2))
Con argumentos bidimensionales, el cálculo se realiza columna por columna y el resultado también es bidimensional. Si uno de los argumentos tiene un componente X, esto también se aplica al resultado. El resultado contiene entonces el desfase τ de la función de correlación cruzada. Nota: Si el otro argumento no tiene componente X, se asume para él el mismo muestreo que para el argumento con componente X.
Con la correlación cruzada circular, el cálculo se basa en la suposición de que uno o más períodos completos de las señales que se van a analizar están almacenados en Signal1 y Signal2. En este caso, los números de filas de Signal1 y Signal2 deben coincidir.
La correlación cruzada no circular se basa en la suposición de que las señales fuera de las secciones cubiertas por los conjuntos de datos Signal1 y Signal2 tienen un absoluto de cero. Antes de pasar al dominio de la frecuencia, se añade un número suficiente de ceros a los conjuntos de datos. La función de autocorrelación se calcula para todos los τ para los que puede tener un valor distinto de 0, es decir, para los que todavía existe un solapamiento entre las dos señales.
Disponibilidad
FlexPro Basic, Professional, Developer Suite
Ejemplos
Dim digital1 = 0#50
digital1[ValuesAboveLevel(Noise(digital1, NOISE_UNIFORM, 0), 0, EVENT_INDEX)] = 1
Dim digital2 = 0#50
digital2[ValuesAboveLevel(Noise(digital2, NOISE_UNIFORM, 0), 0, EVENT_INDEX)] = 1
Dim d1 = 0#7 : digital1[0,-8]
Dim d2 = 0#11 : digital2[0,-12]
GlobalMaximum(CCF(digital1, d1 + d2, CORRELATIONPRODUCT_CIRCULAR)) // = 7
GlobalMaximum(CCF(digital2, d1 + d2, CORRELATIONPRODUCT_CIRCULAR)) // = 11
Este ejemplo demuestra cómo puede utilizarse la función CCF para determinar el retardo entre las señales transmitida y recibida. La señal recibida es la suma de dos señales digitales con diferentes retardos. La posición en la que se produce el máximo en el producto de correlación cruzada circular entre las señales transmitida y recibida corresponde al retardo de la señal transmitida.
Véase también
Objeto de análisis Correlación
Bibliografía
[1] "Oppenheim, A. V. and Schafer, R. W.": "Discrete-Time Signal Processing, 2nd Edition", página 743 - 48. "Prentice Hall, New Jersey", 1999. ISBN 0-13-754920-2.
[2] "H. D. Lüke": "Signalübertragung", página 79 - 81. "Springer-Verlag Berlin, Heidelberg, New York", 1985. ISBN 3-540-15526-0.