Лучший подход к заполнению пробелов в сигналах

У меня есть массив 2dim, который представляет многоканальный биосигнал. Этот массив имеет размерность 20 x n_samples, где столбцы представляют: номер выборки - 16 каналов данных - время.

Учитывая Bluetooth-соединение, у меня есть некоторые падения пакетов, поэтому у меня есть пробелы в сигнале. Массив должен быть импортирован в MNE-Python для дальнейшего анализа. Эта библиотека предполагает, что частота дискретизации постоянна (она не в состоянии обрабатывать пробелы, предполагая, что мы ДОЛЖНЫ иметь выборку каждые 4 мс), поэтому я попробовал 3 разных подхода:

  1. Не заполняйте пропуски и позвольте соединить сигнал (MNE Python создает структуру с равномерно распределенными данными)
  2. Заполните пропуски с помощью np.nan
  3. Заполните пробелы с 0

Мой вопрос касается фильтрации, которую мне нужно применить к данным. Я использовал scipy.welch, чтобы получить PSD сигнала. Кажется, что сигнал с нан в качестве наполнителя работает лучше, чем исходный, а тот, который заполнен нулями, но поведение странное, когда я пытаюсь получить psd низкочастотной и высокочастотной фильтрованной версии сигнала.

Кто-нибудь знает, что является лучшим подходом?

Вот 3 изображения для различных стратегий заполнения. (Верхние - это psd, полученный с помощью библиотеки MNE, нижние - с scipy.welch). Используемый фильтр является FIR.

Заполнено с NAN

Заполнено 0s

срощенный

0 ответов

Другие вопросы по тегам