2016-07-14 137 views
0

我試圖創建一些罪惡(2x)2000HZ,方波1000hz,三角波1000 hz,鋸齒1000 hz。每張圖的點數應該是62000.在matlab中創建正方形/三角形/鋸齒和正常正弦

這是一個好的開始嗎?出於某種原因,Y2,Y3,不創建Y4 ..

t = 0:0.001:0.62; % Sampling frequency 6.2kHz 
y1=sin(2*pi*2000*t); 
y2 =square(2*pi*1000*t); 
y3= sawtooth(2*pi*1000*t); 
y4= sawtooth(2*pi*1000*t,1/2); %triangle 

更新:

t = 0:0.001:0.62; % Sampling frequency 6.2kHz 

y1 = sin(2000*t); 
y2 = square(1000*t); 
y3 = sawtooth(1000*t); 
y4= 10 * sawtooth(1000*t ,0.5) + 5; 
+1

您是否收到一個錯誤,防止代碼達到'y2','y3'和'y4'? – Suever

+0

嘗試執行SCRIPT平方作爲函數: C:\ Users \ Bogdan Bagdasar \ Documents \ MATLAB \ square.m Error in square(line 3) y2 = square(2 * pi * 1000 * t); – bogdanb

+0

@bogdanb你的錯誤表明你在當前路徑中有一個名爲'square.m'的腳本。嘗試將此腳本重命名爲其他不是MATLAB函數名稱的其他名稱。 – beaker

回答

2

正方形和鋸齒波功能需要信號處理工具箱。 所以,你也可以創建自己的功能:

t = 0:0.1:8*pi; 

y1 = sin(t); 
y2 = square(t); 
y3 = sawtooth(t); 

隨着square.m:

function y = square(x) 

inp = sin(x) >= 0; 
y(~inp) = -1; 
y(inp) = 1; 

end 

隨着sawtooth.m

function y = sawtooth(x) 

y = ((mod(x,2*pi)/(pi*2))*2)-1; 

end 

結果:

subplot

+0

非常感謝。我如何設置頻率和點數?另外我該如何使鋸齒輸出對稱/等腰三角形? – bogdanb

+0

我不明白你的問題,不要改變你以前的代碼,保持相同的採樣率和相同的基本頻率,你就完成了。 – obchardon

+0

檢查我上面的原始帖子上的更新。這可以嗎? – bogdanb

0

squaresawtooth功能需要Signal Processing Toolbox

兩條第一行正確生成正弦信號。

+0

這些可以在沒有工具箱的情況下生成嗎? – bogdanb

+0

接下來的3行會出現什麼問題? – bogdanb

+0

沒有錯,但你必須檢查你是否安裝了工具箱。否則,您可以創建自己的函數來生成此信號。 –