Restando sensores de salida que tienen inductancia mutua entre ellos

12

Antecedentes: el software que uso para analizar mis señales es matlab. Tengo dos señales de audio que se grabaron con dos sensores magnéticos. Llamemos a un sensor A y al otro B. A y B tienen inductancia mutua entre ellos.

Mientras los sensores A y B funcionan, me gustaría restar la información que se recibió en el sensor A debido a la inductancia mutua del sensor B.

Traté de restar la señal B de la señal A, simplemente escribiendo en matlab (AB), pero me da una respuesta extraña. Creo que se deriva de un cambio que tengo en fase. El tiempo de inicio de grabación de las dos pistas es el mismo y, por lo tanto, creo que no es un retraso de tiempo.

Me gustaría saber cómo hacer este proceso de resta en teoría, y si alguien tiene algún consejo sobre cómo implementarlo fácilmente en matlab, me gustaría saberlo.

Realmente agradeceré cualquier ayuda.

Gracias por adelantado.

A continuación adjunto imágenes de los gráficos de señales. En la primera imagen puede ver las señales que se reciben del sensor A y el sensor B. En la segunda imagen, tracé el sensor A en rojo y el sensor B en azul, en el rango de 2.12: 2.16 y amplié aún más.

ingrese la descripción de la imagen aquí

ingrese la descripción de la imagen aquí

usuario1017064
fuente
Entonces, de sus trazados, parece que no hay mucha diafonía de la fuente 1 a la fuente 2, solo de 2 a 1. ¿Su superposición en la imagen es incorrecta entonces ("Esto debe restarse de la fuente 2")? Parece que estás tratando de eliminar la fuente 2 de 1, ¿verdad?
Jason R
Eso es correcto.
user1017064
Para confirmar la idea del cambio de fase, dibuje ambas formas de onda de cerca, solo incluyendo del índice 2.3 a 2.4 o algo así, para que pueda ver la onda individual en ambos canales
endolito

Respuestas:

4

Eso parece un problema directo de conversación cruzada. No puede simplemente restar la señal directamente ya que el acoplamiento magnético es diferente para cada frecuencia (en términos de amplitud y fase).

Digamos que tiene dos señales de audio xa (t) y xb (t) y dos señales de sensor ya (t) y yb (t). Dado que hay un acoplamiento entre los sensores, obtendrá una conversación cruzada y podemos escribir en el dominio de frecuencia

Ya(w) = Haa(w)*xa(w) + Hba(w)*xb(w)
Yb(w) = Hab(w)*xa(w) + Hbb(w)*xb(w)

donde Hxy (w) es la función de transferencia de la señal "x" a la señal del sensor "y". Las 4 funciones de transferencia forman una matriz de 2x2 y, para recuperar completamente las señales originales, debe invertir la matriz y aplicar las funciones de transferencia de la matriz invertida a sus señales de sensor recibidas.

Como su interferencia es pequeña, simplemente puede medir la función de transferencia Hba (w) directamente y restarla de la siguiente manera: Mida la función de transferencia de la señal A al sensor B cuando la señal B es 0. Cree un filtro a partir de esta función de transferencia ( FIR o IIR, dependiendo de su forma). Ahora puede medir y restar una versión filtrada de la señal del sensor A de la señal del sensor B:

yb(t)' = yb(t)-hab(t)**ya(t)

donde hab (t) es la respuesta de impulso de su filtro de conversación cruzada y ** el operador de convolución.

El filtro de conversación cruzada representa la amplitud y el cambio de fase en función de la frecuencia de su acoplamiento de sensor específico y asegura que se reste la señal correcta.

Hilmar
fuente
Hilmar, soy nuevo en matlab y encontré algunas dificultades al intentar implementar tu respuesta. Estaré agradecido por cualquier ayuda de todos. Lo primero que hice fue grabar la señal A cuando el sensor B es 0. Ahora, ¿qué argumentos debo insertar en el filtro al llamar a la función "filtro"? Si necesita alguna visualización de la señal, puede verla en la pregunta anterior. Gracias de nuevo.
user1017064
5

Esto suena como una separación ciega de la fuente . En general, no puedes mezclar cosas después de que se hayan mezclado. Si tiene dos grabaciones diferentes de dos fuentes con algunas de cada fuente en cada grabación, a veces puede usar análisis de componentes independientes para separarlas.

Tengo un ejemplo de Python aquí . También hay FastICA para MATLAB . Si son señales de audio, que se recogen magnéticamente, probablemente no haya un retraso apreciable entre ellas. ICA funciona bien en este caso.

endolito
fuente
FastICA para Matlab no me ayudó a hacer la resta entre las dos señales. El resultado simplemente no es lo suficientemente bueno. En mi comentario anterior adjunto un enlace a una foto que puede explicar la situación que estoy enfrentando: bit.ly/rXmVgH. Por cierto muchas gracias por tu ayuda.
user1017064