相关疑难解决方法(0)

如何将过滤器应用于python中的信号

在python中是否有任何准备好的函数将过滤器(例如Butterworth过滤器)应用于给定信号?我在'scipy.signal'中寻找这样的函数,但我没有找到任何有用的函数,而不是过滤设计函数.实际上我希望这个函数将滤波器与信号进行卷积.

python signal-processing scipy

17
推荐指数
1
解决办法
3万
查看次数

Python高通滤波器

我使用以下代码在python中实现了高通滤波器:

from scipy.signal import butter, filtfilt
import numpy as np

def butter_highpass(cutoff, fs, order=5):
    nyq = 0.5 * fs
    normal_cutoff = cutoff / nyq
    b, a = butter(order, normal_cutoff, btype='high', analog=False)
    return b, a

def butter_highpass_filter(data, cutoff, fs, order=5):
    b, a = butter_highpass(cutoff, fs, order=order)
    y = filtfilt(b, a, data)
    return y

rawdata = np.loadtxt('sampleSignal.txt', skiprows=0)
signal = rawdata
fs = 100000.0

cutoff = 100
order = 6
conditioned_signal = butter_highpass_filter(signal, cutoff, fs, order)
Run Code Online (Sandbox Code Playgroud)

我在100 kHz电压信号上应用此滤波器,它对于> = 60 Hz的截止频率工作正常.但它在下面不起作用.我想切断低于10赫兹的所有频率.我的错误是什么提示?我观察到的是滤波器的阶数越低,截止频率就越低.

样本信号可以在这里找到.

python signal-processing

7
推荐指数
2
解决办法
3万
查看次数

如何将5Hz的低通滤波器应用于熊猫数据帧?

我有一个pandas.DataFrame按时间索引的索引,如下所示。另一列包含从测量电流的设备记录的数据。我想通过频率为5Hz的低通滤波器过滤到第二列,以消除高频噪声。我想返回一个数据框,但是我不介意它是否更改了过滤器应用程序的类型(numpy数组等)。

In [18]: print df.head()
Time
1.48104E+12    1.1185
1.48104E+12    0.8168
1.48104E+12    0.8168
1.48104E+12    0.8168
1.48104E+12    0.8168
Run Code Online (Sandbox Code Playgroud)

我通过绘制此数据,df.plot(legend=True, use_index=False, color='red')但想绘制过滤后的数据。

我在用 pandas 0.18.1但我可以更改。

我已经访问了https://oceanpython.org/2013/03/11/signal-filtering-butterworth-filter/和许多其他类似方法的资源。

python numpy filter lowpass-filter pandas

5
推荐指数
1
解决办法
3510
查看次数