所以我正在做的是創建具有正常分佈的振幅和頻率的正弦波 - 在給定的範圍內。例如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