Вы знаете, почему отфильтрованный вывод всегда начинается с нуля? пряный фильтр python eeg - PullRequest
0 голосов
/ 10 июля 2020

это мой первый вопрос в стеке.

Для фильтров ЭЭГ я пытаюсь использовать lfilter от spicy следующей функцией:

def butter_lowpass_filter(data):    
    b, a = butter(3, 0.05)
    y = lfilter(b, a, data)
    return y

но каждый раз при вызове функции и отправке данных По NumPy массиву функции я получаю результат, который начинается с нуля. Почему Баттерворт фильтрует каждый раз с 0, мне нужно измерять в реальном времени.

Вот уже пытаюсь решить эту проблему, но без результата. Как фильтровать / сглаживать с помощью SciPy / Numpy?

это не подходит для меня, потому что я каждый раз получаю следующее изображение введите описание изображения здесь

1 Ответ

0 голосов
/ 12 июля 2020

Это нормально. Однако это может вызвать всплеск в начале ваших данных. Чтобы избежать этого, вы должны вычесть первое значение (или среднее из первых N значений) вашей ЭЭГ, чтобы сами данные также начинались с нуля или близки к нулю. Этот процесс можно назвать коррекцией базовой линии или, в некоторых случаях, когда вы удаляете прямую линию от начала до конца sh, как устранение тренда. Обратите внимание, что фильтрация ЭЭГ - это целая наука, вы можете посмотреть пакеты, разработанные для этого, например MNE python ( здесь - их сводка по фильтрам)

...