如何解决计算其自相关函数用 x=sin(t) 测试你的程序 应检查频率和幅度
import matplotlib.pyplot as plt
import numpy as np
d=np.arange(1,1001)
b=np.sin(d*10)
def autocorrelation2(x):
maxdelay = int(len(x)/5)
N = len(x)
mean = np.average(x)
var = np.var(x)
xp = (x - mean)/np.sqrt(var)
autocorrelation = np.zeros(maxdelay)
for r in range(maxdelay):
for k in range(N-r):
autocorrelation[r] += xp[k]*xp[k+r]
autocorrelation[r] /= float(N-r)
return autocorrelation
plt.plot(d[:200],autocorrelation2(b)[:200],label='direct autocorrelation')
我实际上是这样编写程序的。但是我如何定义函数呢? autocorrelation2(x) 只有一个 for 循环?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。