为什么scipy.signal.filtfilt要对结果进行归一化?

hec6srdp  于 2022-12-18  发布在  其他
关注(0)|答案(1)|浏览(155)

我尝试使用filtfilt过滤时间序列数据。我的原始样本范围从80到大约130。过滤后的样本范围从-20到30。filtfilt函数似乎过滤了数据并将其归一化。我如何过滤数据但不将其归一化呢?
Orignal sampleFiltered sample
上面的图像是原始样本,下面的图像是过滤后的样本。
我试过这个代码过滤。

def butter_bandpass(lowcut, highcut, fs, order=5):
        nyq = 0.5 * fs
        low = lowcut / nyq
        high = highcut / nyq
        b, a = butter(order, [low, high], btype='band')
        return b, a
    def butter_bandpass_filter(data, lowcut, highcut, fs, order=5):
        b, a = butter_bandpass(lowcut, highcut, fs, order=order)
        y = filtfilt(b, a, data)
        return y

我将带通设置为0.5到32。

trial = butter_bandpass_filter(trial, 0.5, 32, 256, 5)

我是信号处理的新手。提前感谢您的帮助!

xcitsw88

xcitsw881#

您已经设计了一个带通滤波器。结果,小于0.5的频率被滤除。这包括输入信号的直流分量。因此,去除了大部分直流分量的输出信号将以0为中心。

相关问题