2015-04-05 91 views
0

我正在使用下面的代碼來生成正弦波,它工作正常。但是,當我嘗試使用500kHz的大頻率並將時間週期改爲0.2us時,我期望得到一個時間週期爲0.2us的完整正弦波,但是我得到的僅僅是一條直線,不知道爲什麼。python中正弦波發生器的不同頻率

def sampled_sine_wave(freq): 
    samples = 1000 
    time_period = 2e-7 
    time = linspace(0,time_period,samples) 
    _ = plot(time,[sin(t*freq*2*np.pi) for t in time], linewidth=2) 
    Vin1=([np.sin(t*freq*2*np.pi) for t in time]) 
    #print (Vin1) 
return Vin1 

有人可以告訴我爲什麼我得到那個,我該如何解決它。 謝謝

+1

0到10%的正弦[有點看起來像一條直線](https://www.wolframalpha.com/input/?i=sin%28x%29+from+0+to+0.6 )。那是你正在得到什麼?如果您將期限更改爲2e-6,即一個完整期限,它會發生變化嗎? – Carsten 2015-04-06 00:07:35

+0

「0.2us」,你的意思是0.2微秒(0.000002秒)? – KSFT 2015-04-06 00:43:16

回答

1

正如在評論中提到的,你可能實際上並沒有得到一條直線。如果你在該範圍內的graph it,它看起來幾乎是一條直線。事實上,在該範圍的邊緣,在x=2e-7處,該正弦函數和5e5*x具有less than a 7% difference。您可能打算使用全部時間,time_period = 2e-6,其中looks more like a sine wave。你似乎知道那個函數的週期是2微秒,但是是2 microseconds is 2e-6 seconds, not 2e-7 seconds


哇,這花了一段時間寫這麼簡短的答案。我一直在搞搗亂,並用pi來劃分,而不是放大和粘貼錯誤的鏈接。

+0

@motaha如果我的回答對你有幫助,你會介意加註嗎? – KSFT 2015-04-06 02:36:35