Лучший подход к заполнению пробелов в сигналах
У меня есть массив 2dim, который представляет многоканальный биосигнал. Этот массив имеет размерность 20 x n_samples, где столбцы представляют: номер выборки - 16 каналов данных - время.
Учитывая Bluetooth-соединение, у меня есть некоторые падения пакетов, поэтому у меня есть пробелы в сигнале. Массив должен быть импортирован в MNE-Python для дальнейшего анализа. Эта библиотека предполагает, что частота дискретизации постоянна (она не в состоянии обрабатывать пробелы, предполагая, что мы ДОЛЖНЫ иметь выборку каждые 4 мс), поэтому я попробовал 3 разных подхода:
- Не заполняйте пропуски и позвольте соединить сигнал (MNE Python создает структуру с равномерно распределенными данными)
- Заполните пропуски с помощью np.nan
- Заполните пробелы с 0
Мой вопрос касается фильтрации, которую мне нужно применить к данным. Я использовал scipy.welch, чтобы получить PSD сигнала. Кажется, что сигнал с нан в качестве наполнителя работает лучше, чем исходный, а тот, который заполнен нулями, но поведение странное, когда я пытаюсь получить psd низкочастотной и высокочастотной фильтрованной версии сигнала.
Кто-нибудь знает, что является лучшим подходом?
Вот 3 изображения для различных стратегий заполнения. (Верхние - это psd, полученный с помощью библиотеки MNE, нижние - с scipy.welch). Используемый фильтр является FIR.