Справочная информация: программное обеспечение, которое я использую для анализа моих сигналов, является Matlab. У меня есть два аудиосигнала, которые были записаны с помощью двух магнитных датчиков. Позволяет назвать один датчик A, а другой B. A и B имеют взаимную индуктивность между ними.
Пока работают датчики A и B, я бы хотел вычесть информацию, полученную в датчике A из-за взаимной индуктивности от датчика B.
Я попытался вычесть сигнал B из сигнала A, просто написав в Matlab (AB), но это дает мне странный ответ. Я думаю, что это происходит из-за сдвига, который я имею в фазе. Время начала записи двух треков одинаково, и поэтому я думаю, что это не задержка.
Я хотел бы знать, как сделать этот процесс вычитания в теории, и если у кого-нибудь есть какие-либо советы, как легко реализовать его в matlab, я бы хотел знать.
Я буду очень признателен за любую помощь.
Заранее спасибо.
Ниже я приложил картинки графиков сигналов. На первом рисунке вы можете видеть сигналы, которые поступают от датчика A и датчика B. На втором рисунке я изобразил датчик A красным и датчик B синим в диапазоне 2,12: 2,16 и увеличил их еще больше.
Ответы:
Это похоже на прямую проблему перекрестных помех. Вы не можете просто вычесть сигнал напрямую, так как магнитная связь различна для каждой частоты (с точки зрения амплитуды и фазы).
Допустим, у вас есть два аудиосигнала xa (t) и xb (t) и два сенсорных сигнала ya (t) и yb (t). Поскольку существует связь между датчиками, вы получите перекрестные помехи, и мы можем записать в частотной области
где Hxy (w) - передаточная функция от сигнала "x" к сигналу датчика "y". 4 передаточные функции образуют матрицу 2x2, и для полного восстановления исходных сигналов необходимо инвертировать матрицу и применить инвертированные передаточные функции матрицы к принятым сигналам датчиков.
Поскольку перекрестные помехи малы, вы можете просто измерить передаточную функцию Hba (w) напрямую и вычесть ее следующим образом: Измерить передаточную функцию от сигнала A к датчику B, когда сигнал B равен 0. Создать фильтр из этой передаточной функции ( FIR или IIR, в зависимости от его формы). Теперь вы можете измерить и вычесть фильтрованную версию из сигнала датчика A из сигнала датчика B:
где hab (t) - импульсный отклик фильтра перекрестных помех и ** оператор свертки.
Фильтр перекрестных помех представляет амплитуду и фазовый сдвиг как функцию частоты вашего конкретного подключения датчика и обеспечивает вычитание правильного сигнала.
источник
Это звучит как слепое разделение источников . В общем, вы не можете смешивать вещи после того, как они смешаны. Если у вас есть две разные записи по двум источникам с некоторыми источниками в каждой записи, вы можете иногда использовать независимый компонентный анализ для их разделения.
У меня есть пример Python здесь . Также есть FastICA для MATLAB . Если они являются аудиосигналами, воспринимаемыми магнитно, между ними, вероятно, нет заметной задержки. ICA хорошо работает в этом случае.
источник