我想对我的数据使用低通巴特沃斯滤波器,但在应用滤波器时我没有得到预期的信号。这是虚拟代码:
信号 A:
import numpy as np
import matplotlib.pyplot as plt
from scipy import signal
a = np.linspace(0,1,1000)
signala = np.sin(2*np.pi*100*a) # with frequency of 100
plt.plot(signala)
信号 B:
signalb = np.sin(2*np.pi*20*a) # frequency 20
plt.plot(signalb)
现在让我们结合信号 A 和 B 来获得信号 C
signalc = signala + signalb
plt.plot(signalc)
结果信号 C 看起来像这样
现在让我们应用过滤器:
b, a = signal.butter(5, 30, 'low', analog = True) #first parameter is signal order and the second one refers to frequenc limit. I set limit 30 so that I can see only below 30 frequency signal component
output = signal.filtfilt(b, a, signalc)
plt.plot(output)
在应用上述黄油过滤器时,我得到一个空图
我不明白我在哪里做错了?任何帮助将不胜感激。