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.
Réponses:
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
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:
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.
la source
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.
la source