小编876*_*674的帖子

使用Python估计自相关

我想对下面显示的信号执行自相关.两个连续点之间的时间是2.5ms(或400Hz的重复率).

在此输入图像描述

这是我想要使用的估计自相关的等式(取自http://en.wikipedia.org/wiki/Autocorrelation,部分估计):

在此输入图像描述

在python中查找我的数据估计自相关的最简单方法是什么?有什么类似于numpy.correlate我可以使用的东西吗?

或者我应该只计算均值和方差?


编辑:

unutbu的帮助,我写道:

from numpy import *
import numpy as N
import pylab as P

fn = 'data.txt'
x = loadtxt(fn,unpack=True,usecols=[1])
time = loadtxt(fn,unpack=True,usecols=[0]) 

def estimated_autocorrelation(x):
    n = len(x)
    variance = x.var()
    x = x-x.mean()
    r = N.correlate(x, x, mode = 'full')[-n:]
    #assert N.allclose(r, N.array([(x[:n-k]*x[-(n-k):]).sum() for k in range(n)]))
    result = r/(variance*(N.arange(n, 0, -1)))
    return result

P.plot(time,estimated_autocorrelation(x))
P.xlabel('time (s)')
P.ylabel('autocorrelation')
P.show()
Run Code Online (Sandbox Code Playgroud)

python signal-processing numpy

29
推荐指数
4
解决办法
5万
查看次数

是否存在重载步骤功能?

Python中有一个类似于MATLAB的重量级函数heaviside吗?

我很难找到一个.

python matlab

27
推荐指数
5
解决办法
4万
查看次数

Python中的三角形波阵列

产生100个数字阵列的最有效方法是什么,形成下面的三角波形状,最大/最小振幅为0.5?

记住三角波形:

在此输入图像描述

python arrays geometry numpy

11
推荐指数
4
解决办法
1万
查看次数

Python中的模型IV

模型四.

方法:执行积分,作为E的函数,为每个使用的电压值输出电流.对于v_values数组重复此操作.该等式可以在下面找到.

在此输入图像描述

尽管该等式中的极限范围-inf为0 inf,但是必须限制极限以使(E + eV)^ 2- \Δ^ 2> 0和E ^ 2- \Δ^ 2> 0,以避免极点.(\ Delta_1 =\Delta_2).因此,目前有两个积分,从限制-inf-gap-e*vgapinf.

但是,我一直回来,math range error虽然我相信我已经通过使用上述限制排除了麻烦的E值.错误的偏见:http://pastie.org/private/o3ugxtxai8zbktyxtxuvg

对这个问题的模糊性表示歉意.但是,任何人都可以看到明显的错误或代码滥用吗?

我的尝试:

from scipy import integrate
from numpy import *
import scipy as sp
import pylab as pl
import numpy as np
import math

e = 1.60217646*10**(-19)
r = 3000
gap = 400*10**(-6)*e
g = (gap)**2
t = 0.02
k = 1.3806503*10**(-23)
kt = …
Run Code Online (Sandbox Code Playgroud)

python integration physics numpy scipy

6
推荐指数
1
解决办法
948
查看次数

找到数值积分的根

我试图用Python重现这个Mathematica程序:

Mathematica计划

它找到了数值积分的根,并形成了这些值的图.但是,我不能让我试图跑.

目前的尝试:

来自scipy.integrate import quad from scipy import integration from scipy.optimize import fsolve import pylab as pl import numpy as np

# Variables.
boltzmann_const = 1.38e-23
planck_const = 6.62e-34
hbar = planck_const / ( 2 * np.pi )
transition_temp = 9.2
gap_energy_at_zero_kelvin = 3.528 / ( 2 * transition_temp * boltzmann_const )
debye_freq = ( 296 * boltzmann_const ) / hbar

# For subtracting from root_of_integral
a_const = np.log( ( 1.13 * hbar * debye_freq ) / ( boltzmann_const …
Run Code Online (Sandbox Code Playgroud)

python physics numpy scipy numerical-integration

6
推荐指数
1
解决办法
1439
查看次数

如果x条目满足条件python,则绘制xy数据

我想对xy数据执行绘图/拟合,前提是数据集的x值满足条件(即大于10).

我的尝试:

x_values, y_values = loadtxt(fname, unpack=True, usecols=[1, 0])

for x in x_values:
    if x > 10:
        (m,b)=polyfit(x_values,y_values,1)
        yp = polyval([m,b],x_values)
        plot(x_values,yp)
        scatter(x_values,y_values)
    else:
        pass
Run Code Online (Sandbox Code Playgroud)

也许最好删除不满足x值条件的行的xy条目,然后绘制/拟合?

python matplotlib

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

Python信号计数器

我从实验中获得了两个数据阵列; x(时间)和y(电压).这些绘制如下.每隔200微秒,信号就是三种状态之一:

  1. 取负值(即<-0.25 V)
  2. 取正值(即> 0.3 V)
  3. 保持在噪声水平(即~0到0.1 V之间)

x,y绘制

我想'数字化'这个信号,所以情况1.,2.和3.,对应于-1,+ 1或0的离散值.

如何通过分析数据数组来做到最好?

我目前的想法:

  • 插值以找到y满足每个阈值的x值.

np.interp(0.5,x,y)

问题:

  • 如何满足y阈值的多个位置?

python signals analysis

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

Python/Scipy 集成数组

我正在尝试编写一个执行以下操作的程序:

  • 从数组中获取 V 的值
  • 将 V 值传递为关于 E 的积分
  • 将积分结果输出到数组 I
  • 图 I 与 V

这个方程看起来很糟糕,但除了 V 之外,一切都是常数。这是方程。这个方程并不是很重要。

我应该如何解决这个问题?我的尝试(如下所示)不会计算从文件中读取的每个 V 值的积分。

from scipy import integrate #integrate.quad
from numpy import *
import pylab
import datetime
import time
import os
import math

# import V
fn = 'cooltemp.dat'
V = loadtxt(fn,unpack=True,usecols=[1])

# variables
del1, del2, R, E, fE, fEeV = 1,2,1,2,1,1
e = 1.602176565*10**-19

# eqn = dint(abc)
a = E/( math.sqrt( E**2 - del1**2 ) )
b = ( …
Run Code Online (Sandbox Code Playgroud)

python arrays integrate scipy

4
推荐指数
1
解决办法
6310
查看次数

数值积分循环Python

我想编写一个程序,在循环中解决下面的定积分,该循环考虑每次迭代的常数c的不同值.

然后我想将积分的每个解决方案输出到一个新的数组中.

我如何在python中最好地编写这个程序?

在此输入图像描述

限制在0和1之间.

from scipy import integrate

integrate.quad

这里可以接受.我的主要斗争是构建该计划.

这是一次旧尝试(失败了)

# import c
fn = 'cooltemp.dat'
c = loadtxt(fn,unpack=True,usecols=[1])

I=[]
for n in range(len(c)):

    # equation
    eqn = 2*x*c[n]

    # integrate 
    result,error = integrate.quad(lambda x: eqn,0,1)

    I.append(result)

I = array(I)
Run Code Online (Sandbox Code Playgroud)

python integration loops numpy scipy

2
推荐指数
1
解决办法
5917
查看次数

Zeroth-order Bessel函数Python

为这个问题的简单而道歉.

我想在Python中实现一个方程式.在该等式中,K_0是零阶修正贝塞尔函数.

在Python中实现K_0的最佳方法是什么?

python scipy bessel-functions

2
推荐指数
1
解决办法
1783
查看次数