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.
Respostas:
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
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:
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.
fonte
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.
fonte