从信号中去除正弦振荡 Python
Removing sinusoidal oscillation from signal Python
对于消除此类信号的正弦振荡有什么建议吗?
使用low-pass过滤器。看看这里:
https://docs.scipy.org/doc/scipy/reference/generated/scipy.signal.butter.html
在这里甚至更好:
https://docs.scipy.org/doc/scipy/reference/generated/scipy.signal.filtfilt.html
filtfilt
函数应用过滤器两次,从头开始,从尾开始,这样由于过滤产生的延迟被消除(两个相反的延迟相互消除)
您需要调整过滤器参数,最重要的是 - cut-off frequency
(将过滤器的阶数设置为 5-10),尝试 0.05-0.2 左右的不同值。
sig = [0, 1, 0, 1, 0, 1, 0, 1, 0] # your signal
b, a = signal.butter(8, 0.1)
filtered_signal = signal.filtfilt(b, a, sig, method="gust")
对于消除此类信号的正弦振荡有什么建议吗?
使用low-pass过滤器。看看这里: https://docs.scipy.org/doc/scipy/reference/generated/scipy.signal.butter.html
在这里甚至更好: https://docs.scipy.org/doc/scipy/reference/generated/scipy.signal.filtfilt.html
filtfilt
函数应用过滤器两次,从头开始,从尾开始,这样由于过滤产生的延迟被消除(两个相反的延迟相互消除)
您需要调整过滤器参数,最重要的是 - cut-off frequency
(将过滤器的阶数设置为 5-10),尝试 0.05-0.2 左右的不同值。
sig = [0, 1, 0, 1, 0, 1, 0, 1, 0] # your signal
b, a = signal.butter(8, 0.1)
filtered_signal = signal.filtfilt(b, a, sig, method="gust")