所以我正在做的是创建具有正常分布的振幅和频率的正弦波 - 在给定的范围内。例如2-10Hz的5V。所以我的尝试是用给定的幅度和频率得到我的功能,然后运行它直到第一个转折点。从那里我计算下一个函数,并添加前一个函数转折点的y值(作为一个移位),以便从该点开始。我的问题是一些功能变化,我得到的直线,而不是曲线。如果有人能告诉我我要去哪里,我会很感激。需要注意的是,我使用8ms增量来绘制每个值。蟒蛇正弦白噪音
import numpy as np
import matplotlib.pyplot as plt
import scipy.stats as stats
import serial
newlist = np.zeros(1)
timesnew = np.zeros(1)
volts = []
def main(amp, lowerFreq, upperFreq, time, incr):
#Creates graph and saves it in newlist and timesnew
amt = np.int(time/incr)
list = []
timels = [] # np.zeros(amt+amt)
curtime = 0
loweramp = -amp
mu, sigma = 0, 1
ybefore = 0
rand = stats.truncnorm((loweramp - mu)/sigma, (amp - mu)/sigma, loc=mu, scale=sigma)
freqr = stats.truncnorm((lowerFreq - mu)/sigma, (upperFreq - mu)/sigma, loc=mu, scale=sigma)
i = 0
while i < amt:
# get amp
thisAmp = rand.rvs()
angleFreq = 2 * np.pi * freqr.rvs()
xtp = np.arccos(0)/angleFreq #x value of turning point
yval = thisAmp * np.sin(angleFreq * xtp)
# check that yvalue(voltage) is okay to be used - is within +-amp range
while not loweramp <= yval + ybefore <= amp:
thisAmp = rand.rvs()
angleFreq = 2 * np.pi * freqr.rvs()
xtp = np.arccos(0)/angleFreq
yval = thisAmp * np.sin(angleFreq * xtp)
# now add values to list
t = 0
while t <= xtp:
ynow = thisAmp * np.sin(angleFreq * t) + ybefore
# print ynow
list.append(ynow)
curtime += incr
timels.append(curtime)
t += incr
i += 1
print i
ybefore = ynow
newlist = np.asarray(list)
timesnew = np.asarray(timels)
#a = np.column_stack((timesnew, newlist))
np.savetxt("C://foo.csv", a, delimiter=";", fmt='%.10f')
addvolts()
plt.plot(timels,list)
plt.show()
if __name__ == "__main__":
main(5, 1, 2, 25, 0.00008)
编辑: 基本上这里的问题是,拐点之后的功能似乎并没有被sinusodial(行似乎是线性的),我不明白为什么或者至少如何让功能最终在转折点处变得更“曲线”而不是“尖锐”。
我想也许是功能的变化不应该是从以前的功能也不同,但然后我会失去随机性。我希望它“看起来更好”,但我不知道如何实现,除非我按顺序运行频率。我试图模拟一个作为我申请的工作的一部分给予我的“whitenoise文件” - 白化将被发送到数模转换器并用于测试设备。显然,我没有得到这个职位,但为了知识的目的,我想完成这个任务。
这是我得到的白噪声文件的图形 - 700分钟长:
从上个PIC矿和给定可以看出的区别,我想我会尝试在整个时期内运行每个功能,而不是一个转折点。
您的问题缺乏足够的问题描述。当删除未定义的行时,代码运行良好并生成一个图。我没有看到任何直线。这个问题因此是不可重现的。你能提供一个能够重现问题的代码,并且能够描述人们有机会了解的问题吗? – ImportanceOfBeingErnest
白色噪音的定义完全不规则。试图找到正弦变体是没有意义的。也许是你想要构建的粉红噪声,白噪声滤波到一个频段? – LutzL
@ImportanceOfBeingErnest我提供了证明和更多信息来帮助解释我的问题。 – tauhtauhsauce