Main Content

La traducción de esta página aún no se ha actualizado a la versión más reciente. Haga clic aquí para ver la última versión en inglés.

Alinear señales con diferentes tiempos de inicio

Muchas mediciones incluyen datos recogidos de forma asíncrona por múltiples sensores. Si quiere integrar las señales, tiene que sincronizarlas. Signal Processing Toolbox™ cuenta con funciones que le permitirán hacerlo.

Consideremos el ejemplo de un coche que cruza un puente. Las vibraciones que produce se miden con tres sensores idénticos, situados en distintos puntos. Las señales tienen diferentes tiempos de llegada.

Cargue las señales en el espacio de trabajo de MATLAB® y represéntelas.

load relatedsig

ax(1) = subplot(3,1,1);
plot(s1)
ylabel('s_1')

ax(2) = subplot(3,1,2);
plot(s2)
ylabel('s_2')

ax(3) = subplot(3,1,3);
plot(s3)
ylabel('s_3')
xlabel('Samples')

linkaxes(ax,'x')

La señal s1 presenta un desfase negativo con respecto a s2 y, a su vez, presenta un desfase positivo con respecto a s3. Los retrasos pueden calcularse exactamente utilizando finddelay. Comprobará que s2 presenta un desfase positivo con respecto a s1 de 350 muestras, s3 presenta un desfase negativo con respecto a s1 de 150 muestras y s2 presenta un desfase positivo con respecto a s3 de 500 muestras.

t21 = finddelay(s2,s1)
t31 = finddelay(s3,s1)
t32 = finddelay(s2,s3)
t21 =

   350


t31 =

  -150


t32 =

   500

Alinee las señales dejando la señal anterior sin tocar y recortando los retrasos de los otros vectores. Añada 1 a las diferencias de desfase para tener en cuenta la indexación basada en uno utilizada por MATLAB®. Este método alinea las señales utilizando como referencia el tiempo de llegada más temprona, es decir, el de s2.

axes(ax(1))
plot(s1(t21+1:end))

axes(ax(2))
plot(s2)

axes(ax(3))
plot(s3(t32+1:end))

Utilice alignsignals para alinear las señales. La función funciona retrasando las señales anteriores, por lo que utiliza como referencia el último tiempo de llegada, el de s3.

[x1,x3] = alignsignals(s1,s3);
x2 = alignsignals(s2,s3);

axes(ax(1))
plot(x1)

axes(ax(2))
plot(x2)

axes(ax(3))
plot(x3)

De este modo, las señales están sincronizadas y listas para su posterior procesamiento.

Consulte también

| |

Temas relacionados