Как заново создать фильтр в Python, чтобы он соответствовал фильтруемого другим программным обеспечением - PullRequest
0 голосов
/ 11 января 2019

Я экспортировал два вейвлета из программного обеспечения и преобразовал их в два разных массива, каждый из которых представляет сигнал с 1001 выборками.

Один сигнал является необработанным, а другой - фильтром нижних частот, применяемым к необработанному сигналу:

low pass butter worth Freq @ 3db down 70 HZ , slope : -72db 
(Pass frequency = 58.9 HZ  ,  Stop Frequency = 96.4 HZ) 

Этот фильтр был применен до того, как я извлек вейвлеты.

Я пытаюсь повторить аналогичный фильтр в python, используя scipy для получения похожих результатов в необработанном вейвлете, но результаты не совпадают.

Я использую батторд и масло вместе с фильтратом из сигнала:

n , wn = signal.buttord(wp=0.59, ws=0.96, gpass=3, gstop=72, analog=False)

b, a = signal.butter(n , wn, btype='low'  )

output_signal = signal.filtfilt(b, a, stack_arr)

Есть ли способ скопировать этот фильтр?

Извлеченные вейвлеты и результат:

Синяя линия - это вейвлет, который я хочу сопоставить с результатами, оранжевый - это нефильтрованный вейвлет

Синяя линия - это вейвлет, который я хочу сопоставить с результатами, оранжевый - после применения фильтра scipy

...