Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/python-2.7/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 低通滤波器_Python_Python 2.7_Filtering_Signal Processing - Fatal编程技术网

Python 低通滤波器

Python 低通滤波器,python,python-2.7,filtering,signal-processing,Python,Python 2.7,Filtering,Signal Processing,我正在尝试对我的数据使用低通滤波器。我的样本数据是每分钟的,我想用1440(每日)的时间常数对其进行过滤。 它只是编写一个for循环来计算过滤并将数据附加到y(过滤数据)列表中 以下是我编写的代码: OD_deltaT=df["OD_deltaT"].values.tolist() #a=1/(timeconstant)+1 a=1/1441 u, y=[0], [] for i, x in enumerate(OD_deltaT,1): u.append(x) y[1]=u[1

我正在尝试对我的数据使用低通滤波器。我的样本数据是每分钟的,我想用1440(每日)的时间常数对其进行过滤。 它只是编写一个for循环来计算过滤并将数据附加到y(过滤数据)列表中

以下是我编写的代码:

OD_deltaT=df["OD_deltaT"].values.tolist()
#a=1/(timeconstant)+1
a=1/1441
u, y=[0], []
for i, x in enumerate(OD_deltaT,1):
    u.append(x)
    y[1]=u[1]
    y[i]=(1-a)*y[i-1]+(a)*u[i]
但我得到了这个错误:

list index out of range.  

提前谢谢你

您需要添加数据,就像您为
u
所做的那样。您还可以用更简洁的方式编写代码:

u = [0]
y = [0]
for x in OD_deltaT:
    u.append(x)
    y.append((1-a)*y[-1])+a*x)

当然,
scipy
过滤器可以更快地完成这项工作;)

您需要添加数据,就像您为
u
所做的那样。您还可以用更简洁的方式编写代码:

u = [0]
y = [0]
for x in OD_deltaT:
    u.append(x)
    y.append((1-a)*y[-1])+a*x)

当然,
scipy
过滤器可以更快地完成这项工作;)

你认为
u,y=[0],]
能完成什么?关于
u
?我不确定它是否会…y的列表为空,u的初始值为零。您可以使用scipy的过滤器:好的,那么<代码>y是
[]
。。。那么你认为
y[1]=u[1]
会怎么样。。。你的错误是什么?有关索引超出范围的内容?您认为
u,y=[0],]
可以实现什么?关于
u
?我不确定它是否会…y的列表为空,u的初始值为零。您可以使用scipy的过滤器:好的,那么<代码>y是
[]
。。。那么你认为
y[1]=u[1]
会怎么样。。。你的错误是什么?关于索引超出范围的内容?非常感谢!你是对的,scipy做得更快。但是了解他们在做什么是一个很好的练习,特别是当你进入非LTI的世界,scipy再也帮不了你了。为什么y[-1]?在我的公式中,我的意思是在当前项之前取一个y。列表中的最后一个是当前项之前的一个,因为我们正要添加一个新项。非常感谢!你是对的,scipy做得更快。但是了解他们在做什么是一个很好的练习,特别是当你进入非LTI的世界,scipy再也帮不了你了。为什么y[-1]?在我的公式中,我的意思是在当前项之前取一个y。列表中的最后一个是当前项之前的一个,因为我们正要添加一个新项。