2016-06-24 119 views
0

我是MATLAB新手,我寫了一些代碼來生成正弦波。但是圖表不正確。這裏是我的代碼的截圖和劇情MATLAB正弦波圖不正確

MATLAB

問題是什麼?請幫忙!

+3

如果你可以截圖你的代碼,你可以複製並粘貼到此處... – excaza

回答

4

MATLAB圖離散點點,只是繪製一條直線將相鄰點連接在一起。您的時間點是介於兩秒之間(1秒),您指定的頻率爲100 Hz。此外,由於您的採樣時間是正弦波週期的倍數,因此將所有這些t的值代入sin結果等於0,儘管存在一些數值不精確性。具體來說,如果你看Y軸,你會看到你的數量的大小約爲10^{-13}。然而,即使你逃避了這一點,抽樣時間對於波浪的指定頻率來說也是太大,所以這些點之間的巨大差距就像你在圖中看到的鋸齒波那樣可視化。

解決方案是簡單地縮短您的採樣時間。嘗試小東西,像1e-4例如:

t = 0:1e-4:0.05; 
f = 100; 
A = 2; 
x = A*sin(2*pi*f*t); 
plot(t,x); 

現在,我們得到這樣的:

enter image description here

+0

請求10000000001x1(74.5 GB)數組超過 最大數組大小首選項。創建大於此限制的 陣列可能需要很長的時間並導致MATLAB無響應。 請參閱數組大小限制或偏好面板 的更多信息。 new1(第2行)中的錯誤 t = 0:1e-10:1; – nrb

+0

@nehal_b更改了採樣時間。我做得太小了。 – rayryeng

+0

@rayryeng情節不斷增加,無處不在:( – nrb