Soustraire la sortie des capteurs qui ont une inductance mutuelle entre eux

12

Contexte: Le logiciel que j'utilise pour analyser mes signaux est matlab. J'ai deux signaux audio qui ont été enregistrés à l'aide de deux capteurs magnétiques. Appelons un capteur A et l'autre B. A et B ont une inductance mutuelle entre eux.

Pendant que les capteurs A et B fonctionnent, je voudrais soustraire les informations reçues dans le capteur A en raison de l'inductance mutuelle du capteur B.

J'ai essayé de soustraire le signal B du signal A, en écrivant simplement dans matlab (AB), mais cela me donne une réponse bizarre. Je pense que cela découle d'un changement que j'ai en phase. Le temps d'enregistrement de début des deux pistes est le même, et donc je pense que ce n'est pas un retard.

Je voudrais savoir comment faire ce processus de soustraction en théorie, et si quelqu'un a des conseils pour l'implémenter facilement dans matlab, je voudrais savoir.

J'apprécierai vraiment toute aide.

Merci d'avance.

Ci-dessous, j'ai joint des images des graphiques des signaux. Dans la première image, vous pouvez voir les signaux reçus du capteur A et du capteur B.Dans la deuxième image, j'ai tracé le capteur A en rouge et le capteur B en bleu, dans la plage de 2,12: 2,16 et j'ai zoomé encore plus.

entrez la description de l'image ici

entrez la description de l'image ici

user1017064
la source
Donc, à partir de vos graphiques, il semble qu'il n'y ait pas beaucoup de diaphonie de la source 1 à la source 2, seulement de 2 à 1. Votre superposition sur l'image est-elle alors incorrecte ("Cela doit être soustrait de la source 2")? On dirait que vous essayez de supprimer la source 2 de 1, non?
Jason R
C'est correct.
user1017064
pour confirmer l'idée de décalage de phase, tracez les deux formes d'onde de près, en n'incluant que de l'index 2.3 à 2.4 ou quelque chose comme ça, afin que vous puissiez voir les ondes individuelles dans les deux canaux
endolith

Réponses:

4

Cela ressemble à un problème de diaphonie simple. Vous ne pouvez pas simplement soustraire directement le signal car le couplage magnétique est différent pour chaque fréquence (en termes d'amplitude et de phase).

Disons que vous avez deux signaux audio xa (t) et xb (t) et deux signaux de capteur ya (t) et yb (t). Puisqu'il y a couplage entre les capteurs, vous obtiendrez une diaphonie et nous pouvons écrire dans le domaine fréquentiel

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

où Hxy (w) est la fonction de transfert du signal "x" au signal de capteur "y". Les 4 fonctions de transfert forment une matrice 2x2 et afin de récupérer complètement les signaux d'origine, vous devez inverser la matrice et appliquer les fonctions de transfert de matrice inversée à vos signaux de capteur reçus.

Étant donné que votre diaphonie est petite, vous pouvez simplement mesurer directement la fonction de transfert Hba (w) et la soustraire comme suit: Mesurez la fonction de transfert du signal A au capteur B lorsque le signal B est 0. Créez un filtre à partir de cette fonction de transfert ( FIR ou IIR, selon sa forme). Vous pouvez maintenant mesurer et soustraire une version filtrée du signal de capteur A du signal de capteur B:

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

où hab (t) est la réponse impulsionnelle de votre filtre de diaphonie et ** l'opérateur de convolution.

Le filtre de diaphonie représente l'amplitude et le déphasage en fonction de la fréquence de votre couplage de capteur spécifique et il garantit que le signal correct est soustrait.

Hilmar
la source
Hilmar, je suis nouveau sur matlab et j'ai rencontré des difficultés lors de la mise en œuvre de votre réponse. Je serai reconnaissant pour toute aide de tout le monde. La première chose que j'ai faite a été d'enregistrer le signal A lorsque le capteur B est à 0. Maintenant, quels arguments dois-je insérer dans le filtre lors de l'appel de la fonction "filtre"? Si vous avez besoin d'une visualisation du signal, vous pouvez le voir dans la question ci-dessus. Merci encore.
user1017064
5

Cela ressemble à une séparation aveugle des sources . En général, vous ne pouvez pas démélanger les choses après qu'elles aient été mélangées. Si vous avez deux enregistrements différents de deux sources avec une partie de chaque source dans chaque enregistrement, vous pouvez parfois utiliser une analyse de composants indépendante pour les séparer.

J'ai un exemple Python ici . Il y a aussi FastICA pour MATLAB . S'il s'agit de signaux audio captés magnétiquement, il n'y a probablement pas de délai appréciable entre eux. ICA fonctionne bien dans ce cas.

endolith
la source
Le FastICA pour Matlab ne m'a pas aidé à faire la soustraction entre les deux signaux. Le résultat n'est tout simplement pas assez bon. Dans mon commentaire ci-dessus, j'ai joint un lien vers une photo qui peut expliquer la situation à laquelle je fais face: bit.ly/rXmVgH. Au fait, merci beaucoup pour votre aide.
user1017064