Sottraendo i sensori che hanno reciproca induttanza tra di loro


12

Background: il software che utilizzo per analizzare i miei segnali è matlab. Ho due segnali audio che sono stati registrati usando due sensori magnetici. Consente di chiamare un sensore A e l'altro B. A e B hanno un'induttanza reciproca tra di loro.

Mentre i sensori A e B funzionano, vorrei sottrarre le informazioni ricevute nel sensore A a causa della reciproca induttanza dal sensore B.

Ho provato a sottrarre il segnale B dal segnale A, semplicemente scrivendo in matlab (AB), ma mi dà una risposta strana. Penso che derivi da uno spostamento che ho in fase. Il tempo di registrazione iniziale delle due tracce è lo stesso e quindi penso che non sia un ritardo.

Vorrei sapere come eseguire questo processo di sottrazione in teoria, e se qualcuno ha qualche consiglio su come implementarlo facilmente in MATLAB vorrei sapere.

Apprezzerò davvero qualsiasi aiuto.

Grazie in anticipo.

Di seguito ho allegato le immagini dei grafici dei segnali. Nella prima immagine puoi vedere i segnali che vengono ricevuti dal sensore A e dal sensore B. Nella seconda immagine, ho tracciato il sensore A in rosso e il sensore B in blu, nella gamma di 2,12: 2,16 e ho ingrandito ancora di più.

inserisci qui la descrizione dell'immagine

inserisci qui la descrizione dell'immagine


Quindi dai tuoi grafici, sembra che non ci sia molta diafonia dalla sorgente 1 alla fonte 2, solo da 2 a 1. La tua sovrapposizione sull'immagine è errata allora ("Deve essere sottratta dalla fonte 2")? Sembra che tu stia cercando di rimuovere la fonte 2 da 1, giusto?
Jason R,

È corretto.
user1017064,

per confermare l'idea dello spostamento di fase, tracciare da vicino entrambe le forme d'onda, includendo solo dall'indice 2.3 a 2.4 o qualcosa del genere, in modo da poter vedere l'onda individuale in entrambi i canali
endolith,

Risposte:


4

Sembra un problema incrociato diretto. Non è possibile semplicemente sottrarre direttamente il segnale poiché l'accoppiamento magnetico è diverso per ogni frequenza (in termini di ampiezza e fase).

Supponiamo che tu abbia due segnali audio xa (t) e xb (t) e due segnali sensore ya (t) e yb (t). Poiché esiste un accoppiamento tra i sensori, si otterrà il cross talk e possiamo scrivere nel dominio della frequenza

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

dove Hxy (w) è la funzione di trasferimento dal segnale "x" al segnale del sensore "y". Le 4 funzioni di trasferimento formano una matrice 2x2 e per recuperare completamente i segnali originali è necessario invertire la matrice e applicare le funzioni di trasferimento della matrice invertite ai segnali del sensore ricevuti.

Poiché il tuo cross talk è piccolo, puoi semplicemente misurare direttamente la funzione di trasferimento Hba (w) e sottrarla come segue: Misura la funzione di trasferimento dal segnale A al sensore B quando il segnale B è 0. Crea un filtro da questa funzione di trasferimento ( FIR o IIR, a seconda della sua forma). Ora puoi misurare e sottrarre una versione filtrata dal segnale del sensore A dal segnale del sensore B:

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

dove hab (t) è la risposta all'impulso del filtro cross talk e ** dell'operatore di convoluzione.

Il filtro cross talk rappresenta l'ampiezza e lo sfasamento in funzione della frequenza dell'accoppiamento specifico del sensore e garantisce che venga sottratto il segnale corretto.


Hilmar, sono nuovo di Matlab e ho riscontrato alcune difficoltà nel tentativo di attuare la tua risposta. Sarò grato per qualsiasi aiuto da parte di tutti. La prima cosa che ho fatto è stata registrare il segnale A quando il sensore B è 0. Ora, quali argomenti devo inserire nel filtro quando si chiama la funzione "filtro"? Se hai bisogno di una visualizzazione del segnale, puoi vederlo nella domanda sopra. Grazie ancora.
user1017064

5

Sembra una separazione alla fonte cieca . In generale, non puoi mescolare le cose dopo che sono state mescolate. Se si hanno due diverse registrazioni di due fonti con alcune di ciascuna sorgente in ciascuna registrazione, a volte è possibile utilizzare l'analisi dei componenti indipendenti per separarli.

Ho un esempio di Python qui . C'è anche FastICA per MATLAB . Se sono segnali audio, raccolti in modo magnetico, probabilmente non c'è alcun ritardo apprezzabile tra di loro. L'ICA funziona bene in questo caso.


Il FastICA per Matlab non mi ha aiutato a fare la sottrazione tra i due segnali. Il risultato non è abbastanza buono. Nel mio commento sopra ho allegato un link a una foto che può spiegare la situazione che sto affrontando: bit.ly/rXmVgH. A proposito, grazie mille per il tuo aiuto.
user1017064,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.