Subtraindo a saída dos sensores que possuem uma indução mútua entre eles


12

Antecedentes: O software que eu uso para analisar meus sinais é o Matlab. Eu tenho dois sinais de áudio que foram gravados usando dois sensores magnéticos. Vamos chamar um sensor A e o outro B. A e B têm indutância mútua entre eles.

Enquanto os sensores A e B estão funcionando, eu gostaria de subtrair as informações recebidas no sensor A devido à indutância mútua do sensor B.

Tentei subtrair o sinal B do sinal A, escrevendo simplesmente no matlab (AB), mas isso me dá uma resposta estranha. Eu acho que isso deriva de uma mudança que eu tenho na fase. O tempo de gravação inicial das duas faixas é o mesmo e, portanto, acho que não é um atraso de tempo.

Eu gostaria de saber como fazer esse processo de subtração em teoria, e se alguém tiver alguma dica de como implementá-lo facilmente no matlab, eu gostaria de saber.

Eu realmente aprecio qualquer ajuda.

Desde já, obrigado.

Abaixo, anexei fotos dos gráficos dos sinais. Na primeira foto, você pode ver os sinais recebidos do sensor A e do sensor B. Na segunda foto, plotei o sensor A em vermelho e o sensor B em azul, na faixa de 2,12: 2,16 e ampliei ainda mais o zoom.

insira a descrição da imagem aqui

insira a descrição da imagem aqui


Portanto, a partir de suas plotagens, parece que não há muita conversa cruzada da fonte 1 para a fonte 2, apenas de 2 para 1. Sua sobreposição na imagem está incorreta ("Isso deve ser subtraído da fonte 2")? Parece que você está tentando remover a fonte 2 de 1, certo?
Jason R

Está correto.
user1017064

para confirmar a ideia de mudança de fase, traçar as formas de onda de perto, incluindo apenas do índice 2,3 para 2,4 ou algo assim, para que possa ver onda individual em ambos os canais
endolith

Respostas:


4

Parece um problema direto de conversa cruzada. Você não pode simplesmente subtrair o sinal diretamente, pois o acoplamento magnético é diferente para cada frequência (em termos de amplitude e fase).

Digamos que você tenha dois sinais de áudio xa (t) e xb (t) e dois sinais de sensor ya (t) e yb (t). Como existe acoplamento entre os sensores, você terá uma conversa cruzada e podemos escrever no domínio da frequência

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

onde Hxy (w) é a função de transferência do sinal "x" para o sinal do sensor "y". As 4 funções de transferência formam uma matriz 2x2 e, para recuperar totalmente os sinais originais, é necessário inverter a matriz e aplicar as funções de transferência de matriz invertida aos sinais do sensor recebido.

Como a conversa cruzada é pequena, você pode simplesmente medir a função de transferência Hba (w) diretamente e subtraí-la da seguinte maneira: Medir a função de transferência do sinal A para o sensor B quando o sinal B for 0. Crie um filtro a partir dessa função de transferência ( FIR ou IIR, dependendo da forma). Agora você pode medir e subtrair uma versão filtrada do sinal do sensor A do sinal do sensor B:

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

onde hab (t) é a resposta de impulso do seu filtro de conversa cruzada e ** do operador de convolução.

O filtro de conversa cruzada representa a amplitude e a mudança de fase em função da frequência do seu acoplamento de sensor específico e garante que o sinal correto seja subtraído.


Hilmar, sou novo no matlab e encontrei algumas dificuldades ao tentar implementar sua resposta. Serei grato por qualquer ajuda de todos. A primeira coisa que fiz foi gravar o sinal A quando o sensor B é 0. Agora, quais argumentos devo inserir no filtro ao chamar a função "filter"? Se você precisar de alguma visualização do sinal, poderá vê-lo na pergunta acima. Obrigado novamente.
user1017064

5

Isso soa como separação cega da fonte . Em geral, você não pode misturar as coisas depois de misturadas. Se você tiver duas gravações diferentes de duas fontes com algumas de cada fonte em cada gravação, às vezes poderá usar a análise de componentes independentes para separá-las.

Eu tenho um exemplo de Python aqui . Há também o FastICA para MATLAB . Se eles são sinais de áudio, sendo captados magneticamente, provavelmente não há um atraso considerável entre eles. A ACI funciona bem nesse caso.


O FastICA for Matlab não me ajudou a fazer a subtração entre os dois sinais. O resultado simplesmente não é bom o suficiente. No meu comentário acima, anexei um link a uma foto que pode explicar a situação que estou enfrentando: bit.ly/rXmVgH. A propósito, muito obrigado pela sua ajuda.
user1017064
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.